KR20160043121A - 동적 멀티 모드 동작의 비휘발성 메모리 - Google Patents

동적 멀티 모드 동작의 비휘발성 메모리 Download PDF

Info

Publication number
KR20160043121A
KR20160043121A KR1020167008455A KR20167008455A KR20160043121A KR 20160043121 A KR20160043121 A KR 20160043121A KR 1020167008455 A KR1020167008455 A KR 1020167008455A KR 20167008455 A KR20167008455 A KR 20167008455A KR 20160043121 A KR20160043121 A KR 20160043121A
Authority
KR
South Korea
Prior art keywords
flash memory
sbc
data
mbc
storage mode
Prior art date
Application number
KR1020167008455A
Other languages
English (en)
Inventor
진기 김
Original Assignee
컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 filed Critical 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드
Publication of KR20160043121A publication Critical patent/KR20160043121A/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5646Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

플래시 메모리 장치의 수명을 연장시키는 방법 및 시스템이다. 플래시 메모리 장치는 셀 당 싱글 비트(SBC) 저장 모드 또는 셀 당 멀티 비트(MBC) 모드로 데이터를 저장하도록 동적으로 구성될 수 있음으로써, SBC 데이터와 MBC 데이터의 양쪽이 동일 메모리 어레이 내에 공존한다. 메모리의 각 페이지에 저장된 하나 이상의 태그 비트는 대응하는 서브디비전에 데이터를 저장하기 위해 사용되는 저장 모드의 타입을 지시하는데 사용되며, 서브디비전은 뱅크, 블록, 또는 페이지일 수 있다. 제어기는 멀티 모드 플래시 메모리 장치의 임의의 서브디비전의 수명을 최대화시키도록 저장 모드를 선택적으로 변경하기 위해 각 페이지에 대응하는 프로그램-삭제 사이클의 수를 모니터한다.

Description

동적 멀티 모드 동작의 비휘발성 메모리 {NON-VOLATILE MEMORY WITH DYNAMIC MULTI-MODE OPERATION}
본 발명은 비휘발성 메모리에 관한 것으로, 보다 상세하게는 동적 멀티 모드 동작의 비휘발성 메모리에 관한 것이다.
플래시 메모리는, 예컨대, 디지털 카메라와 휴대형 디지털 음악 재생기와 같은 가전제품용 대용량 저장부로서 널리 보급되어 사용되는 비휘발성 메모리의 일반적으로 사용되는 타입이다. 플래시 메모리 칩에 널리 이용될 수 있는 밀도는, 하나의 플래시 칩의 크기가 작기 때문에, 대중적인 USB 플래시 드라이브용으로 적합한 4GB(현재)까지일 수 있다.
8 메가 픽셀 디지털 카메라 및 음악과 비디오 능력이 있는 휴대형 디지털 엔터테인먼트 장치의 출현은, 대용량의 데이터를 저장하는 초고용량에 대한 요구에 박차를 가하였고, 이는 싱글 플래시 메모리 장치(single flash memory device)에 의해서는 충족될 수 없다. 따라서, 사용할 수 있는 저장 용량을 유효하게 증가시키기 위해 멀티 플래시 메모리 장치(multiple flash memory device)들이 메모리 시스템내로 함께 결합된다. 예를 들어, 20GB의 플래시 저장 밀도가 상기 어플리케이션용으로 요구될 수 있다. 더 높은 밀도의 시스템들이 하드 디스크 드라이브(HDD) 어플리케이션용으로 실현될 수 있다.
도 1은 종래 기술의 전형적인 플래시 메모리의 일반적인 블록도이다. 플래시 메모리(10)는, 플래시 회로들의 다양한 기능을 제어하기 위한 제어 회로(12)와 같은 논리 회로, 어드레스 정보와 데이터 정보 및 커맨드 데이터 정보를 저장하기 위한 레지스터, 요구되는 프로그램을 생성하고 전압을 소거하기 위한 고전압 회로, 및 메모리 어레이(14)를 액세스하기 위한 코어(core) 메모리 회로를 포함한다. 제어 회로(12)는, 읽기, 프로그램 및 삭제 기능과 같은 내부 플래시 동작을 실행시키기 위한 논리부(logic) 및 커맨드 디코더(command decoder)를 포함한다. 플래시 메모리(10)의 도시된 회로 블록의 기능들은 당업계에 주지되어 있다. 당업자라면 도 1에 도시된 플래시 메모리(10)가 많은 가능성 있는 구성들 중에서 하나의 가능성 있는 플래시 메모리 구성을 대표한다는 것을 이해할 것이다.
도 1의 플래시 메모리(10)의 메모리 셀 어레이(14)는, 특정 플래시 장치용의 선택 설계 파라미터인 임의의 수의 뱅크들로 구성된다. 도 2는 도 1의 메모리 셀 어레이(14)의 하나의 뱅크(20)의 구성을 도시하는 개략도이다. 뱅크(20)는 k+1 블록들로 구성되며, 각 블록은 i+1 페이지들로 구성된다. k 및 i의 양쪽은 정수 값이다. 각 페이지는 공통 워드라인(wordline)에 연결된 메모리 셀들의 로우(row)에 대응한다. 블록의 메모리 셀들의 상세한 설명이 후술된다.
각 블록은, 서로 전기적으로 연결되고 직렬로 배열된 i+1 플래시 메모리 셀들(22)까지를 갖는 NAND 메모리 셀 스트링(string)들로 구성된다. 따라서, 워드 라인 WL0 내지 WLi은 메모리 셀 스트링의 각 플래시 메모리 셀의 게이트들에 연결된다. 신호 SSL(string select line; 스트링 선택 라인)에 연결된 스트링 선택 장치(24)는 메모리 셀 스트링을 비트라인(26)에 선택적으로 접속시키며, 신호 GSL(ground select line; 그라운드 선택 라인)에 연결된 그라운드(ground) 선택 장치(28)는 메모리 셀 스트링을 VSS와 같은 소스 라인(source line)에 선택적으로 접속시킨다. 스트링 선택 장치(24) 및 그라운드 선택 장치(28)는 n-채널 트랜지스터들이다.
뱅크(20)의 모든 블록에 공통인 j+1 비트 라인(bitline)(26)이 있으며, 각 비트라인(26)은 블록 [0] 내지 [K]의 각각에 있어서 하나의 NAND 메모리 셀 스트링에 연결된다. 변수 j는 정수 값이다. 각 워드라인(WL0 내지 WLi), SSL 및 GSL 신호는 블록의 각 NAND 메모리 셀 스트링의 동일한 대응 트랜지스터 소자에 연결된다. 당업자라면 알아채듯이, 하나의 워드라인을 따르는 플래시 메모리 셀들에 저장되는 데이터는 데이터의 페이지(page)로서 칭해진다.
플래시 메모리 셀들 중 하나의 페이지내로 프로그램될 기입 데이터(write data)의 하나의 페이지를 저장하기 위한 데이터 레지스터(30)가 뱅크(20) 외부의 각 비트라인에 연결된다. 데이터 레지스터(30)는 또한 플래시 메모리 셀들 중 하나의 페이지로부터 읽어낸 데이터를 검출하기 위한 검출 회로들을 포함한다. 프로그래밍 동작 동안에, 데이터 레지스터는 데이터가 선택된 워드라인에 연결된 플래시 메모리 셀들 내로 적합하게 프로그램되었다는 것을 보장하기 위해 프로그램 검증 동작을 실행한다. 블록 내의 프로그래밍은 일반적으로 WL0에 대응하는 페이지에서 시작하여, 현재의 블록을 채우기 위해 WLi까지 순차적으로 진행한다. 대안적으로, 프로그래밍은 WLi에서 시작하여, WL0까지 순차적으로 진행할 수 있다. 그 후, 프로그래밍은 새로운 블록의 WL0와 더불어 계속된다. 장치내에 있어서, 블록들은 일반적으로 순차적으로 프로그램된다.
플래시 메모리(10)의 플래시 셀들은 2개의 상이한 모드 중 하나의 모드로 데이터를 저장할 수 있다. 데이터는 셀당 싱글 비트(single bit per cell; “SBC”) 저장 모드 또는 셀당 멀티 비트(multiple bit per cell; “MBC”) 저장 모드로 저장될 수 있다. SBC 저장 모드에 있어서, 2개의 가능성 있는 상태들 중 하나를 나타내기 위해 하나의 셀에는 정확히 1 비트의 정보가 저장된다. MBC 저장 모드에 있어서, 4개의 가능성 있는 상태들 중 하나를 나타내기 위해 하나의 셀에는 2 비트가 저장된다. 물론, 하나의 셀에 3 비트 이상이 저장될 수 있지만, 이 시점으로부터 향후 하나의 셀에 2 비트가 저장된 예가 이용될 것이다. MBC 저장 모드(셀당 2 비트 이상)로 데이터를 저장하는 것의 장점은, 동일한 수의 셀들을 사용하는 경우에 저장 용량을 SBC 저장 모드를 넘어서 적어도 배증시키는 것(doubling)이다. SBC 저장 모드 또는 MBC 저장 모드로 데이터를 저장하는 경우에, 플래시 메모리(10)의 주 회로들은 실질적으로 동일하다. 따라서, 플래시 메모리 생산자들은, SBC와 MBC 읽기 및 프로그램 동작들 사이에서 플래시 회로들이 상이하게 제어되므로, SBC 특정 알고리즘이나 MBC 특정 알고리즘을 실행하도록 플래시 메모리(10)를 구성하기 위해 제조 프로세스 중에 마스크 옵션(mask option)을 적용한다.
도 3은 SBC 저장 모드에 있어서 삭제된 메모리 셀들과 프로그램된 메모리 셀들에 대한 임계 전압(Vt) 분포 그래프를 도시한다. 프로세스 및 전압 인가의 변화들로 인해서, 삭제 및 프로그램된 임계 전압들이 일 전압 범위 내에 분포된다. 도 3에 도시된 바와 같이, 삭제된 메모리 셀들은 -3V 내지 -1V 사이의 네거티브(negative) 임계 전압을 갖고, 프로그램된 메모리 셀들은 1V 및 3V 사이의 포지티브(positive) 임계 전압을 갖는다. 범위는 메모리 셀들에 대해 요구되는 임계 전압에 좌우된다. 임계 전압 범위는 특정 메모리 장치에 사용될 수 있는 가능성 있는 임계 전압의 예시이지만, 당업자라면 삭제 및 프로그램되는 메모리 셀들에 대해 사용할 임계 전압의 선택은 플래시 메모리 장치의 제조 프로세스 및 설계에 좌우될 것이라는 것을 이해할 것이다. 당업자라면, 상이한 플래시 장치들이 특정 설계나 어플리케이션에 적합하도록 상이한 임계 전압 범위를 가질 것이라는 것을 이해할 것이다.
도 4는 MBC 저장 모드에 있어서 삭제된 메모리 셀들과 프로그램된 셀들에 대한 임계 전압(Vt) 분포 그래프를 도시한다. 삭제된 메모리 셀들은 네거티브 임계 전압을 가지며, 메모리 셀이 상이한 상태에 각기 대응하여 저장할 3 범위의 포지티브 임계 전압들이 있다. 바람직하게는, 각 상태에 대한 임계 전압들의 최소 및 최대 범위가 최소화되어야 하고, 그 범위들 사이의 간격은 최대화되어야 한다.
플래시 메모리 장치들은, 그것들이 더 이상 신뢰성 있게 데이터를 저장하는데 사용될 수 없기 전에, 제한된 수의 삭제-프로그램 사이클을 갖는다는 것이 주지되어 있다. 보다 상세하게는, 플래시 메모리 셀들은, 누적하는 프로그램 및 삭제 동작들로 인한 플래시 메모리 셀의 누진적인 열화인, 프로그램/삭제 사이클 소멸을 당하기 쉽다. 메모리 블록은 항상 데이터로 프로그램되기 전에 먼저 삭제되므로, 그 사이클들은 프로그램 및 삭제 사이클들의 양쪽으로서 칭해질 수 있다는 것에 주목한다. 당업자라면, 현재 알려진 모든 플래시 메모리가 블록 삭제용으로 구성되어 있다는 것, 즉, 블록내의 데이터의 하나의 페이지만 수정될 것이라면, 그 페이지를 포함하는 전체 블록이 삭제되고 수정된 페이지 및 수정되지 않은 페이지들로 재 프로그램된다는 것을 이해한다. 상기 누적하는 프로그램 및 삭제 동작의 효과는 최적의 파라미터를 넘어서는 메모리 셀의 프로그램 및 삭제 특성의 변질이다. 메모리 셀들이 열화되면, 메모리 셀들을 요구되는 임계 전압으로 프로그램하거나 삭제하는데 더 높은 프로그램 및 삭제 전압이 필요해진다. 결국, 메모리 셀은 데이터를 적합하게 유지하는데(즉, 요구되는 임계 전압) 실패할 것이다. 예를 들어, 현재의 SBC 플래시 메모리에 대한 일반적인 정격 삭제-프로그램 사이클은 약 100,000 사이클이다. 하지만, 현재의 MBC 플래시 메모리는 더 작은 정격 제한의 10,000 사이클을 갖는다. 앞서 언급된 삭제-프로그램 사이클 제한들은 단지 예이지만, MBC 삭제-프로그램 사이클이 중대한 요인에 의해 SBC 삭제-프로그램 사이클을 넘어서 더 낮다는 것은 주지되어 있다.
현재, 사용 가능한 대부분의 플래시 메모리는, 그 칩 크기에 비해 큰 저장 밀도로 인해 MBC 타입의 것이다. 이것은 대부분의 소비자 어플리케이션용으로 적합하지만, 10,000 사이클 프로그램-삭제 제한은 데이터 프로그래밍과 삭제가 빈번한 다른 어플리케이션용으로는 적합하지 않을 수 있다. 따라서, MBC 플래시 메모리가 그 자신의 10,000 사이클 수명에 도달하면, 더 이상 사용할 수 없고 폐기되어야 한다. 이 문제는 더욱 빈번한 프로그램-삭제 사이클이 있는, HDD 어플리케이션과 같은, 상업용 어플리케이션에 대해 더욱 중대하다. HDD 어플리케이션들은 대부분의 소비자 어플리케이션보다 더 높은 데이터 보전을 요구하기 때문에, MBC 플래시 메모리는 그 자신의 상대적으로 짧은 10,000 사이클 수명으로 인하여 사용에 적합하지 않다.
따라서, 소비자 및 상업용 어플리케이션 모두에 대해 적합하고 연장된 수명을 갖는 플래시 메모리 및 플래시 메모리 시스템을 제공하는 것이 이상적이다.
본 발명은 소비자 및 상업용 어플리케이션 모두에 대해 적합하고 연장된 수명을 갖는 플래시 메모리 및 플래시 메모리 시스템을 제공하는 것이 그 목적이다.
본 실시예의 일 양태는 종래의 플래시 메모리 시스템의 적어도 하나의 단점을 제거하거나 완화시키도록 한다.
제1 양태에 있어서, 메모리 어레이를 갖는 플래시 메모리 장치가 제공된다. 플래시 메모리 장치는 메모리 셀들을 프로그래밍하기 위한 플래시 메모리 회로, 제어 논리 회로, 및 커맨드 디코더를 포함한다. 커맨드 디코더는 외부 프로그램 커맨드에 응답하여 셀당 멀티 비트(MBC) 프로그램 커맨드와 셀당 싱글 비트(SBC) 프로그램 커맨드 중 하나를 발행한다. 제어 논리 회로는 셀당 멀티 비트 프로그램 커맨드 또는 셀당 싱글 비트 프로그램에 응답하여 프로그래밍 알고리즘을 실행한다. 플래시 메모리 회로는 프로그래밍 알고리즘에 응답하여 메모리 어레이의 메모리 셀들을 프로그램한다. 본 양태의 일 실시예에 따르면, 커맨드 디코더는 SBC 프로그램 커맨드를 발행하기 위한 SBC 커맨드 디코더, 및 MBC 프로그램 커맨드를 발행하기 위한 MBC 커맨드 디코더를 포함한다.
본 양태의 다른 실시예에 있어서, 메모리 어레이는 MBC 프로그램 커맨드에 응답하여 MBC 저장 모드로 데이터를 저장하도록 구성된 제1 서브디비전들, 및 SBC 프로그램 커맨드에 응답하여 SBC 저장 모드로 데이터를 저장하도록 구성된 제2 서브디비번들을 포함한다. 제1 서브디비전들과 제2 서브디비전들은 메모리 블록들 또는 메모리 페이지들을 포함할 수 있다. 각 서브디비전은 MBC 저장 모드 또는 SBC 저장 모드를 지정하기 위한 모드 태그(mode tag)와 관련되고, 각 서브디비전은 메모리 어레이의 메모리 페이지이다.
제2 양태에 있어서, 플래시 메모리 장치에 데이터를 저장하기 위한 방법이 제공된다. 상기 방법은 플래시 메모리 장치의 서브디비전을 제1 저장 모드로부터 제2 저장 모드로 변환하는 단계로서, 상기 서브디비전이 제1 저장 모드와 제2 저장 모드 중 어느 한 쪽을 나타내는 대응 모드 태그를 갖는 단계; 및 상기 서브디비전과 대안의 서브디비전 중 하나에 데이터를 프로그래밍하는 단계를 포함한다. 본 양태의 실시예에 따르면, 제1 저장 모드는 셀당 멀티 비트(MBC) 저장 모드이고 상기 제2 저장 모드는 셀당 싱글 비트(SBC) 저장 모드이며, 상기 변환 스텝은 미리 정해진 기준에 응답하여 실행된다. 상기 미리 정해진 기준은 MBC 프로그램 삭제 제한이고, 상기 변환 단계는, 상기 서브디비전에 대응하는 프로그램/삭제 카운터를 상기 MBC 프로그램/삭제 제한과 비교하는 단계를 포함한다. 상기 프로그래밍 단계는, 상기 프로그램/삭제 카운터가 상기 미리 정해진 MBC 프로그램/삭제 제한보다 더 적으면 상기 서브 디비전에 데이터를 프로그래밍하는 단계, 및 상기 프로그램/삭제 카운터가 적어도 상기 미리 정해진 MBC 프로그램/삭제 제한이면 상기 대안의 서브디비전에 데이터를 프로그래밍하는 단계를 포함한다. 상기 프로그래밍 단계는, 데이터가 상기 대안의 서브디비전에 프로그램되면 상기 서브디비전을 삭제하는 단계, 상기 서브디비전에 대응하는 모드 태그를 상기 제2 저장 모드를 나타내는 상태로 지시하는 단계, 또는 상기 프로그램/삭제 카운터를 리셋시키는 단계를 포함할 수 있다.
본 양태의 다른 실시예에 있어서, 상기 미리 정해진 기준은 데이터의 특정 프로파일(profile)이고, 상기 데이터의 특정 프로파일은 일련의 데이터 파일 타입들을 포함한다. 상기 프로그래밍 단계는, 상기 데이터가 상기 특정 프로파일에 매치(match)하는 프로파일을 가지면 상기 서브디비전에 데이터를 프로그래밍하는 단계, 및 상기 프로파일이 상기 특정 프로파일에 매치하지 않으면 상기 대안의 서브디비전에 데이터를 프로그래밍하는 단계를 포함한다. 또 다른 실시예에 있어서, 상기 서브디비전은 미리 정해진 수의 페이지들을 갖는 블록을 포함하거나, 상기 서브디비전이 하나의 페이지를 포함하며, 상기 미리 정해진 수의 페이지들은 블록에 포함된다. 다른 실시예에 있어서, 제1 저장 모드는 셀당 싱글 비트(SBC) 저장 모드이고 제2 저장 모드는 셀당 멀티 비트(MBC) 저장 모드이며, 상기 변환 단계는 상기 서브디비전에 대응하는 SBC 프로그램/삭제 카운터를 리클레임(reclaim) 제한에 비교하는 단계, 및 상기 프로그램/삭제 카운터가 상기 리클레임 제한보다 더 적으면, 상기 서브디비전에 대응하는 록 비트(lock bit)의 상태를 체크하는 단계를 포함한다. 상기 변환 단계는, 상기 록 비트의 상태가 거짓(false)이면 상기 서브디비전에 대응하는 모드 태그의 상태를 변경시키는 단계를 더 포함한다. 상기 변환 단계는, 상기 모드 태그 비트의 상태가 변경된 후에 상기 록 비트를 참(true)으로 설정하는 단계를 더 포함한다.
제3 양태에 있어서, 멀티 모드 플래시 메모리 장치가 제공된다. 멀티 모드 플래시 메모리 장치는, SBC 저장 모드로 셀당 싱글 비트(SBC) 데이터를 저장하기 위한 그리고 MBC 저장 모드로 셀당 멀티 비트(MBC) 데이터를 저장하기 위한 플래시 메모리 셀들을 갖는 메모리 어레이를 포함한다. 본 양태의 실시예에 따르면, 메모리 어레이의 제1 블록이 SBC 데이터를 저장하고 메모리의 제2 블록이 MBC 데이터를 저장하거나, 메모리 어레이의 블록의 제1 페이지가 SBC 데이터를 저장하고 메모리 어레이의 블록의 제2 페이지가 MBC 데이터를 저장하며, 상기 제1 페이지 및 제2 페이지는 각기 모드 태그를 저장하고, 상기 모드 태그는 SBC 데이터 또는 MBC 데이터의 존재를 나타내는 논리 데이터를 갖는다.
제4 양태에 있어서, 셀당 멀티 비트(MBC) 저장 모드 및 셀당 싱글 비트(SBC) 저장 모드 중 하나로 플래시 메모리 시스템에 데이터를 선택적으로 프로그래밍하기 위한 방법이 제공된다. 상기 방법은, 데이터를 수신하는 단계; 데이터의 높은 신뢰성 레벨이나 낮은 신뢰성 레벨을 판정하는 단계; 데이터가 높은 신뢰성이라고 판정되면 상기 SBC 저장 모드로 데이터를 프로그래밍하는 단계; 및 데이터가 낮은 신뢰성이라고 판정되면 상기 MBC 저장 모드로 데이터를 프로그래밍하는 단계를 포함한다. 본 양태의 실시예에 있어서, 상기 SBC 저장 모드로 데이터를 프로그래밍하는 단계는, 플래시 메모리 장치의 메모리 어레이의 선택된 SBC 페이지들에 상기 데이터를 프로그래밍하는 단계, 및 상기 선택된 SBC 페이지들의 각각에 대응하는 모드 태그를 제1 상태로 설정하는 단계를 포함한다. 또한, 상기 MBC 저장 모드로 데이터를 프로그래밍하는 단계는, 플래시 메모리 장치의 메모리 어레이의 선택된 MBC 페이지들에 상기 데이터를 프로그래밍하는 단계, 및 상기 선택된 MBC 페이지들의 각각에 대응하는 모드 태그를 제2 상태로 설정하는 단계를 포함한다.
제5 양태에 있어서, 셀당 멀티 비트(MBC) 페이지들과 (SBC) 페이지들을 갖는 플래시 메모리 시스템으로부터 데이터를 읽기 위한 방법이 제공된다. 상기 방법은 상기 플래시 메모리 어레이의 적어도 하나의 페이지를 읽기 위한 읽기 어드레스를 수신하는 단계; 상기 적어도 하나의 페이지에 대응하는 모드 태그가 제1 논리 상태에 있으면 상기 읽기 어드레스에서 MBC 읽기 동작을 실행하는 단계; 및 상기 적어도 하나의 페이지에 대응하는 모드 태그가 제2 논리 상태에 있으면 상기 읽기 어드레스에서 SBC 읽기 동작을 실행하는 단계를 포함한다. 상기 방법은 상기 읽기 어드레스를 수신하기 전에 상기 플래시 메모리 어레이의 각 페이지에 대응하는 모드 태그들로 어드레스 매핑 테이블(address mapping table)을 초기화시키는 단계를 포함한다. 본 양태의 실시예에 있어서, 상기 초기화 단계는 상기 플래시 메모리 어레이를 파워 업(power up)하는 단계, 상기 플래시 메모리 어레이의 각 페이지에 저장된 모드 태그들을 읽는 단계, 및 상기 모드 태그들을 상기 플래시 메모리 어레이의 각 페이지에 대응하는 논리적인 어드레스 엔트리(entry)들과 저장하는 단계를 포함한다. 상기 모드 태그들을 읽는 단계는, 상기 플래시 메모리 어레이의 각 페이지의 상기 모드 태그들을 읽기 위한 SBC 읽기 동작을 실행하는 단계를 포함한다. 다른 실시예에 있어서, 상기 수신 단계는 플래시 제어기로부터 플래시 메모리 장치에 외부 읽기 커맨드를 발행하는 단계를 포함하며, 상기 외부 읽기 커맨드는 상기 읽기 어드레스 및 상기 읽기 어드레스에 대응하는 모드 태그 비트의 논리 상태에 응답하여 생성된다. 상기 MBC 읽기 동작을 실행하는 단계는, 상기 플래시 메모리 장치내에서 상기 외부 읽기 커맨드를 디코드하는 단계, 및 내부 MBC 읽기 커맨드와 내부 SBC 읽기 커맨드 중 하나를 발행하는 단계를 포함할 수 있다.
상기 기술된 실시예들의 다른 양태들과 특징들은, 첨부 도면과 함께 본 발명의 특정 실시예들의 후술되는 상세한 설명의 검토시에 당업자들에게 명백해질 것이다.
본 발명은 소비자 및 상업용 어플리케이션 모두에 대해 적합하고 연장된 수명을 갖는 플래시 메모리 및 플래시 메모리 시스템을 제공할 수 있다.
실시예들이 이제, 첨부된 도면들을 참조하여, 단지 예시로서, 기술될 것이다.
도 1은 종래 기술의 플래시 메모리 장치의 블록도이다.
도 2는 도 1의 플래시 메모리 장치의 하나의 메모리 뱅크의 구성을 나타내는 개략도이다.
도 3은 셀당 싱글 비트 저장 모드에 있어서 삭제된 메모리 셀들과 프로그램된 메모리 셀들에 대한 임계 전압(Vt) 분포 그래프이다.
도 4는 셀당 멀티 비트 저장 모드에 있어서 삭제된 메모리 셀들과 프로그램된 메모리 셀들에 대한 임계 전압(Vt) 분포 그래프이다.
도 5는 멀티-드롭 플래시 메모리 시스템의 블록도이다.
도 6은 직렬로 구성된 플래시 메모리 시스템의 블록도이다.
도 7은 멀티 모드 플래시 메모리 장치의 수명을 연장시키기 위한 방법의 플로우차트이다.
도 8의 (a) 및 (b)는 MBC 저장 모드와 SBC 저장 모드 사이에서 변환되는 메모리 블록들의 예시도이다.
도 8의 (c) 및 (d)는 MBC 저장 모드와 SBC 저장 모드 사이에서 변환되는 메모리 페이지들의 예시도이다.
도 9는 메모리 어레이의 하나의 페이지에 대한 배분된 필드들의 개략적인 예시도이다.
도 10은 하나의 멀티 모드 플래시 메모리 장치를 포함하는 플래시 메모리 시스템의 블록도이다.
도 11은 도 10의 플래시 메모리 시스템을 동작시키기 위한 방법의 플로우차트이다.
도 12는 어드레스 매핑 테이블을 모드 태그 정보에 의해 초기화시키기 위한 방법의 플로우차트이다.
도 13은 멀티 모드 플래시 메모리 장치의 수명을 연장시키기 위한 방법의 플로우차트이다.
도 14는 MBC 및 SBC 저장 모드 데이터의 사용자 선택적 프로그래밍을 위한 방법의 플로우차트이다.
도 15는 MBC 저장 모드 서브디비전을 SBC 저장 모드 서브디비전으로 자동 변환하기 위한 방법의 플로우차트이다.
도 16은 SBC 저장 모드 서브디비전을 리클레임하기 위한 방법의 플로우차트이다.
도 17은 멀티 모드 플래시 메모리 장치로부터 데이터를 읽기 위한 방법의 플로우차트이다.
전반에 걸쳐, 적어도 몇몇 예시적인 실시예들이 플래시 메모리 장치의 수명을 연장시키기 위한 방법 및 시스템을 제공한다. 플래시 메모리 장치는 셀당 싱글 비트(SBC) 저장 모드 또는 셀당 멀티 비트(MBC) 저장 모드로 데이터를 저장하도록 동적으로 구성될 수 있음으로써, SBC 데이터 및 MBC 데이터가 동일 메모리 어레이 내에 공존한다. 상기 메모리 장치는 멀티 모드 플래시 메모리 장치로서 칭해진다. 메모리의 각 페이지에 저장되는 하나 이상의 태그 비트들이 대응하는 메모리 블록에 데이터를 저장하기 위해 사용되는 저장 모드의 타입을 나타내는 데 사용된다. 제어기는 멀티 모드 플래시 메모리 장치의 수명을 최대화하도록 저장 모드를 선택적으로 변경하기 위해 각 페이지에 대응하는 프로그램-삭제 사이클의 수를 모니터한다.
현재 기술되는 실시예들은 도 1에 도시된 것과 같은 싱글 MBC 플래시 메모리 장치들, 및 도 5 및 6에 도시된 것들과 같은 MBC 플래시 메모리 장치들의 시스템에 적용될 수 있다.
도 5는 호스트 시스템(102)에 통합된 플래시 메모리 시스템(100)의 블록도이다. 플래시 메모리 시스템(100)은 호스트 시스템(102)과 통신하는 플래시 메모리 제어기(104), 및 멀티의 멀티 모드 플래시 메모리 장치들(106)을 포함한다. 호스트 시스템(102)은 마이크로컨트롤러, 마이크로프로세서, 또는 컴퓨터 시스템과 같은 프로세싱 장치를 포함할 것이다. 도 5의 플래시 메모리 시스템(100)은, 멀티 모드 플래시 메모리 장치들(106)이 채널(108)에 병렬로 연결되어 있는, 하나의 채널(108)을 포함하도록 구성된다. 당업자라면, 메모리 시스템(100)이 채널(108)에 연결되는 더 많거나 더 적은 장치들을 가질 수 있다는 것을 이해할 것이다.
채널(108)은 전체 메모리 장치들(106)에 연결되는 데이터 및 제어 라인들을 포함하는 일련의 공통 버스들(도시되지 않음)을 포함한다. 도시되지 않았지만, 각 메모리 장치는 플래시 메모리 제어기(104)에 의해 제공되는 각각의 칩 선택 신호로 인에이블(enable)/디스에이블(disable)된다. 플래시 메모리 제어기(104)는 호스트 시스템(102)의 동작에 의거하여 커맨드들과 데이터를 채널(108)을 통해 선택된 메모리 장치(106)에 발행할 책임이 있다. 메모리 장치들로부터 읽어낸 데이터는 채널(108)을 통해 플래시 메모리 제어기(104) 및 호스트 시스템(102)에 되 전송된다. 플래시 메모리 시스템(100)은 일반적으로, 멀티 모드 플래시 메모리 장치들(106)이 채널(108)에 관하여 병렬로 연결되는, 멀티-드롭(multi-drop) 구성으로서 칭해진다. 당업자라면 플래시 메모리 제어기(104)가, 각기 멀티 드롭 구성으로 연결되는 플래시 메모리 장치들(106)이 있는, 멀티 채널들을 가질 수 있다는 것을 이해할 것이다. 각 멀티 모드 플래시 메모리 장치(106)는 종전에 도 2에 도시된 뱅크 메모리 구성을 갖는 NAND 플래시 메모리 장치들로서 구현된다. 플래시 메모리 장치들(106)은 동일 용량 또는 상이한 용량을 가질 수 있다.
도 6은 직렬로 연결된 메모리 장치들을 갖는 플래시 메모리 시스템의 블록도이다. 플래시 메모리 시스템(120)은 호스트 시스템(124)과 통신하는 플래시 메모리 제어기(122), 및 4개의 직렬로 연결된 멀티 모드 플래시 메모리 장치들(126)을 포함한다. 4개의 플래시 메모리 장치들의 각각은 메모리 장치들 사이의 동작을 촉진시키기 위한 입/출력 회로를 갖는다. 상기 플래시 메모리 장치의 예는, 그 내용이 참조로서 이 명세서에 통합되어 있는, 공동 소유의 미국 특허 출원 번호 제11/354,023호(2005년 12월 30일 출원) 및 공동 소유의 미국 특허 출원 번호 제11/496,278호(2006년 7월 31일 출원)에 기술되어 있다.
일 실시예에 따르면, 멀티 모드 플래시 메모리 장치는 MBC 저장 모드로 데이터를 저장하도록 초기 설정되어 있다. 각 멀티 모드 플래시 메모리 장치의 수명은 수명 연장 스킴(scheme)을 실행시키는 것에 의해 연장된다. 도 7은 수명 연장 스킴을 예시하는 플로우차트이다.
제1 단계는, 프로그래밍 명령에 응답하여 일반적으로 실행되는 셀 변환(200)이다. MBC 저장 모드로 구성된 전체 서브디비전들에 대한 프로그램/삭제 사이클이 모니터되며, 미리 정해진 제한에 도달하는 어떠한 서브디비전이라도 SBC 저장 모드로 자동 변환될 것이다. 서브디비전은, 예컨대, 메모리 블록이나 페이지와 같이, 변환될 수 있는 셀들의 최소 단위 또는 집단이다. 이것은, 미리 정해진 제한에 도달하는 어떠한 MBC 저장 모드 서브디비전도 더 이상 신뢰성 있게 데이터를 저장하지 않을 것이라는 사실에 기인하지만, 그것들은 규정된 수의 프로그램/삭제 사이클 동안 SBC 동작 모드로 데이터를 저장하기 위해 사용될 수 있다. 셀 변환 알고리즘은 또한 서브디비전들을, 그곳에 저장된 데이터가 더 이상 유지되지 않으면, SBC 저장 모드로부터 MBC 저장 모드로 변환할 것이다.
뒤 이어 단계(202)에서, 데이터는 선택된 저장 모드에 따라 프로그램된다. 초기에 메모리 뱅크의 전체 서브디비전들은 MBC 저장 모드로 데이터를 저장하도록 설정되어 있다. 하지만, 사용자가 더 높은 저장 신뢰성을 요구하는 데이터를 저장할 것을 택하면, 적어도 요구되는 수의 서브디비전들이 SBC 저장 모드로 데이터 파일을 저장하기 위해 배분되고 설정된다. 플래시 메모리 제어기(예컨대, 104 또는 122)는 특정 데이터 파일 확장자 타입들을 더 높은 저장 신뢰성을 요구하는 것들이라고 인식하도록 구성될 수 있다. 예를 들어, 윈도우즈TM(WondowsTM) 운영 체계 플랫폼에 있어서 “.exe”를 갖는 실행 가능 어플리케이션들은 SBC 저장 모드로 저장될 것이고, “.avi” 확장자를 갖는 비디오 데이터 파일은 더 높은 저장 신뢰성을 요구하지 않는다. 따라서, SBC 저장 모드로 구성된 서브디비전들은 MBC 저장 모드로 구성된 서브디비전들보다 더 긴 수명을 가질 것이다.
수명 연장 스킴의 앞서 언급된 단계들 중 어느 하나의 사용은 멀티 모드 플래시 메모리 장치의 수명을 연장시킬 것이다. 하지만, 멀티 모드 플래시 메모리 장치의 동작 동안에 양쪽 단계들이 사용되면 최대의 수명 연장이 달성된다.
도 8의 (a) 및 (b)는 메모리의 서브디비전들의 MBC 저장 모드로부터 SBC 저장 모드로의 변환, 및 그 역으로도 동일한 형태를 그래픽적으로 예시하며, 서브디비전은 현재 메모리 블록이다. 예시를 간략화하기 위해, 도 8 (a)의 멀티 모드 플래시 메모리 장치(300)는 4개의 메모리 블록(302)으로 구성되며, 4개의 메모리 블록들의 각각은 4개의 페이지들(304)을 포함한다. 메모리 장치(300)가 MBC 저장 모드로 데이터를 저장하도록 초기 설정된 전체 그 자신의 블록들(302)을 갖고, 도 7에서 이전에 설명된 사용자 또는 자동 셀 변환 알고리즘들에 종속되어 있는 것으로 가정한다. 그러므로, 예로서, 멀티 모드 플래시 메모리 장치(300)는, 그늘진 블록들이 SBC 저장 모드로 데이터를 저장하도록 설정되어 있고 그늘지지 않은 블록들이 MBC 저장 모드로 데이터를 저장하도록 설정되어 있는, 도 8 (a)에 도시된 바와 같은 SBC 및 MBC 페이지들의 구성을 가진다.
도 8 (b)는 페이지들(304)이 변환되고 난 후에 멀티 모드 플래시 메모리 장치(300)의 매핑을 예시한다. 제1 예에 있어서, 페이지들(306, 308, 310, 312)을 포함하는 MBC 저장 모드 블록이 미리 정해진 수의 프로그램/삭제 사이클에 도달했다는 것이 판정되었다. 따라서, 그것들은 SBC 저장 모드로 변환된다. 블록(302)의 각 페이지(304)에 대해 프로그램/삭제 사이클들이 모니터되고, 페이지들 중 적어도 하나가 미리 정해진 수에 도달하면 블록 변환이 실행된다.
제2 예에 있어서, 페이지들(314, 315, 316, 317)을 포함하는 SBC 저장 모드 블록이 더 이상 데이터를 저장하지 않는다는 것이 판정되었다. 이것은, 그 곳의 데이터가 삭제되고 그곳에 저장된 다른 데이터가 없을 때, 판정될 수 있다. SBC 페이지들(314, 315, 316, 317)에 대한 SBC 프로그램/삭제 사이클들의 수가 체크되며, 그것들 각각의 SBC 프로그램/삭제 사이크들 중 적어도 하나가 미리 정해진 제한에 도달했기 때문에, 전체 블록이 MBC 저장 모드로 되 변환된다. MBC의 SBC 저장 모드로의 변환 및 SBC의 MBC 저장 모드로의 변환에 관한 상세한 세부가 후술될 것이다.
도 8의 (a) 및 (b)는 SBC 저장 모드와 MBC 저장 모드 사이의 블록 기반 서브디비전들의 변환을 예시한다. 도 8의 (c) 및 (d)는 SBC 저장 모드와 MBC 저장 모드 사이의 페이지 기반 서브디비전들의 변환을 예시한다. 도 8 (c)에 도시된 바와 같이, 페이지들(318, 320)은 MBC 저장 모드로 데이터를 저장하도록 설정되고, 페이지들(322, 324)은 SBC 저장 모드로 데이터를 저장하도록 설정된다. 제1 예에 있어서, 프로그램/삭제 사이클들을 모니터하는 것에 의해 양쪽의 페이지들(318, 320)이 미리 정해진 MBC 프로그램/삭제 사이클 제한에 도달했다는 것이 판정된다. 그러므로, SBC 저장 모드로의 개개의 페이지 변환이 실행된다. 제2 예에 있어서, 프로그램/삭제 사이클들을 모니터하는 것에 의해 양쪽의 페이지(322, 324)들이 미리 정해진 제한에 도달했다는 것이 판정된다. 그러므로, MBC 저장 모드로의 개개의 페이지 변환이 실행된다.
메모리 장치(300)의 임의의 블록(302)의 저장 모드의 판정은 페이지(304)들 중 하나에 저장되는 모드 태그(적어도 1 비트)를 체크하는 것에 의해 달성된다. 이것은 메모리 장치(300)로 하여금 선택된 블록(302)상에 적합한 프로그래밍과 읽기 동작을 실행할 수 있게 한다. 도 9는 페이지(304)의 개략적인 예시도이며, 그것의 배분되는 필드들을 상세하게 도시한다. 페이지(304)는 사용자 데이터 필드(350)와 예비(spare) 데이터 필드(352)를 포함한다. 사용자 데이터 필드(350)는 사용자로부터 수신되는 데이터를 저장하고, 예비 데이터 필드(352)는 플래시 장치 또는 플래시 메모리 제어기의 용도로 비축된다. 본 예에 있어서, 유저 데이터 필드(350)는 2KB의 크기이고 예비 데이터 필드(352)는 64B의 크기이다. 예비 데이터 필드(350)에 있어서, 하나 이상의 비트들이 저장 모드 태그(354)로서 지정되고, 일부의 비트들이 페이지 상에서 실행되는 MBC 프로그램/삭제 사이클의 수를 추적하기 위한 프로그램/삭제 사이클 카운터(356)로서 지적된다.
SBC 카운터(358)는 SBC의 MBC로의 변환 그리고 차후의 MBC의 SBC로의 변환을 지원하기 위해 페이지상에서 실행되는 SBC 프로그램/삭제 사이클의 총 수를 추적하기 위해 포함된다. 일예의 어플리케이션은 SBC 저장 모드를 이용하여 고속으로 데이터를 프로그램한 다음, 나중에 메모리 용량을 개선하기 위해 아이들 기간(idle period) 동안 MBC 저장 모드로 변환하는 것이다. SBC 저장 모드 페이지가 MBC 저장 모드로 변환되는 것을 방지하기 위해 선택적인 록 비트(lock bit)(360)가 제공될 수 있다. 이 특징의 추가적인 세부는 추후 논의될 것이다. 메모리 블록(302)이 임의의 수의 페이지들(304)을 포함할지라도, 페이지(304)들 중 어느 하나 또는 더 많은 페이지들(304)이, 메모리 블록(302)에 대응하는 선택적인 록 비트, MBC 카운터 값, SBC 카운터 값, 및 태그 비트를 저장하기 위해 선택될 수 있다.
모드 태그(354)가, 사용할 특정 읽기, 프로그램, 및 삭제 알고리즘을 판정하기 위해 멀티 모드 플래시 장치(300)에 의해 사용된다. 이전에 논의된 바와 같이, 제어 신호들의 타이밍과 특정 전압 레벨들의 설정을 포함하는 읽기 및 프로그램 알고리즘들은 SBC 및 MBC 저장 모드로 저장되는 데이터에 대해 상이하다. 상기 차이점들은 당업자에게 주지되어 있다. 특히, 읽게 될 또는 프로그램될 서브디비전(예컨대, 블록 등)이 특정 논리 상태로 설정된 그 자신의 대응 모드 태그(354)를 가지면, 플래시 장치는 MBC 저장 모드 알고리즘들을 실행할 것이다. 그게 아니면, 플래시 장치는 SBC 저장 모드 알고리즘들을 실행할 것이다. SBC 및 MBC 저장 모드에 특정한 알고리즘들의 실행은 멀티 모드 플래시 메모리 장치의 논리 회로들과 커맨드 디코더에 의해 제어 된다.
몇몇의 실시예들에 있어서, 멀티 모드 플래시 메모리 장치는 SBC 및 MBC 저장 모드의 양쪽에 특정한 동작들을 실행하기 위해 요구되는 모든 회로들과 제어 논리부를 포함할 것이다. MBC 플래시 메모리 장치가 SBC 플래시 메모리 장치에 의해 사용되는 모든 회로들을 일반적으로 포함한다는 것에 주목한다. 전용의 MBC 및 SBC 플래시 메모리 장치들 사이의 주된 차이점은 알고리즘들을 실행하기 위한 제어 회로 및 논리 회로들이다.
도 10은 하나의 멀티 모드 플래시 메모리 장치를 포함하는 플래시 메모리 시스템의 블록도이다. 플래시 메모리 시스템(400)은 플래시 메모리 제어기(402)와 멀티 모드 플래시 메모리 장치(404)를 포함한다. 예시의 편이성을 위해 하나의 장치(404)만이 도시되었지만, 시스템(400)은 동일 채널에 연결된 임의의 수의 장치들(404)을 포함할 수 있고 시스템(400)은 임의의 수의 채널들을 포함할 수 있다. 플래시 메모리 제어기(402) 및 멀티 모드 메모리 장치(404)의 세부가 이제 기술될 것이다.
플래시 메모리 제어기(402)의 일반적인 구성 요소는, 호스트 시스템에 의해 제공되는 각각의 논리적 어드레스를 멀티 모드 플래시 메모리 장치의 대응하는 물리적 어드레스로 매핑하는 것을 책임지는, 논리 대 물리 어드레스 번역기(406)이다. 당업자에 의해 이해될 바와 같이, 어드레스 매핑은, 웨어 레벨링(wear leveling) 동작을 구현하기 위해 데이터가 이동하거나 재 프로그램되는 경우에, 데이터에 대한 논리적인 어드레스가 메모리 어레이의 그 실제적인 물리적인 위치를 일치되게 지시하는 것을 보장하기 위해 사용된다. 또한, 번역기는 일반적으로 어드레스 매핑 테이블로서 구현된다. 본 실시예에 따르면, 멀티 모드 플래시 메모리 장치(404)의 각 서브디비전의 각 모드 태그(MODE)가 매핑 테이블의 그 대응하는 논리적인 어드레스 엔트리(entry)와 더불어 획득되고 저장된다. 만약, 서브디비전이 블록이면, 블록에 대응하는 논리적인 어드레스들에 대한 대응하는 모드 태그가 저장된다. 대안적으로, 서브디비전이 페이지이면, 각 페이지의 모드 태그가 획득되고 저장된다. 따라서, 플래시 메모리 제어기(402)는 선택된 어드레스들과 관련된 저장 모드의 타입에 관한 정보가 있는 외부 커맨드(CMD)들을 발행할 것이다.
도 10에 도시된 멀티 모드 플래시 메모리 장치(404)는, 커맨드 디코더(408) 및 제어 논리부(410)로 구성되는 멀티 모드 제어 회로(405), 플래시 메모리 회로(412), 및 메모리 어레이(414)를 포함한다. 플래시 메모리 회로(412)와 메모리 어레이(414)는 명료함을 위해 간략화되었으나, 당업자라면 이들 회로 블록들이 멀티 모드 플래시 메모리 장치(404)의 적합한 동작을 보장하기 위해 필요한 모든 구성 요소들을 포함한다는 것을 이해한다. 커맨드 디코더(408)는 플래시 메모리 제어기(402)에 의해 발행되는 외부 커맨드(CMD)를 수신하여, 커맨드를 디코드하며, 대응하는 내부 제어 커맨드를 제어 논리부(410)에 발행한다. 당업자라면, 외부 커맨드(CMD)가, 데이터가 기입될 또는 데이터를 읽어낼 어드레스, 프로그램될 사용자 데이터, 및 실행될 동작의 타입과 같은 정보를 포함할 것이라는 것을 이해할 것이다. 제어 논리부(410)는, 프로그램 검증 동작과 같은 임의의 보충적인 동작들을 포함하여, 모든 표준 SBC 및 MBC 읽기 및 프로그램 동작들을 실행하기 위한 논리를 갖는 스테이트 머신(state machine)이다. 제어 논리부(410)는, 후술될 바와 같이, 멀티 모드 플래시 메모리 장치에 고유한 논리 기능을 실행시키기 위한 논리 회로도 포함한다.
커맨드 디코더(408)는 MBC 커맨드 디코더(416), SBC 커맨드 디코더(418), 및 공통 커맨드 디코더(420)를 포함한다. MBC 커맨드 디코더(416)는, MBC 읽기 커맨드 RD_MBC 및 MBC 프로그램 커맨드 PGM_MBC와 같은 MBC 저장 모드 특정 커맨드들을 발행한다. SBC 커맨드 디코더(416)는 SBC 읽기 커맨드 RD_SBC 및 SBC 프로그램 커맨드 PGM_SBC와 같은 SBC 저장 모드 특정 커맨드들을 발행한다. 공통 디코더(420)는 삭제 커맨드와 같은 SBC 또는 MBC 저장 모드용으로 구성된 메모리 서브디비전들에 특정되지 않는 커맨드들을 발행한다. 3개의 서브-커맨드 디코더들(416, 418, 420)은 커맨드 디코더(408)에 의해 발행되는 커맨드들의 타입들의 카테고리화를 예시하도록 별개의 회로 블록들로서 도시되었고, 반드시 커맨드들을 생성하기 위해 사용되는 논리의 그룹화 또는 특정 회로를 나타내지는 않는다.
플래시 메모리 시스템(400)의 일반적인 동작이 이제 도 11의 플로우차트를 참조하여 기술된다. 예시된 동작 방법의 단계들을 실행하기 전에, 모드 태그 정보가 이미 어드레스 번역기(406)내에 로드되어 있다는 것을 가정한다. 이제 단계(450)에 있어서, 읽기 또는 쓰기 요청을 예로서 포함할 수 있는 호스트 요청이 수신된다. 요청은 멀티 모드 플래시 메모리 장치(404)에 데이터를 기입하기 위한 논리 어드레스 또는 멀티 모드 플래시 메모리 장치(404)로부터 데이터를 읽기 위한 논리 어드레스를 포함할 것이다. 단계(452)에 있어서, 플래시 메모리 제어기(402)는, 요청된 논리 어드레스 및 어드레스 매핑 테이블의 대응 모드 태그의 상태에 기초하여, 어드레스 매핑 테이블을 검색하고 요구되는(SBC 대 MBC 저장 모드) 저장 모드 동작의 필요한 타입에 관한 표시와 더불어 적절한 커맨드 CMD를 생성한다. 커맨드 디코더(408)에 의해 수신되는 CMD 커맨드는 디코드되고, SBC 저장 모드 또는 MBC 저장 모드 읽기/프로그램 커맨드들이 MBC 커맨드 디코더(416) 또는 SBC 커맨드 디코더(418)에 의해 단계(454)에서 발행된다. 물론, CMD 커맨드는 공통 커맨드 디코더(420)에 의해 발행되는 삭제 동작과 같은 비 저장 모드 특정 커맨드일 수 있다. 단계(456)에서, 제어 논리부(410)는 요구되는 알고리즘을 실행하고 적합한 방식으로 필요한 멀티 모드 플래시 메모리 회로(412)를 제어한다.
멀티 모드 플래시 메모리 장치(404)에 의해 임의의 동작이 실행되기 전에, 플래시 메모리 제어기(402)의 어드레스 매핑 테이블은 모드 태그로 초기화된다. 이것은 바람직하게, 플래시 메모리 시스템(400)의 파워 업(power up) 동안과 같이. 사용자 동작들이 실행되지 않는 시간 동안 행해진다. 도 12는 어드레스 매핑 테이블을 초기화시키기 위한 방법을 예시하는 플로우차트이다. 단계(500)에서, 플래시 메모리 시스템(400)이 파워 업된다. 그 다음, 단계(502)에 있어서, 플래시 메모리 장치(404)는 그 자신의 전체 태그 비트의 논리 상태를 평가하기 위해 그 자신의 메모리 어레이를 스캔(scan)한다. 이것은 플래시 메모리 장치(404)의 전체 페이지의 읽기 동작을 실행하고, 모드 태그 정보(MODE)만을 플래시 메모리 제어기(402)에 제공하는 것에 의해 행해진다. 데이터의 전체 페이지가 동시에 판독되면, 태그 비트만이 사용되고 페이지들로부터 판독된 나머지 데이터는 무시된다. 그 다음, 단계(504)에서 어드레스 매핑 테이블에는 MODE 태그 데이터가 자리한다.
속도를 최대화하기 위해 그리고 모드 태그 판독 프로세스를 단순화하기 위해서, 전제 페이지들이 SBC 저장 모드 읽기 알고리즘을 이용하여 판독된다. 보다 상세하게는, SBC 읽기 알고리즘은 태그 비트의 삭제된 상태의 존재 또는 부재를 검출한다. 2개의 2진 논리 상태는 서브디비전(즉, 예컨대, 블록 또는 페이지)의 SBC 또는 MBC 저장 모드 구성을 판정하는데 사용될 수 있다. 바람직하게, 플래시 메모리 장치는, 제조/검사 동안에, MBC 저장 모드로 데이터가 프로그램될 것임을 표시하는 하나의 논리 상태(삭제된 상태)로 설정된 그 자신의 전체 모드 태그 비트들을 갖도록 사전 프로그램될 것이다. 표준 동작 동안에, 플래시 메모리 장치(402)는 프로그램 및 삭제 동작들을 겪게 될 것이고, 그에 의해 결국에는, 메모리의 페이지 또는 블록인, 적어도 하나의 서브디비전이 변경된 그 자신의 모드 태그를 갖게 될 것이다.
도 13은 모드 태그의 상태를 자동적으로 변경하는 것에 의해 멀티 모드 플래시 메모리 장치(400)의 수명을 연장시키기 위한 방법을 예시하는 플로우차트이다. 상기 방법은, 모드 태그가 변경되기 전에, 특정 기준이나 조건들을 개설한다. 상기 방법은 데이터가 멀티 모드 플래시 메모리 장치에 프로그램되는 단계(550)에서 시작한다. 멀티 모드 플래시 메모리 장치의 메모리 어레이의 SBC 저장 모드 서브디비전들 및 MBC 저장 모드 서브디비전들의 혼합이 있다고 가정한다. 그러므로, 단계(550)에서는, SBC 또는 MBC 프로그래밍 동작이 실행될 것이다.
단계(552)에서, 프로그램/삭제 사이클 후에 메모리 어레이의 각 서브디비전에 대한 프로그램 사이클의 수가 모니터된다. 대안적으로, 모니터링은 프로그램/삭제 사이클 직전에 행해질 수 있다. 몇몇 시점에서 삭제 동작이 메모리의 서브디비전에 대한 모든 프로그램 동작에 선행하므로, 삭제 사이클 또는 프로그램 사이클의 수는 실질적으로 동일하다는 것에 주목한다. 어드레스 매핑 테이블은 각 서브 디비전에 대한 프로그램/삭제 카운터를 포함할 수 있고, 그것에는 페이지의 예비 데이터 필드(352)에 저장된 대응 카운터 값이 초기에 자리한다. 카운터 값들은 시스템의 파워 업 동안에 로드되고 데이터가 프로그램될 시에 페이지에 되 프로그램될 수 있다. 단계(552)에서의 모니터링은 현재 프로그램된 서브디비전(들)에 대한 프로그램/삭제 카운터를 미리 정해진 제한과 비교하는 것을 포함한다. 그에 기반하여 사용되는 2개의 미리 정해진 제한이 있다. 하나의 제한은 SBC 저장 모드 제한이고, 다른 제한은 MBC 저장 모드 제한이다. 예를 들어, MBC 저장 모드 서브디비전들은 10,000 프로그램/삭제 사이클의 제한을 가질 것이고, SBC 저장 모드 서브디비전은 100,000 프로그램/삭제 사이클의 제한을 가질 것이다. 프로그래밍 동작이 완료되기 전 또는 후에, 비교가 실행된다. 그 후, 적용 가능한 미리 정해진 제한이 도달되면, 3가지의 가능성 있는 동작들 중 하나가 취해진다.
1 번째의 가능성 있는 동작은 단계(554)에서 MBC 저장 모드 서브디비전들의 수명을, 그것들을 SBC 저장 모드로 변환하는 것에 의해, 연장시키는 것이다. 따라서, 변환될 MBC 저장 모드 서브디비전들에 현재 저장된 임의의 데이터는 사용 가능한 MBC 저장 모드 서브 디비전들로 이동하거나 프로그램된다. 그 후, 단계(556)에서 어드레스 매핑 테이블의 대응하는 모드 태그 비트들이, 서브디비전들이 SBC 저장 모드로 설정되었다는 것을 표시하도록 변경된다. 데이터로서 프로그램된 페이지의 태그 비트 필드가 페이지로 프로그램된다.
제2 가능성 있는 동작은 단계(558)에서 SBC 저장 모드 서브디비전들을, 그것들을 MBC 저장 모드로 변환하는 것에 의해 리클레임(reclaim)하는 것이다. 이것은 단계(554)에서 논의된 것의 역 프로세스이다. 레클러메이션(reclamation)은 2가지 조건들 하에서 행해지며, 하나의 조건은 SBC 프로그램/삭제 사이클의 수가 표준 SBC 제한보다 더 적은 미리 정해진 값 아래라는 것으로, 상기 표준 SBC 제한은 100,000 사이클일 수 있다. 이것은, 100,000 사이클에 가깝게 프로그램된 SBC 메모리 셀들이, MBC 저장 모드로 데이터를 신뢰성 있게 저장하지 않을 정도로 열화될 것이라는 사실에 기인한다. 따라서, 감소된 SBC의 MBC로의 레클러메이션 제한이 사용된다. 이 감소된 제한이 선택됨으로써, 서브디비전이 10,000 프로그램/삭제 사이클의 표준 MBC 제한을 신뢰성 있게 견딜 것이다. 일 실시예에 있어서, 감소된 SBC의 MBC로의 레클러메이션 제한은 MBC 제한에 대응할 것이다. 예를 들어, MBC 제한이 10,000사이클이면, SBC 메모리 셀들은 10,000 SBC 프로그램/삭제 사이클 이하를 견뎠다는 것을 조건으로 MBC 저장 모드로 변환될 수 있다. 2 번째 조건은 SBC 서브디비전들에 저장된 데이터가 더 이상 사용되지 않는다는, 즉, 데이터가 삭제되었고 동일 서브디비전들에 재 프로그램되지 않는다는 것이다. 서브디비전이 삭제되면, 어드레스 매핑 테이블이 서브디비전이 자유라는 것을 표시하도록 갱신된다. 일단 이들 2 조건들이 충족되면, 어드레스 매핑 테이블의 모드 태그 상태는 단계(556)에서 변경된다. 따라서, 고 밀도 저장을 위해서는 상기 SBC 서브디비전들을 리클레임하는 것이 유리하다.
3 번째 가능성 있는 동작은, 단계(560)에서 SBC 서브디비전들을, 그것들이 그들의 SBC 프로그램/삭제 사이클 제한에 도달했으면, 리타이어(retire)시키는 것이다. 이 경우에 있어서, 서브디비전들은 간단히 맵 아웃(mapped out)되고 더 이상 플래시 메모리 시스템에 의해 사용되지 않는다. 사용할 수 없는 서브디비전들의 맵 아웃은 플래시 메모리 시스템에 있어서의 주지된 동작이다. 하지만, 이 시점으로, 서브디비전(들)은 MBC 및 SBC 저장 모드의 양쪽으로 저장된 데이터를 가질 것이고, 그에 의해 서브디비전(들)의 수명을 최대화시킨다.
이전에 기술될 실시예들은, 멀티 모드 플래시 메모리가 초기에 MBC 저장 모드로 데이터를 저장하도록 구성된 그 전체 서브디비전들을 갖는 것을 가정하였다. 하지만, 임의의 MBC 저장 모드 서브디비전은 호스트 시스템에 의해 SBC 저장 모드로 변환될 수 있다. 도 14는 호스트 시스템이 MBC 및 SBC 저장 모드 데이터의 선택적 프로그래밍을 하는 방법을 예시하는 플로우차트이다. 이 방법은 도 13의 수명 연장 방법의 단계(550)의 서브루틴(subroutine)으로서 실행될 수 있다. 단계(600)에서 시작하여, 플래시 메모리 제어기는 호스트로부터 프로그래밍 명령을 수신하여, 프로그램될 데이터의 타입을 식별할 것이다. 데이터의 타입은, 예컨대, JPEG 등의 이미지 파일들, 스프레드시트(spreadsheet) 또는 텍스트 문서(text document)들 등의 다양한 어플리케이션 데이터 파일들, 및 실행 가능한 프로그램들일 수 있다. 각 파일이 특정 확장자를 가질 것이므로, 플래시 메모리 제어기는 특정 데이터 타입을 식별할 것이다. 그 후, 플래시 메모리 제어기는 단계(602)에서 데이터 파일이 높은 신뢰성을 요구하는가를 판정한다. 이것은, 예컨대, 높은 신뢰성을 요구하는 것으로 간주되는 전체 데이터 타입을 포함하는 테이블을 체크하는 것에 의해 행해질 수 있다. 예를 들어, 실행 가능한 프로그램들은 높은 신뢰성을 요구하는 것으로 간주될 수 있다. 호스트 시스템이 높은 신뢰성을 요구하는 데이터 타입을 사전에 선택할 수 있다는 것에 주목한다.
데이터 타입이 테이블에 나타나 있지 않으면, 상기 방법은 단계(604)로 진행하고, 멀티 모드 플래시 메모리 장치는 MBC 저장 모드로 데이터를 프로그램한다. 보다 상세하게는, 플래시 메모리 제어기는 그 자신의 어드레스 매핑 테이블로부터 MBC 저장 모드로 설정된 모드 태그를 갖는 자유의 서브디비전들을 식별하며, 적절한 MBC 프로그래밍 커맨드를 멀티 모드 플래시 메모리 장치에 발행한다. 커맨드의 수신시에, 멀티 모드 플래시 메모리 장치는 도 10에 대해 이전에 기술된 방식으로 내부 프로그래밍 동작들과 더불어 진행할 것이다. 일단 내부 프로그램 검증이 데이터가 성공적으로 프로그램되었다고 판정했으면, 선택된 페이지들에 상응하는 어드레스 매핑 테이블의 프로그램/삭제 카운터들은 단계(606)에서 증가된다.
단계(602)로 되돌아가서, 데이터 타입이 테이블에 나타나 있으면, 상기 방법은, 플래시 메모리 제어기가 사용 가능한 자유 SBC 저장 모드 디비전들이 있는가를 체크하는 단계(608)로 진행한다. 자유 SBC 저장 모드 서브디비전들이 사용 가능하면, 멀티 모드 플래시 메모리 장치는 단계(610)에서 데이터를 대응하는 물리적인 위치에 SBC 저장 모드로 프로그램하도록 명령받는다. 그게 아니면, 필요한 MBC 저장 모드 서브디비전들이 그들의 모드 태그의 상태를 반전시키는 것에 의해 단계(612)에서 SBC 저장 모드로 변환된다. 그 후, 단계(610)가 실행되어 데이터를 SBC 저장 모드로 프로그램한다. 단계(610)에서의 SBC 저장 모드 프로그래밍 후에, 대응하는 프로그램/삭제 카운터들이 단계(606)에서 증가된다. 따라서, 사용자는 멀티 모드 플래시 메모리 장치에 있어서 MBC 또는 SBC 저장 모드로 데이터를 선택적으로 프로그램한다.
이전에 논의된 방법은 데이터 파일 타입을 높거나 낮은 신뢰성 타입으로 카테고리화했다. 대안적인 실시예에 있어서, 데이터 파일 타입은 상이한 신뢰성 레벨로 카테고리화될 수 있다. 그 후, 호스트 시스템은 어느 신뢰성 레벨들이 높은 신뢰성 데이터로 카테고리화될 것인가를 판정하기 위한 임계를 설정할 수 있다.
이전에 논의된 바와 같이, 플래시 메모리 시스템은 수명 연장 알고리즘을 자동적으로 실행할 수 있다. 도 15는 MBC 저장 모드 서브디비전을 SBC 저장 모드 서브디비전으로 자동 변환하기 위한 하나의 방법을 예시하는 플로우차트이다. 프로그래밍 명령은 단계(650)에서 플래시 메모리 제어기에 의해 먼저 수신된다. 예를 들어, 프로그래밍 명령은 멀티 모드 플래시 메모리 장치의 동일 서브디비전들에 저장된 기존 파일을 수정하도록 하는 것이다. 선택된 서브디비전(들)에 대한 프로그램/삭제 카운터는 단계(652)에서 MBC 저장 모드용의 미리 정해진 사이클 제한에 비교된다. 카운터 값이 제한보다 더 적으면, 데이터는 단계(654)에서 멀티 모드 플래시 메모리 장치의 동일 서브디비전들에 간단히 프로그램된다. 그게 아니면, 제한이 도달했고, 데이터는 단계(656)에서 새로운 서브디비전들에 프로그램된다. 그 후, 원래의 서브디비전들이 단계(658)에서 데이터를 소거하도록 삭제된다. 최종적으로, 단계(658)에서 어드레스 매핑 테이블의 원래의 서브디비전들에 대한 모드 태그의 상태가 반전되고, 그에 의해 그것들을 SBC 저장 모드 서브디비전들로서 지정한다. 이제, 서브디비전들이 만료되어 더 이상 사용되지 않게 되기 전에 실행될 수 있는 SBC 프로그램/삭제 사이클의 미리 정해진 수가 있을 것이므로, SBC 저장 모드로 변환된 서브디비전들은 단계(662)에서 그들의 프로그램/삭제 카운터들을 리셋시킬 것이다.
대안적인 변형된 시퀀스(sequence)는 데이터를 프로그램하고, 카운터를 증가시킨 다음, 프로그램/삭제 카운터를 미리 정해진 사이클 제한에 비교하는 것이다. 카운터 값이 사이클 제한보다 더 적으면 추가적인 동작이 취해지지 않는다. 그게 아니면, 최근에 프로그램된 데이터가 사용 가능한 MBC 저장 모드 서브디비전들로 이동되거나 재 프로그램된다. 재 프로그램밍은 시스템이 아이들(idle)일 때는 언제라도 행해질 수 있다. 그 후, 원래의 서브디비전들이 삭제되고 모드 태그 비트들이 반전된다.
데이터를 SBC 저장 모드 서브디비전들에 프로그래밍하기 위한 단계들은 도 15에 도시된 것과 실질적으로 동일하다. MB 프로그램/삭제 제한이 SBC 프로그램/삭제 제한으로 대체되며, SBC 서브디비전 프로그램/삭제 카운터가 SBC 프로그램/삭제 제한과 동등하면, SBC 저장 모드 서브디비전들은 간단히 사용에서 리타이어된다. 그 후, SBC 데이터는 사용 가능한 SBC 저장 모드 서브 디비전으로 프로그램된다. MBC 저장 모드 서브디비전들만이 사용 가능하면, 도 14의 방법이 실행되어 요구되는 MBC 저장 모드 서브디비전들을 SBC 저장 모드로 변환하고, 데이터를 프로그램한다.
앞서 언급된 실시예에 있어서, 하나의 카운터가 MBC 프로그램/삭제 사이클을 추적하기 위해 사용된 다음, SBC 저장 모드로 변환되면 SBC 프로그램/삭제 사이클을 추적하기 위해 재사용될 수 있다. 선택적인 실시예에 따르면, SBC 서브디비전들이 리클레임될 수 있다면, 분리된 SBC 및 MBC 프로그램/삭제 카운터들이 제공된다.
도 16의 방법은 SBC 저장 모드 서브디비전을 리클레임하기 위한 단계들을 개설한다. 이 방법은 플래시 메모리 시스템이 동작하고 있는 동안 언제라도 실행될 수 있다. 상기 방법은 단계(700)에서 비어 있는, 즉, 어떠한 데이터도 저장할 것이 의도되지 않은 각 SBC 저장 모드 서브디비전을 식별하는 것에 의해 시작한다. 단계(702)에서, SBC 프로그램/삭제 카운터는 MBC 리클레임 제한에 비교된다. 카운터가 적어도 리클레임 제한이면, 프로세스는 단계(704)에서 종료하고, SBC 저장 모드 서브디비전은 MB 저장 모드로 변환되지 않을 것이다. 한편, SBC 프로그램/삭제 카운터가 리클레임 제한보다 더 적으면, 단계(706)에서 록 비트의 상태가 체크된다. 록 비트는, 현재의 SBC 서브 디비전이 도 14의 자동 변환 방법에 의해 MBC 저장 모드로부터 SBC 저장 모드로 사전에 변환되었다는 것을 표시하는 활성 상태로 설정되어 있다. 환언하면, SBC 저장 모드 서브디비전이 이미 그 MBC 프로그램/삭제 사이클을 소진했다면, 그것을 더 사용하기 위해 SBC 저장 모드로부터 MBC 저장 모드 서브디비전으로 리클레임할 이유가 없다. 록 비트가 설정되어 있지 않으면, 그 대응하는 모드 태그의 상태가 단계(708)에서 변경된다. 단계(710)에서, 록 비트는, 여전히 SBC 저장 모드로 되 변환될 이 서브디비전의 미래의 리클레임을 방지하도록 설정된다.
이전에 논의된 방법들은 멀티 모드 플래시 메모리 장치에 데이터를 프로그래밍하기 위한 그리고 프로그래밍 동작 동안에 멀티 모드 플래시 메모리 장치의 수명을 연장하기 위한 기술들을 제공한다. 이들 동작에 있어서, 모드 태그는 데이터가 MBC 또는 SBC 저장 모드들로 프로그램될 것인지를 판정하기 위해, 그리고 상기 모드들 사이의 자동 변환을 실행하기 위해 사용된다. 일단 프로그램되면, 모드 태그는 실행될 읽기 동작의 타입을 판정하기 위해 사용된다. 도 17은 멀티 모드 플래시 메모리 장치로부터 데이터를 읽기 위한 방법을 개설하는 플로우차트이다.
단계(750)에서 시작하여 보면, 읽기 명령이 플래시 메모리 제어기에 의해 수신된다. 읽기 명령은 요구되는 데이터의 논리적인 어드레스를 포함할 것이다. 그 후, 플래시 메모리 제어기는 단계(752)에서 논리적인 어드레스에 대응하는 모드 태그 비트의 상태에 대해 그 자신의 어드레스 매핑 테이블을 체크할 것이다. 모드 태그의 상태가, 예로서 논리 “1”과 같은, 제1 상태이면, MBC 저장 모드 읽기 커맨드 CMD가 생성되고 멀티 모드 플래시 메모리 장치에 제공된다. 응답으로서, 멀티 모드 플래시 메모리 장치는 단계(754)에서 커맨드를 디코드하여 RD_MBC 커맨드를 발행할 것이다. 그 후, MBC 읽기가 단계(756)에서 실행된다. 그게 아니면, 멀티 모드 플래시 메모리 장치는 단계(758)에서 RD_SBC 커맨드를 발행할 것이고, 그 다음, SBC 읽기가 단계(760)에서 실행된다. 읽기 커맨드의 특정 타입에 관계없이, 데이터는 메모리 어레이로부터 판독되어 플래시 메모리 제어기에 되 제공될 것이다. 따라서, SBC 및 MBC 저장 모드로 프로그램된 양쪽의 데이터가 사용자에 의해 동일한 멀티 모드 플래시 메모리 장치로부터 액세스될 수 있다.
이전에 논의된 모든 실시예들에 있어서, 플래시 메모리 제어기 및 멀티 모드 플래시 메모리 장치에 의해 실행되는 선택적인 MBC 또는 SBC 프로세스는 사용자에게 명료하게 행해진다. SBC/MBC 저장 모드 동작의 모든 판정이 플래시 메모리 제어기에 의해 행해지므로, 사용자로부터 요구되는 추가적인 명령, 또는 명령의 변형이 없다. 따라서, 현재 기술된 플래시 메모리 시스템을 호스트 시스템과 더불어 구현하기 위해 요구되는 부담(overhead)이 최소이다.
따라서, 멀티 모드 플래시 메모리 장치의 이전에 기술된 실시예들은 SBC 저장 모드 또는 MBC 저장 모드로 데이터를 선택적으로 프로그램하도록 제어될 수 있음으로써, 양쪽 저장 모드로 프로그램되는 데이터가 동시에 동일 메모리 어레이내에 공존한다. 선택적인 프로그래밍은 프로그램되는 데이터의 타입에 기반하는 사용자 제어 하에서, 및/또는 프리셋(preset) 알고리즘을 통해 자동적으로 행해질 수 있다. 양쪽 타입의 저장 모드로 데이터를 저장하는 것에 의해, 멀티 모드 플래시 메모리 장치의 수명이 MBC 저장 모드만으로 데이터를 저장하는 전용의 플래시 메모리 장치를 넘어서 연장된다. 이전에 기술된 실시예들에서 언급된 서브디비전들은 메모리 뱅크, 메모리 블록, 또는 페이지일 수 있다.
앞서의 상세한 설명에 있어서, 설명의 용도로, 실시예들의 충분한 이해를 제공하기 위해 다수의 세부들이 언급되었다. 하지만, 당업자에게는 이들 특정 세부들이 실시예들을 실시하기 위해 요구되지 않는다는 것이 명백할 것이다. 다른 예에 있어서, 주지의 전기적인 구조들과 회로들이 실시예들의 양태를 모호하게 하지 않도록 블록도 형태로 도시되었다. 예를 들어, 이 명세서에 기술된 실시예들이, 소프트웨어 루틴(software routine), 하드웨어 회로, 펌웨어(firmware), 또는 그것들의 조합으로서 구현되는지의 여부에 관해서는 특정 세부들이 제공되지 않았다.
상기한 실시예들은 예시만을 의도하였다. 변경, 변형, 및 변화들이, 오로지 이 명세서에 첨부된 청구범위에 의해서 규정되는 권리범위로부터 벗어남 없이, 당업자에 의해 특정 실시예들에 초래될 수 있다.

Claims (6)

  1. 플레시 메모리 장치에서 수행되는 방법으로서,
    제1 외부 커맨드를 수신하는 단계;
    상기 제1 외부 커맨드를 디코드하여, 대응하는 제1 내부 제어 커맨드를 발행하여, 제1 알고리즘에 따라 제1 프로그램 동작을 수행하는 단계;
    제2 외부 커맨드를 수신하는 단계; 및
    상기 제2 외부 커맨드를 디코드하여, 대응하는 제2 내부 제어 커맨드를 발행하여, 제2 알고리즘에 따라 제2 프로그램 동작을 수행하는 단계
    를 포함하고,
    상기 제1 알고리즘과 상기 제2 알고리즘은 각각 상이한 특정 전압 레벨 및 제어 신호의 타이밍과 연관되는, 방법.
  2. 청구항 1에 있어서,
    상기 제1 프로그램 동작은 셀당 싱글 비트(SBC) 프로그램 동작인, 방법.
  3. 청구항 2에 있어서,
    상기 제2 프로그램 동작은 셀당 멀티 비트(MBC) 프로그램 동작인, 방법.
  4. 청구항 1에 있어서,
    제3 외부 커맨드를 수신하는 단계;
    상기 제3 외부 커맨드를 디코드하여, 대응하는 제3 내부 제어 커맨드를 발행하여, 제3 알고리즘에 따라 제1 읽기 동작을 수행하는 단계;
    제4 외부 커맨드를 수신하는 단계; 및
    상기 제4 외부 커맨드를 디코드하여, 대응하는 제4 내부 제어 커맨드를 발행하여, 제4 알고리즘에 따라 제2 읽기 동작을 수행하는 단계
    를 더 포함하고,
    상기 제3 알고리즘과 상기 제4 알고리즘은 상이한, 방법.
  5. 청구항 4에 있어서,
    상기 제1 읽기 동작은 셀당 싱글 비트(SBC) 읽기 동작인, 방법.
  6. 청구항 5에 있어서,
    상기 제2 읽기 동작은 셀당 멀티 비트(MBC) 읽기 동작인, 방법.
KR1020167008455A 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리 KR20160043121A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US89025207P 2007-02-16 2007-02-16
US60/890,252 2007-02-16
US11/829,410 US7646636B2 (en) 2007-02-16 2007-07-27 Non-volatile memory with dynamic multi-mode operation
US11/829,410 2007-07-27
PCT/CA2008/000285 WO2008098363A1 (en) 2007-02-16 2008-02-14 Non-volatile memory with dynamic multi-mode operation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147033804A Division KR20140146229A (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리

Publications (1)

Publication Number Publication Date
KR20160043121A true KR20160043121A (ko) 2016-04-20

Family

ID=39689589

Family Applications (6)

Application Number Title Priority Date Filing Date
KR1020097012054A KR20090081426A (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리
KR1020147033804A KR20140146229A (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리
KR1020137033288A KR20140013079A (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리
KR1020137020922A KR20130098439A (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리
KR1020097011082A KR100938334B1 (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리
KR1020167008455A KR20160043121A (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리

Family Applications Before (5)

Application Number Title Priority Date Filing Date
KR1020097012054A KR20090081426A (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리
KR1020147033804A KR20140146229A (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리
KR1020137033288A KR20140013079A (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리
KR1020137020922A KR20130098439A (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리
KR1020097011082A KR100938334B1 (ko) 2007-02-16 2008-02-14 동적 멀티 모드 동작의 비휘발성 메모리

Country Status (9)

Country Link
US (5) US7646636B2 (ko)
EP (2) EP2490224A3 (ko)
JP (3) JP5421127B2 (ko)
KR (6) KR20090081426A (ko)
CN (1) CN101617372B (ko)
CA (1) CA2675565C (ko)
ES (1) ES2477493T3 (ko)
TW (1) TWI449049B (ko)
WO (1) WO2008098363A1 (ko)

Families Citing this family (128)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US7852654B2 (en) * 2006-12-28 2010-12-14 Hynix Semiconductor Inc. Semiconductor memory device, and multi-chip package and method of operating the same
US7646636B2 (en) 2007-02-16 2010-01-12 Mosaid Technologies Incorporated Non-volatile memory with dynamic multi-mode operation
TWI368224B (en) * 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
US7460398B1 (en) * 2007-06-19 2008-12-02 Micron Technology, Inc. Programming a memory with varying bits per cell
KR101379820B1 (ko) * 2007-10-17 2014-04-01 삼성전자주식회사 멀티-비트 프로그래밍 장치와 메모리 데이터 검출 장치
US8001316B2 (en) * 2007-12-27 2011-08-16 Sandisk Il Ltd. Controller for one type of NAND flash memory for emulating another type of NAND flash memory
US7949851B2 (en) * 2007-12-28 2011-05-24 Spansion Llc Translation management of logical block addresses and physical block addresses
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
US8464021B2 (en) * 2008-05-28 2013-06-11 Spansion Llc Address caching stored translation
US20100017556A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
US20100017649A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation Data storage system with wear-leveling algorithm
KR20100010355A (ko) 2008-07-22 2010-02-01 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 및 소거 방법
KR101038167B1 (ko) 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
US8145855B2 (en) 2008-09-12 2012-03-27 Sandisk Technologies Inc. Built in on-chip data scrambler for non-volatile memory
US8429330B2 (en) * 2008-09-12 2013-04-23 Sandisk Technologies Inc. Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations
JP5268617B2 (ja) * 2008-12-17 2013-08-21 キヤノン株式会社 画像形成装置、画像形成装置の制御方法及びコンピュータプログラム
TWI393142B (zh) * 2008-12-29 2013-04-11 Macronix Int Co Ltd 記憶體裝置與其控制方法
US8380914B1 (en) * 2008-12-31 2013-02-19 Micron Technology, Inc. Extended address mode for serial flash memory
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8700840B2 (en) 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
WO2010078222A1 (en) * 2009-01-05 2010-07-08 Sandisk Corporation Non-volatile memory and method with write cache partitioning
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8261158B2 (en) * 2009-03-13 2012-09-04 Fusion-Io, Inc. Apparatus, system, and method for using multi-level cell solid-state storage as single level cell solid-state storage
US8266503B2 (en) 2009-03-13 2012-09-11 Fusion-Io Apparatus, system, and method for using multi-level cell storage in a single-level cell mode
US8370702B2 (en) * 2009-06-10 2013-02-05 Micron Technology, Inc. Error correcting codes for increased storage capacity in multilevel memory devices
US7916533B2 (en) * 2009-06-24 2011-03-29 Sandisk Corporation Forecasting program disturb in memory by detecting natural threshold voltage distribution
JP2011186555A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
CN101630266B (zh) * 2009-08-21 2013-12-18 成都市华为赛门铁克科技有限公司 固件加载方法、装置和固态硬盘
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
US8854882B2 (en) 2010-01-27 2014-10-07 Intelligent Intellectual Property Holdings 2 Llc Configuring storage cells
KR101655306B1 (ko) * 2010-02-24 2016-09-07 삼성전자주식회사 메모리 시스템 및 그것의 액세스 방법
US9245653B2 (en) 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
JP5612508B2 (ja) * 2010-03-25 2014-10-22 パナソニック株式会社 不揮発性メモリコントローラ及び不揮発性記憶装置
US9836370B2 (en) 2010-11-18 2017-12-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Backup memory administration using an active memory device and a backup memory device
US8737138B2 (en) * 2010-11-18 2014-05-27 Micron Technology, Inc. Memory instruction including parameter to affect operating condition of memory
WO2012069862A1 (en) * 2010-11-24 2012-05-31 Sony Ericsson Mobile Communications Ab Dynamically configurable embedded flash memory for electronic devices
US8621328B2 (en) 2011-03-04 2013-12-31 International Business Machines Corporation Wear-focusing of non-volatile memories for improved endurance
US8671240B2 (en) 2011-07-18 2014-03-11 Memory Technologies Llc User selectable balance between density and reliability
JP5971509B2 (ja) * 2011-08-30 2016-08-17 ソニー株式会社 情報処理装置および方法、並びに記録媒体
US9024425B2 (en) * 2011-09-01 2015-05-05 HangZhou HaiCun Information Technology Co., Ltd. Three-dimensional memory comprising an integrated intermediate-circuit die
US9117493B2 (en) * 2011-09-01 2015-08-25 Chengdu Haicun Ip Technology Llc Discrete three-dimensional memory comprising off-die address/data translator
US9588883B2 (en) * 2011-09-23 2017-03-07 Conversant Intellectual Property Management Inc. Flash memory system
KR20130060791A (ko) * 2011-11-30 2013-06-10 삼성전자주식회사 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브
US8995183B2 (en) * 2012-04-23 2015-03-31 Sandisk Technologies Inc. Data retention in nonvolatile memory with multiple data storage formats
CN103455440A (zh) * 2012-06-04 2013-12-18 慧荣科技股份有限公司 快闪内存装置及快闪内存的数据存取方法
FR2993380B1 (fr) * 2012-07-10 2020-05-15 Morpho Procede pour proteger une carte a puce contre une attaque physique destinee a modifier le comportement logique d'un programme fonctionnel
KR101975406B1 (ko) * 2012-07-11 2019-05-07 삼성전자주식회사 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 및 그것의 메모리 블록 관리, 소거, 및 프로그램 방법들
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US8804452B2 (en) 2012-07-31 2014-08-12 Micron Technology, Inc. Data interleaving module
TWI486965B (zh) * 2012-10-03 2015-06-01 Pixart Imaging Inc 使用於存取裝置與控制裝置之間之一傳輸埠的通訊方法以及存取裝置
KR101906966B1 (ko) 2012-11-05 2018-12-07 삼성전자주식회사 논리 장치 및 이의 동작 방법
KR102053953B1 (ko) 2013-02-04 2019-12-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
KR20140105343A (ko) * 2013-02-22 2014-09-01 삼성전자주식회사 디바이스 및 디바이스에서 복수의 모드를 이용한 데이터의 보안 방법
US9153331B2 (en) * 2013-03-13 2015-10-06 Sandisk Technologies Inc. Tracking cell erase counts of non-volatile memory
KR102039537B1 (ko) * 2013-03-15 2019-11-01 삼성전자주식회사 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법
CN104103318B (zh) * 2013-04-12 2019-11-05 三星电子株式会社 操作存储控制器的方法和包括存储控制器的数据存储设备
JP6213040B2 (ja) * 2013-08-19 2017-10-18 富士通株式会社 半導体記憶装置および半導体記憶装置の制御方法
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9513692B2 (en) * 2013-09-18 2016-12-06 Intel Corporation Heterogenous memory access
US20150120988A1 (en) * 2013-10-28 2015-04-30 Skymedi Corporation Method of Accessing Data in Multi-Layer Cell Memory and Multi-Layer Cell Storage Device Using the Same
US9612773B2 (en) * 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
US9218886B2 (en) * 2013-12-10 2015-12-22 SanDisk Technologies, Inc. String dependent parameter setup
US20150169228A1 (en) * 2013-12-12 2015-06-18 Sandisk Technologies Inc. System and method of storing data at a non-volatile memory
JP6308433B2 (ja) * 2014-05-21 2018-04-11 コニカミノルタ株式会社 画像形成装置及び制御方法並びに制御プログラム
US9645749B2 (en) * 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
JP6146675B2 (ja) * 2014-06-03 2017-06-14 コニカミノルタ株式会社 画像形成装置及びフラッシュメモリの制御方法並びに制御プログラム
US9563362B2 (en) 2014-09-02 2017-02-07 Sandisk Technologies Llc Host system and process to reduce declared capacity of a storage device by trimming
US9563370B2 (en) 2014-09-02 2017-02-07 Sandisk Technologies Llc Triggering a process to reduce declared capacity of a storage device
US9582193B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system
US9582212B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Notification of trigger condition to reduce declared capacity of a storage device
US9665311B2 (en) 2014-09-02 2017-05-30 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by making specific logical addresses unavailable
US9552166B2 (en) 2014-09-02 2017-01-24 Sandisk Technologies Llc. Process and apparatus to reduce declared capacity of a storage device by deleting data
US9524112B2 (en) 2014-09-02 2016-12-20 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by trimming
US9582220B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Notification of trigger condition to reduce declared capacity of a storage device in a multi-storage-device storage system
US9582202B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by moving data
US9652153B2 (en) 2014-09-02 2017-05-16 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by reducing a count of logical addresses
US9582203B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses
US9519427B2 (en) 2014-09-02 2016-12-13 Sandisk Technologies Llc Triggering, at a host system, a process to reduce declared capacity of a storage device
US9524105B2 (en) 2014-09-02 2016-12-20 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by altering an encoding format
US9158681B1 (en) 2014-09-02 2015-10-13 Sandisk Technologies Inc. Process and apparatus to reduce declared capacity of a storage device by conditionally trimming
JP6266479B2 (ja) * 2014-09-12 2018-01-24 東芝メモリ株式会社 メモリシステム
TWI514251B (zh) * 2014-10-09 2015-12-21 Realtek Semiconductor Corp 資料配置方法與裝置
KR20160052278A (ko) 2014-11-04 2016-05-12 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR102297541B1 (ko) 2014-12-18 2021-09-06 삼성전자주식회사 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템
KR102295208B1 (ko) 2014-12-19 2021-09-01 삼성전자주식회사 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
KR102282962B1 (ko) * 2014-12-22 2021-07-30 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10788994B1 (en) * 2014-12-30 2020-09-29 EMC IP Holding Company LLC Disaggregation of flash management
TWI544490B (zh) 2015-02-05 2016-08-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
KR20160108659A (ko) 2015-03-04 2016-09-20 에스케이하이닉스 주식회사 반도체 메모리 장치의 동작 방법 및 반도체 메모리 장치를 포함하는 메모리 시스템
US9606737B2 (en) 2015-05-20 2017-03-28 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning
US9639282B2 (en) 2015-05-20 2017-05-02 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
US10096355B2 (en) * 2015-09-01 2018-10-09 Sandisk Technologies Llc Dynamic management of programming states to improve endurance
US9401216B1 (en) 2015-09-22 2016-07-26 Sandisk Technologies Llc Adaptive operation of 3D NAND memory
US9691473B2 (en) 2015-09-22 2017-06-27 Sandisk Technologies Llc Adaptive operation of 3D memory
WO2017058218A1 (en) 2015-09-30 2017-04-06 Hewlett Packard Enterprise Development LP. Using a memory controller to manage access to a memory based on a memory initialization state indicator
KR102424702B1 (ko) * 2015-11-19 2022-07-25 삼성전자주식회사 불휘발성 메모리 모듈 및 이를 포함하는 전자 장치
US9946483B2 (en) 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning
US9946473B2 (en) 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive
US10007458B2 (en) * 2015-12-18 2018-06-26 Microsemi Solutions (U.S.), Inc. Method of configuring memory cells in a solid state drive based on read/write activity and controller therefor
JP6156710B2 (ja) * 2016-05-16 2017-07-05 ソニー株式会社 情報処理装置および方法、並びに記録媒体
US10121555B2 (en) * 2016-05-26 2018-11-06 Advanced Micro Devices, Inc. Wear-limiting non-volatile memory
US10055158B2 (en) 2016-09-22 2018-08-21 Qualcomm Incorporated Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems
US9971537B1 (en) * 2016-10-26 2018-05-15 Pure Storage, Inc. Hardware support to track and transition flash LUNs into SLC mode
JP6789788B2 (ja) * 2016-12-12 2020-11-25 株式会社メガチップス メモリ装置、コントローラ、ホスト装置、データ処理システム、制御プログラム、メモリ装置の動作方法及びホスト装置の動作方法
US10282094B2 (en) * 2017-03-31 2019-05-07 Samsung Electronics Co., Ltd. Method for aggregated NVME-over-fabrics ESSD
CN109378027A (zh) * 2017-08-09 2019-02-22 光宝科技股份有限公司 固态储存装置的控制方法
DE102017221710A1 (de) * 2017-12-01 2019-06-06 Continental Automotive Gmbh Datenspeichervorrichtung für ein Kraftfahrzeug
US11288116B2 (en) * 2018-02-15 2022-03-29 Micron Technology, Inc. End of service life of data storage devices
JP7128088B2 (ja) * 2018-11-02 2022-08-30 キオクシア株式会社 メモリシステム
KR20200053965A (ko) * 2018-11-09 2020-05-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
JP7095568B2 (ja) * 2018-11-21 2022-07-05 Tdk株式会社 メモリコントローラ及びこれを備えるフラッシュメモリシステム
KR20200075565A (ko) * 2018-12-18 2020-06-26 에스케이하이닉스 주식회사 스마트 카 시스템
US11194473B1 (en) * 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US10817187B2 (en) 2019-01-24 2020-10-27 Western Digital Technologies, Inc. Balancing the block wearing leveling for optimum SSD endurance
CN111831591B (zh) * 2019-04-19 2022-06-07 澜起科技股份有限公司 用于对存储模块进行访问控制的装置及方法
EP3891614B1 (en) * 2019-04-30 2023-06-21 Yangtze Memory Technologies Co., Ltd. Electronic apparatus and method of managing read levels of flash memory
WO2020240226A1 (en) * 2019-05-31 2020-12-03 Micro Technology, Inc. Memory device and method for monitoring the performances of a memory device
US10949126B2 (en) * 2019-07-25 2021-03-16 ScaleFlux, Inc. Solid-state storage device speed performance and endurance through host-side data classification and embedded write caching
TWI714267B (zh) * 2019-09-18 2020-12-21 華邦電子股份有限公司 非揮發性記憶體及其資料寫入方法
KR20220020717A (ko) * 2020-08-12 2022-02-21 삼성전자주식회사 메모리 장치, 메모리 컨트롤러 및 이들을 포함하는 메모리 시스템
US11615839B2 (en) 2021-07-06 2023-03-28 Sandisk Technologies Llc Non-volatile memory with variable bits per memory cell
US20230053269A1 (en) * 2021-08-16 2023-02-16 Sandisk Technologies Llc Memory device with improved endurance
US20230410923A1 (en) * 2022-06-21 2023-12-21 Sandisk Technologies Llc Hybrid precharge select scheme to save program icc
US20230420042A1 (en) * 2022-06-23 2023-12-28 Sandisk Technologies Llc Memory device with unique read and/or programming parameters

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163021A (en) 1989-04-13 1992-11-10 Sundisk Corporation Multi-state EEprom read and write circuits and techniques
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
KR950000273B1 (ko) 1992-02-21 1995-01-12 삼성전자 주식회사 불휘발성 반도체 메모리장치 및 그 최적화 기입방법
KR960000616B1 (ko) 1993-01-13 1996-01-10 삼성전자주식회사 불휘발성 반도체 메모리 장치
US5367484A (en) * 1993-04-01 1994-11-22 Microchip Technology Incorporated Programmable high endurance block for EEPROM device
EP0763241B1 (en) 1994-06-02 2001-10-17 Intel Corporation Dynamic single to multiple bit per cell memory
US5822256A (en) 1994-09-06 1998-10-13 Intel Corporation Method and circuitry for usage of partially functional nonvolatile memory
KR0142367B1 (ko) 1995-02-04 1998-07-15 김광호 열 리던던씨를 가지는 불휘발성 반도체 메모리의 소거 검증회로
US5671388A (en) 1995-05-03 1997-09-23 Intel Corporation Method and apparatus for performing write operations in multi-level cell storage device
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
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
JP3200012B2 (ja) 1996-04-19 2001-08-20 株式会社東芝 記憶システム
KR100272037B1 (ko) 1997-02-27 2000-12-01 니시무로 타이죠 불휘발성 반도체 기억 장치
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
JPH11224491A (ja) * 1997-12-03 1999-08-17 Sony Corp 不揮発性半導体記憶装置およびそれを用いたicメモリカード
JPH11176178A (ja) * 1997-12-15 1999-07-02 Sony Corp 不揮発性半導体記憶装置およびそれを用いたicメモリカード
US6359810B1 (en) 1998-03-13 2002-03-19 Atmel Corporation Page mode erase in a flash memory array
US6118705A (en) 1998-03-13 2000-09-12 Atmel Corporation Page mode erase in a flash memory array
JP2000173281A (ja) * 1998-12-04 2000-06-23 Sony Corp 半導体記憶装置
JP2001006374A (ja) * 1999-06-17 2001-01-12 Hitachi Ltd 半導体記憶装置及びシステム
KR100343449B1 (ko) 1999-10-19 2002-07-11 박종섭 플레시 메모리 회로 및 시스템
US7082056B2 (en) 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
JP4282197B2 (ja) * 2000-01-24 2009-06-17 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US6732221B2 (en) 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
JP2003022687A (ja) * 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体記憶装置
US6717847B2 (en) 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US7554842B2 (en) * 2001-09-17 2009-06-30 Sandisk Corporation Multi-purpose non-volatile memory card
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6643169B2 (en) * 2001-09-18 2003-11-04 Intel Corporation Variable level memory
US6807106B2 (en) 2001-12-14 2004-10-19 Sandisk Corporation Hybrid density memory card
JP4270832B2 (ja) 2002-09-26 2009-06-03 株式会社東芝 不揮発性半導体メモリ
US6847550B2 (en) 2002-10-25 2005-01-25 Nexflash Technologies, Inc. Nonvolatile semiconductor memory having three-level memory cells and program and read mapping circuits therefor
JP4270994B2 (ja) * 2003-09-29 2009-06-03 株式会社東芝 不揮発性半導体記憶装置
US8019928B2 (en) 2004-02-15 2011-09-13 Sandisk Il Ltd. Method of managing a multi-bit-cell flash memory
US7716413B2 (en) 2004-02-15 2010-05-11 Sandisk Il Ltd. Method of making a multi-bit-cell flash memory
US7336531B2 (en) 2004-06-25 2008-02-26 Micron Technology, Inc. Multiple level cell memory device with single bit per cell, re-mappable memory block
KR100705221B1 (ko) 2004-09-03 2007-04-06 에스티마이크로일렉트로닉스 엔.브이. 플래쉬 메모리 소자 및 이를 이용한 플래쉬 메모리 셀의소거 방법
JP2008020937A (ja) * 2004-10-29 2008-01-31 Matsushita Electric Ind Co Ltd 不揮発性記憶装置
JP2006164408A (ja) 2004-12-08 2006-06-22 Toshiba Corp 不揮発性半導体記憶装置及びそのデータ消去方法。
US7308525B2 (en) * 2005-01-10 2007-12-11 Sandisk Il Ltd. Method of managing a multi-bit cell flash memory with improved reliablility and performance
US20060282610A1 (en) * 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance
KR100732628B1 (ko) * 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
SG130988A1 (en) * 2005-09-29 2007-04-26 Trek 2000 Int Ltd Portable data storage device incorporating multiple flash memory units
US7366013B2 (en) * 2005-12-09 2008-04-29 Micron Technology, Inc. Single level cell programming in a multiple level cell non-volatile memory device
TWI311327B (en) * 2006-01-26 2009-06-21 Nuvoton Technology Corporatio Method for page random write and read in the block of flash memory
JP4805696B2 (ja) * 2006-03-09 2011-11-02 株式会社東芝 半導体集積回路装置およびそのデータ記録方式
US7593259B2 (en) 2006-09-13 2009-09-22 Mosaid Technologies Incorporated Flash multi-level threshold distribution scheme
KR100809320B1 (ko) 2006-09-27 2008-03-05 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법
KR100773400B1 (ko) 2006-10-26 2007-11-05 삼성전자주식회사 멀티 비트 플래시 메모리 장치
US7852654B2 (en) * 2006-12-28 2010-12-14 Hynix Semiconductor Inc. Semiconductor memory device, and multi-chip package and method of operating the same
US7646636B2 (en) * 2007-02-16 2010-01-12 Mosaid Technologies Incorporated Non-volatile memory with dynamic multi-mode operation
US7804718B2 (en) * 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
US8825939B2 (en) 2007-12-12 2014-09-02 Conversant Intellectual Property Management Inc. Semiconductor memory device suitable for interconnection in a ring topology
US8266503B2 (en) * 2009-03-13 2012-09-11 Fusion-Io Apparatus, system, and method for using multi-level cell storage in a single-level cell mode
US8261158B2 (en) * 2009-03-13 2012-09-04 Fusion-Io, Inc. Apparatus, system, and method for using multi-level cell solid-state storage as single level cell solid-state storage

Also Published As

Publication number Publication date
US8391064B2 (en) 2013-03-05
EP2126923B1 (en) 2014-04-09
US20140010019A1 (en) 2014-01-09
US20130141973A1 (en) 2013-06-06
EP2490224A2 (en) 2012-08-22
CN101617372A (zh) 2009-12-30
JP2013229100A (ja) 2013-11-07
JP5421127B2 (ja) 2014-02-19
US7646636B2 (en) 2010-01-12
US8767461B2 (en) 2014-07-01
US8553457B2 (en) 2013-10-08
KR100938334B1 (ko) 2010-01-22
EP2490224A3 (en) 2013-08-21
TW200845016A (en) 2008-11-16
KR20140146229A (ko) 2014-12-24
EP2126923A1 (en) 2009-12-02
US20120023285A1 (en) 2012-01-26
WO2008098363A8 (en) 2008-11-06
KR20140013079A (ko) 2014-02-04
ES2477493T3 (es) 2014-07-17
EP2126923A4 (en) 2010-03-17
WO2008098363A1 (en) 2008-08-21
JP2010518546A (ja) 2010-05-27
US20080198651A1 (en) 2008-08-21
KR20090077840A (ko) 2009-07-15
US20100174854A1 (en) 2010-07-08
JP2015156251A (ja) 2015-08-27
CA2675565A1 (en) 2008-08-21
KR20130098439A (ko) 2013-09-04
CN101617372B (zh) 2014-03-26
TWI449049B (zh) 2014-08-11
CA2675565C (en) 2014-12-09
KR20090081426A (ko) 2009-07-28
US8045377B2 (en) 2011-10-25

Similar Documents

Publication Publication Date Title
KR100938334B1 (ko) 동적 멀티 모드 동작의 비휘발성 메모리
US11150808B2 (en) Flash memory system
KR100663738B1 (ko) 동시 다중 데이터 섹터 프로그래밍 및 다른 지정 블럭들에대한 물리적 블럭 특성들의 저장기능을 갖는 플래시이이피롬 시스템
US8407400B2 (en) Dynamic SLC/MLC blocks allocations for non-volatile memory
US7573754B2 (en) Nonvolatile memory, apparatus and method for determining data validity of the same
JP2020086739A (ja) メモリコントローラ及びこれを備えるフラッシュメモリシステム

Legal Events

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