KR100984829B1 - 메모리 시스템 - Google Patents

메모리 시스템 Download PDF

Info

Publication number
KR100984829B1
KR100984829B1 KR1020097018085A KR20097018085A KR100984829B1 KR 100984829 B1 KR100984829 B1 KR 100984829B1 KR 1020097018085 A KR1020097018085 A KR 1020097018085A KR 20097018085 A KR20097018085 A KR 20097018085A KR 100984829 B1 KR100984829 B1 KR 100984829B1
Authority
KR
South Korea
Prior art keywords
block
erase
blocks
time
data
Prior art date
Application number
KR1020097018085A
Other languages
English (en)
Other versions
KR20090117932A (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 KR20090117932A publication Critical patent/KR20090117932A/ko
Application granted granted Critical
Publication of KR100984829B1 publication Critical patent/KR100984829B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • 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/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

메모리 시스템은 데이터 소거 단위로서 복수의 블록을 포함하는 비휘발성 메모리, 각 블록의 데이터가 소거되는 소거 시간을 측정하는 측정부, 및 적어도 외부로부터 공급되는 데이터를, 공백 상태로 설정되며 소거 시간이 가장 오래된 제 1 블록에 기록하는 블록 제어기를 포함한다.
Figure R1020097018085
메모리 시스템

Description

메모리 시스템{MEMORY SYSTEM}
본 발명은 메모리 시스템에 관한 것으로, 예를 들어 NAND 플래시 메모리를 가지는 메모리 시스템에 관한 것이다.
최근, 비휘발성 반도체 메모리는, 대형 컴퓨터, 퍼스널 컴퓨터, 가전 제품, 휴대 전화기 등과 같이 여러 가지 부분에서 사용되고 있다. 특히, NAND 플래시 메모리는 전기적으로 재기록가능하고, 대용량 및 고집적 밀도로 형성될 수 있는 비휘발성 반도체 메모리이다. 또한, 최근에, 하드 디스크 드라이브(HDD) 대신에 NAND 플래시 메모리를 사용하는 것이 고려되고 있다.
NAND 플래시 메모리는 기록 처리를 수행하기 이전에 소거 처리를 필요로 하는 반도체 메모리이다. 그 서비스 수명은 재기록 동작의 횟수에 의존한다. NAND 플래시 메모리의 데이터 기록/소거 동작은, 기판과 제어 게이트 사이에 고전압을 인가함으로써 플로팅 게이트에 대하여 전자를 주입/방출시키는 것이다. 상기 동작을 복수회 수행하면, 플로팅 게이트 부근에 놓여 있는 게이트 산화막이 열화되고, 플로팅 게이트에 주입된 전자가 적출되어 데이터를 파괴한다. 즉, 재기록 동작의 횟수가 증가되는 경우, 데이터가 기록된 이후에 데이터가 유지되는 기간이 짧아지게 된다(유지 특성이 저하됨).
또한, 퍼스널 컴퓨터 등을 사용함으로써 기록되는 데이터는, 시간적 국소성 및 영역적 국소성을 가진다(문헌 1: David A. Patterson 및 John L. Hennessy, "Computer Organization and Design: The hardware/software Interface", Morgan Kaufmann Pub, 2004/8/31). 따라서, 데이터를 기록하는 경우에 외부로부터 지정되는 어드레스에 데이터 항목들이 존재하므로 데이터 항목을 순차적으로 기록하면, 특정 영역에 단기간에 재기록 처리 즉, 소거 처리가 집중되므로, 소거 처리의 횟수가 크게 불균형화된다.
NAND 플래시 메모리의 서비스 수명은 또한 소거 처리간의 간격에 의존하고, 상기 간격이 길어짐에 따라 상기 유지 특성이 좋아지고 상기 서비스 수명이 길어지게 된다(문헌 2: Neal Mielke et al., "Flash EEPROM Threshold Instabilities due to Charge Trapping During Program/Erase Cycling", IEEE TRANSACTIONS ON DEVICE AND MATERIALS RELIABILITY, VOL. 4, NO. 3, SEPTEMBER 2004, PP.335-344). 또한, 이는 소거 간격이 짧아짐에 따라 유지 특성이 열화되고, 상기 서비스 수명이 짧아지게 됨을 나타낸다.
또한, 기록 동작이 짧은 간격으로 수행되는 경우에도 소거 처리가 대응하는 장기간 동안 수행되지 않으면 유지 특성이 회복되는 것으로 알려져 있다(문헌 3: Neal Mielke et al., "Recovery Effects in the Distributed Cycling of Flash Memories", 44th Annual International Reliability Physics Symposium, San jose, 2006, pp.29-35).
본 발명의 양태에 따르면,
데이터 소거 단위로서 복수의 블록을 포함하는 비휘발성 메모리;
각 블록의 데이터가 소거되는 소거 시간을 측정하는 측정부; 및
적어도 외부로부터 공급되는 데이터를, 공백(free) 상태로 설정되며 소거 시간이 가장 오래된 제 1 블록에 기록하는 블록 제어기를 구비하는 메모리 시스템이 제공된다.
본 발명의 양태에 따르면,
데이터 소거 단위로서 복수의 블록을 포함하는 비휘발성 메모리;
각 블록의 데이터가 소거되는 소거 시간을 측정하는 측정부;
각 블록의 소거 횟수를 카운트하며, 공백 상태와 사용중 상태 중 하나를 나타내는 상태값, 상기 소거 시간 및 각 블록에 대한 소거 횟수 사이의 대응 관계를 나타내는 블록 테이블을 가지는 블록 제어기; 및
상기 블록 테이블의 정보에 기초하여, 상기 공백 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 개수의 블록들 중에서 소거 횟수가 최소인 제 1 블록을 선택하는 제 1 선택기를 구비하며,
상기 블록 제어기는 적어도 외부로부터 공급된 데이터를 상기 제 1 블록에 기록하는 메모리 시스템이 제공된다.
본 발명의 양태에 따르면,
데이터 소거 단위로서 복수의 블록을 포함하는 비휘발성 메모리;
각 블록의 데이터가 소거되는 소거 시간을 측정하는 측정부;
각 블록의 소거 횟수를 카운트하며, 공백 상태와 사용중 상태 중 하나를 나타내는 상태값, 상기 소거 시간 및 각 블록에 대한 소거 횟수 사이의 대응 관계를 나타내는 블록 테이블을 가지는 블록 제어기; 및
상기 블록 테이블의 정보에 기초하여, 상기 공백 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 비율의 블록들 중에서 소거 횟수가 최소인 제 1 블록을 선택하는 제 1 선택기를 구비하며,
상기 블록 제어기는 적어도 외부로부터 공급된 데이터를 상기 제 1 블록에 기록하는 것인 메모리 시스템이 제공된다.
본 발명의 양태에 따르면,
데이터 소거 단위로서 복수의 블록을 포함하는 비휘발성 메모리;
각 블록의 데이터가 소거되는 소거 시간을 측정하는 측정부;
각 블록의 소거 횟수를 카운트하며, 공백 상태와 사용중 상태 중 하나를 나타내는 상태값, 상기 소거 시간 및 각 블록에 대한 소거 횟수 사이의 대응 관계를 나타내는 블록 테이블을 가지는 블록 제어기; 및
상기 블록 테이블의 정보에 기초하여, 상기 공백 상태로 설정되며 소거 시간이 사전 설정된 시간보다 더 오래된 블록들 중에서 소거 횟수가 최소인 제 1 블록을 선택하는 제 1 선택기를 구비하며,
상기 블록 제어기는 적어도 외부로부터 공급된 데이터를 상기 제 1 블록에 기록하는 것인 메모리 시스템이 제공된다.
도 1은 본 발명의 제 1 실시형태에 따른 메모리 시스템(1)을 포함하는 컴퓨터 시스템이 일례를 나타내는 개략도이다.
도 2는 제 1 실시형태에 따른 메모리 시스템(1)의 구성을 나타내는 개략도이다.
도 3a는 NAND 플래시 메모리에 포함되는 블록의 배열을 나타내는 회로도이다.
도 3b는 4 레벨 데이터 기록 시스템에서 획득되는 임계값 분포의 일례를 나태는 도면이다.
도 4는 NAND 제어기(11)의 일례를 설명하기 위한 블록도이다.
도 5는 블록 제어기(30) 및 소거 시간 측정부(31)의 구성을 나타내는 블록도이다.
도 6은 NAND 제어기(11)의 일련의 기록 동작을 나타내기 위한 흐름도이다.
도 7은 NAND 제어기(11)의 블록 릴리즈 동작을 나타내기 위한 흐름도이다.
도 8은 할당 블록 선택기(32)의 구성을 나타내는 블록도이다.
도 9는 할당 블록 선택기(32)의 할당 블록 선택 처리를 예시하기 위한 흐름도이다.
도 10은 NAND 제어기(11)의 블록 할당 처리를 예시하는 흐름도이다.
도 11은 NAND 제어기(11)의 블록 소거 처리를 예시하는 흐름도이다.
도 12는 평준화부(35)의 구성을 나타내는 블록도이다.
도 13은 NAND 제어기(11)의 평준화 처리를 예시하는 흐름도이다.
도 14는 교체 소스 블록 선택기(33)의 구성을 나타내는 블록도이다.
도 15는 교체 소스 블록 선택기(33)의 교체 소스 블록 선택 처리를 예시하기 위한 흐름도이다.
도 16은 교체 목적지 블록 선택기(34)의 구성을 나타내는 블록도이다.
도 17은 교체 목적지 블록 선택기(34)의 교체 목적지 블록 선택 처리를 예시하는 흐름도이다.
도 18은 본 발명의 제 2 실시형태에 따른 할당 블록 선택기(32)의 구성을 나타내는 블록도이다.
도 19는 할당 블록 선택기(32)의 할당 블록 선택 처리를 예시하는 흐름도이다.
도 20은 본 발명의 제 3 실시형태에 따른 평준화부(35)의 구성을 나타내는 블록도이다.
도 21은 평준화 제한부(37)의 구성을 나타내는 블록도이다.
도 22는 NAND 제어기(11)의 평준화 처리를 예시하기 위한 흐름도이다.
도 23은 평준화 제한부(37)의 난수 판정 처리를 예시하는 흐름도이다.
도 24는 본 발명의 제 4 실시형태에 따른 NAND 제어기(11)의 구성을 나타내는 블록도이다.
도 25는 평준화부(35)의 구성을 나타내는 블록도이다.
도 26은 NAND 제어기(11)의 평준화 처리를 예시하기 위한 흐름도이다.
도 27은 실시형태에 따른 SSD(100)의 구성을 나타내는 블록도이다.
도 28은 구동 제어 회로(102)의 구성을 나타내는 블록도이다.
도 29는 프로세서(107)의 구성을 나타내는 블록도이다.
도 30은 상부에 SSD(100)가 탑재된 휴대용 컴퓨터(200)의 일례를 나타내는 사시도이다.
도 31은, SSD(100)를 이용한 휴대용 컴퓨터(200)의 시스템 구성의 일례를 나타내는 블록도이다.
이하, 첨부 도면을 참조하여 본 발명의 실시형태를 설명한다. 이하의 설명에서, 동일한 기능 및 구성을 가지는 요소는 동일한 부호로 표시하며 중복되는 설명은 필요한 경우에만 행한다.
[제 1 실시형태]
이 실시형태의 메모리 시스템은, 호스트 장치가 실장되는 인쇄 회로 기판 상에 실장되고, 버스를 통하여 상기 호스트 장치와 데이터를 교환한다. 다른 방법으로, 이 실시형태의 메모리 시스템은 호스트 장치에 착탈가능하게 부착되도록 설계된다. 이 메모리 시스템은 호스트 장치에 연결되며, 버스를 통하여 상기 호스트 장치와 데이터를 교환한다. 도 1은 이 실시형태의 메모리 시스템(1)을 포함하는 컴퓨터 시스템의 일례를 나타내는 개략도이다.
컴퓨터 시스템은, 중앙 처리 장치(CPU)(2), 동적 랜덤 액세스 메모리(DRAM)과 같은 메인 메모리(3), 상기 메인 메모리(3)를 제어하기 위한 메모리 제어기(4) 및 이 실시형태의 메모리 시스템(1)을 구비한다. CPU(2), 메인 메모리(3) 및 메모 리 시스템(1)은, 어드레스를 처리하는 어드레스 버스(5) 및 데이터를 처리하는 데이터 버스(6)를 통하여 서로 연결되어 있다.
이 컴퓨터 시스템에서, CPU(2)로 부터의 전송 요청(판독 요청 또는 기록 용청)이 기록 요청이면, CPU(2)의 데이터(외부로부터 입력된 데이터를 포함함) 또는 메인 메모리(3)의 데이터가 메모리 시스템(1)으로 전송된다. CPU(2)로부터의 전송 요청이 판독 요청이면, 메인 메모리(1)의 데이터가 CPU(2) 또는 메인 메모리(3)로 전송된다.
메모리 시스템(1)은, 비휘발성 반도체 메모리의 일종인 NAND 플래시 메모리(10) 및 상기 NAND 플래시 메모리(10)를 제어하기 위한 NAND 제어기(11)를 구비한다. 이하에서는 메모리 시스템(1)의 구성의 일례를 설명한다.
[1. 메모리 시스템(1)의 구성]
도 2는 메모리 시스템(1)의 구성을 나타내는 개략도이다. 메모리 시스템(1)은 NAND 플래시 메모리(10) 및 NAND 제어기(11)를 구비한다. NAND 제어기(11)는 호스트 인터페이스 회로(host I/F), MPU(micro processing unit)(22), ROM(read only memory)(23), RAM(random access memory)(24) 및 NAND 인터페이스 회로(NAND I/F)(25)를 포함한다.
호스트 인터페이스 회로(21)는 미리 결정된 프로토콜에 따라서 NAND 제어기(11)와 호스트 장치[CPU(2), 메인 메모리(3) 등] 사이의 인터페이스 처리를 수행한다.
MPU(22)는 메모리 시스템(1)의 전체 동작을 제어한다. 메모리 시스템(1)의 전원이 온(on)되는 경우, 예를 들어, MPU(22)는 ROM(23)에 저장된 펌웨어를 RAM(24) 상에서 판독하고, 미리 결정된 처리를 실행하여, RAM(24) 상에 여러 가지 테이블을 형성한다. 또한, MPU(22)는 호스트 장치들로부터 기록 요청, 판독 요청 및 소거 요청을 수신하고, 이러한 요청에 따라서 NAND 플래시 메모리(10)에 미리 결정된 처리를 실행한다.
ROM(23)은, MPU(22)에 의해 제어되는 제어 프로그램을 저장한다. RAM(24)은 MPU(22)의 작업 영역으로서 사용되고, ROM(23)으로부터 로딩되는 제어 프로그램 및 여러 가지 테이블을 저장한다. NAND 인터페이스 회로(25)는, 미리 결정된 프로토콜에 따라서 NAND 제어기(11)와 NAND 플래시 메모리(10) 사이의 인터페이스 처리를 수행한다.
NAND 플래시 메모리(10)는 데이터 소거의 최소 단위로서 복수의 블록을 배열함으로써 형성된다. 도 3a는 NAND 플래시 메모리(10)에 포함되는 하나의 블록의 배열을 나타내는 회로도이다. 각 블록은 X 방향에 따라 순서대로 배열되는 (m+1)개의 NAND 스트링을 포함한다(m은 0 이상의 정수). (m+1) 개의 NAND 스트링 각각에 포함되는 선택 트랜지스터(ST1)는, 비트선들(BL0 내지 BLm) 중 대응하는 하나에 연결되는 드레인, 및 공통 선택 게이트선(SGD)에 연결된 게이트를 가진다. (m+1)개의 NAND 스트링 각각에 포함되는 선택 트랜지스터(ST2)는 소스선(SL)에 연결되는 소스 및 공통 선택 게이트선(SGS)에 연결된 게이트를 가진다.
각 NAND 스트링에서, (n+1)개의 메모리 셀 트랜지스터(MT)는, 메모리 셀 트랜지스터(MT)의 전류 경로가 직렬로 연결되도록 선택 트랜지스터(ST1)의 소스와 선 택 트랜지스터(ST2)의 드레인 사이에 배열된다(n은 0 이상의 정수). 즉, (n+1) 개의 메모리 셀 트랜지스터(MT)는, 인접 트랜지스터들이 확산 영역(소스 영역 또는 드레인 영역)을 공유하도록 Y 방향으로 직렬 연결된다.
제어 게이트 전극은, 드레인측에 가장 가까이 위치하는 메모리 셀 트랜지스터(MT)로부터의 순서로 워드선들(WL0 내지 WLn)에 연결된다. 따라서, 워드선(WL0)에 연결되는 메모리 셀 트랜지스터(MT)의 드레인은 상기 선택 트랜지스터(ST1)의 소스에 연결되며, 워드선(WLn)에 연결되는 메모리 셀 트랜지스터(MT)의 소스는 상기 선택 트랜지스터(ST2)의 드레인에 연결되어 있다.
워드선(WL0 내지 WLn)은, 블록 내의 NAND 스트링 사이에서 메모리 셀 트랜지스터(MT)의 제어 게이트 전극을 함께 연결하고 있다. 즉, 블록 내에서 동일한 행에 있는 메모리 셀 트랜지스터(MT)의 제어 게이트 전극은 동일한 워드선(WL)에 연결된다. 동일한 워드선(WL)에 연결되는 (m+1) 개의 메모리 셀 트랜지스터(MT)는 페이지로서 처리되고, 페이지 마다 데이터 기록 및 데이터 판독이 수행된다.
비트선(BL0 내지 BLm)은 블록들 사이에서 선택 트랜지스터(ST1)의 드레인을 함께 연결한다. 즉, 복수의 블록 내에서 동일한 열에 있는 NAND 스트링이 동일한 비트선(BL)에 연결된다.
각 메모리 셀 트랜지스터(MT)는, 반도체 기판 상에 형성된 적층 게이트 구조를 가지는 금속 산화물 반도체 전계 효과 트랜지스터(MOSFET)이다. 적층 게이트 구조는, 반도체 기판 상에 게이트 절연막, 전하 저장층(플로팅 게이트 전극), 게이트간 절연막, 제어 게이트 전극을 순차적으로 적층함으로써 형성된다. 메모리 셀 트랜지스터(MT)는, 플로팅 게이트 전극에 저장된 전자의 개수에 따라서 그 임계 전압을 변경하고, 그 임계 전압들 사이의 차에 따라서 데이터를 저장한다. 메모리 셀 트랜지스터(MT)는 2진 데이터(1 비트) 또는 멀티레벨(multilevel) 데이터(2 이상의 비트를 가지는 데이터)를 저장하도록 설계될 수 있다.
메모리 셀 트랜지스터(MT)의 구조는, 플로팅 게이트 전극을 가지는 구조로 제한되지 않고, 전하 저장층으로서의 질화물막의 계면에서 전자들을 포획함으로써 임계값을 조정할 수 있는 MONOS(metal oxide nitride oxide silicon)와 같은 구조일 수도 있다. 또한, 이 MONOS 구조를 가지는 메모리 셀 트랜지스터(MT)는 1 비트 또는 멀티레벨 데이터(2 이상의 비트를 가지는 데이터)를 저장하도록 설계될 수도 있다.
도 3b는 4 레벨 데이터 기록 시스템 즉, 하나의 메모리 트랜지스터(MT)에 2 비트가 기록되는 시스템을 사용하는 경우에 획득되는 임계값 분포의 일례를 나타낸다.
4 레벨 데이터 기록 시스템에서, 상부 페이지 데이터“x” 및 하부 페이지 데이터“y”에 의해 정의되는 4 레벨 데이터“xy”중 하나는 메모리 셀 트랜지스터(MT)에 유지될 수 있다.
데이터“11”,“01”,“00”및“10”(메모리 셀 트랜지스터(MT)의 임계 전압의 오름 차순으로 존재)는 4 레벨 데이터“xy”로서 할당된다. 데이터 “11”는 메모리 셀 트랜지스터(MT)의 임계 전압이 네가티브인 경우의 소거 상태를 나타낸다.
하부 페이지 기록에서, 데이터“10”는 데이터“11”상태(소거 상태)에 있는 메모리 셀 트랜지스터(MT)에 하부 비트 데이터“y”를 선택적으로 기록함으로써 기록된다.
상부 페이지 기록 이전에 존재하는, 데이터“10”의 임계값 분포는, 상부 페이지 기록 이후에 존재하는, 데이터 “01” 및 데이터 “00”의 임계값 분포 사이에 위치된다. 데이터“10”의 임계값 분포는 상부 페이지 기록 이후의 데이터의 임계값 분포보다 넓게 되도록 허용된다.
상부 페이지 기록에서, 상부 비트 데이터“x”는 데이터“11”상태로 존재하는 메모리 셀 및 데이터“10”상태로 존재하는 메모리 셀에 선택적으로 기록된다.
본 발명의 각 실시형태의 각 기능 블록은, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합에 의해 실행될 수 있다. 따라서, 각 기능 블록은, 상기 블록이 하드웨어 및 소프트웨어 중 하나 또는 양자에 의해 실행될 수 있는지를 명확하게 나타내기 위하여 그 기능의 관점으로부터 이하에 설명된다. 그 기능은 실제적인 실시형태 또는 전체 시스템에 부여되는 설계 제약에 따라서 하드웨어 또는 소프트웨어로서 실행된다. 당업자는 각각의 실제적인 실시형태에 대한 다양한 방법에 의해 이러한 기능들을 실행할 수 있고, 본 발명의 범위는 실행의 결정을 포함한다.
NAND 제어기(11)이 구체적 구성의 일례를 설명한다. 도 4는 NAND 제어기(1)의 일례를 설명하기 위한 블록도이다.
NAND 제어기(11)는 블록 제어기(30), 소거 시간 측정부(31), 할당 블록 선택 기(32), 교체 소스 블록 선택기(33), 교체 목적지 블록 선택기(34), 평준화부(35) 및 NAND 인터페이스 회로(NAND I/F)(25)를 포함한다.
소거 시간 측정부(31)는 NAND 플래시 메모리(10)의 각 블록의 데이터가 소거될 때 마다 블록의 소거 시간을 측정한다. 그 후, 상기 소거 시간 측정부(31)는 소거 시간을 블록 제어기(30)에 송신한다.
블록 제어기(30)는 각 블록의 여러 가지 정보 항목(소거 시간을 포함)을 관리한다. 또한, 블록 제어기(30)는 CPU(2)로부터의 전송 요청에 응답하여 NAND 플래시 메모리(10)에 대하여 기록 요청, 판독 요청 및 소거 요청을 발행한다. 특히, 블록 제어기(30)는 후술되는 어드레스 테이블(30A) 및 블록 테이블(30B)을 가지며, 상기 테이블을 이용하여 기록 요청, 판독 요청 및 소거 요청을 발행한다.
할당 블록 선택기(32)가 예를 들어 외부[CPU(2) 또는 메인 메모리(3)]로부터 공급되는 새로운 데이터를 NAND 플래시 메모리(10)에 기록하는 경우, 할당 블록 선택(32)는 상기 기록 처리를 위해 할당되는 블록(이하, 할당 블록으로 지칭됨)을 선택한다. 그 후, 할당 블록 선택기(32)는 상기 할당 블록에 대응하는 블록 번호(할당 블록 번호)를 블록 제어기(30)에 송신한다. NAND 플래시 메모리(10)에 기록되는 데이터로서, 메모리 시스템(1)의 외부로부터 공급되는 사용자 데이터 및 상기 메모리 시스템(1)의 내부 관리에 필요한 시스템 데이터를 포함하는 2 가지 타입의 데이터 항목이 제공된다.
평준화부(35)는 후술되는 평준화 처리를 실행한다. 평준화부(35)는 평준화 처리를 수행하는 경우에 상기 NAND 플래시 메모리(10)에 대하여 기록 요청, 판독 요청 및 소거 요청을 발행한다. 평준화 처리는 블록의 소거 처리 횟수가 대략 균일하게 설정되는 것(소위, 웨어(wear) 레벨링 처리)을 의미한다. 따라서, 블록의 소거 처리 횟수를 대략 균일하게 설정함으로써 블록들의 일부에 소거 처리가 집중되는 것을 방지할 수 있으므로, NAND 플래시 메모리(10)의 서비스 수명이 연장될 수 있다.
교체 소스 블록 선택기(33)는 평준화부(35)에 의해 평준화 처리에 사용되는 데이터 교체 소스의 블록(이하, 교체 소스 블록으로 지칭됨)을 선택한다. 교체 목적지 블록 선택기(34)는 평준화부(35)에 의해 평준화 처리에 사용되는 데이터 교체 목적지의 블록(이하, 교체 목적지 블록으로 지칭됨)을 선택한다.
NAND 인터페이스 회로(25)는 블록 제어기(30) 및 평준화부(35)로부터 기록 요청, 판독 요청 및 소거 요청을 수신한다. 그 후, NAND 인터페이스 회로(25)는 상기 요청들에 따라서 NAND 플래시 메모리(10)에 데이터 기록 동작, 판독 동작 및 소거 동작을 통지한다.
도 5는 블록 제어기(30) 및 소거 시간 측정부(31)의 구성을 나타내는 블록도이다. 블록 제어기(30)는 어드레스 테이블(30A), 블록 테이블(30B) 및 연산부(30C)를 포함한다.
어드레스 테이블(30A)은 호스트 장치[CPU(2)]로부터 어드레스 버스를 통하여 공급되는 어드레스를 포함하는 어드레스 영역(논리 블록 어드레스)과 이 어드레스 영역에 대응하는 NAND 플래시 메모리(10) 내의 블록 번호(물리 블록 어드레스) 사이의 관계를 나타낸다. 이 어드레스 테이블(30A)을 이용함으로써, 블록 제어 기(30)는 호스트 장치로부터 공급되는 어드레스를 포함하는 어드레스 영역의 데이터가 대응하는 상기 블록들 중 하나를 지정할 수 있다. 예를 들어, 어드레스 테이블(30A)은 후술되는 블록 릴리즈 처리 및 블록 할당 처리 시에 업데이트된다.
블록 테이블(30B)은 블록 번호가 어드레스 테이블(30A)에 설정되어 있지 않거나(이하, 공백 상태) 또는 블록 번호가 어드레스 테이블(30A)에 설정되어 있음을 나타내는 블록 상태, 데이터가 소거되는 횟수(소거 횟수) 및 소거 시간 측정부(31)로부터 공급되는 소거 시간을 정보로서 저장한다. 예를 들어, 블록 테이블(30B)은 후술되는 블록 릴리즈 처리, 블록 할당 처리 및 블록 소거 처리 시에 업데이트된다.
블록 상태가 공백 상태로 설정되는 경우, NAND 플래시 메모리(10) 내의 블록에 대하여 소거 처리가 실제로 수행되는지 여부에 상관없이, 상기 블록에 대응하는 어드레스 영역은, 호스트 장치로부터 보여질 때, 데이터가 저장되지 않는 공백 영역으로 인식된다. 한편, 상기 블록 상태가 사용중 상태로 설정되는 경우, 상기 블록에 대응하는 어드레스 영역은, 호스트 장치로부터 보여질 때, 데이터가 저장되는 사용중 영역으로 인식된다.
실제로, 어드레스 테이블(30A) 및 블록 테이블(30B)은 RAM(24)에 저장되거나 또는 RAM(24) 및 NAND 플래시 메모리(10)에 저장된다. 그러나, NAND 플래시 메모리(10)에 비휘발성 방식으로 저장되는 어드레스 테이블(30A) 및 블록 테이블(30B)은, RAM(24)이 업데이트 될 때 마다 항상 업데이트될 필요는 없다.
연산부(30C)는 NAND 플래시 메모리(10)의 데이터가 소거될 때 마다 블록 테 이블(30B)에 포함되는 소거 처리가 행해진 블록의 소거 횟수를 카운트 업한다. 실제로, 연산부(30C)의 처리는 MPU(22)에 의해 수행된다.
블록 제어기(30)는 할당 블록 선택기(32)로부터 할당 블록 번호를 수신한다. 그 후, 블록 제어기(30)는 할당 블록 번호를 이용하여 어드레스 테이블(30A)의 블록 번호를 업데이트한다. 또한, 블록 제어기(30)는, 할당 블록 번호에 대응하는 블록 테이블(30B)의 정보(할당 블록 정보) 및 블록 할당 시에 릴리즈되는 블록의 정보(릴리즈된 블록 정보)를 평준화부(35)에 송신한다.
블록 제어기(30)는 블록 테이블(30B)을 이용하여 NAND 플래시 메모리(10)에 포함되는 모든 블록(전체 블록 정보)의 정보 항목을 할당 블록 선택기(32), 교체 소스 블록 선택기(33) 및 교체 목적지 블록 선택기(34)에 송신한다.
소거 시간 측정부(31)는 소거 횟수를 카운트하는 소거 횟수 카운터(31A) 및 소거 횟수 카운터(31A)의 카운트 값을 업데이트하는 연산부(31B)를 포함한다. 소거 시간 측정부(31)는 NAND 플래시 메모리(10) 내의 블록에 대하여 수행되는 소거 처리의 횟수를 측정하고 이와 같이 측정된 횟수를 소거 시간으로서 출력한다.
특히, 연산부(31B)는, 블록들 중 어느 하나가 소거될 때 마다“1”만큼 소거 횟수 카운터(31A)를 카운트 업한다. 소거 횟수 카운터(31A)의 카운트값(소거 번호)은 소거 시간으로서 블록 제어기(30)(특히, 블록 테이블(30B))에 공급된다. 이 예의 소거 시간 측정부(31)에서, 소거 번호가 보다 작게 설정됨에 따라 소거 시간은 더 길어진다. 실제로, 연산부(31B)의 처리는 MPU(22)에 의해 수행된다.
소거 시간으로서, 소거 처리가 수행되는 시간(소거 타이밍), NAND 제어 기(11) 등의 전력 공급 시간이 상기 경우에 더하여 사용될 수 있다. 상기 소거 타이밍이 소거 시간으로서 사용되는 경우에, 소거 시간 측정부(31)는, 시계(timepiece)를 가지며, 소거 처리가 수행되는 타이밍을 소거 시간으로 출력한다. 전력 공급 시간을 소거 시간으로서 이용하는 경우에, 소거 시간 측정부(31)는 타이머를 가지며, 소거 처리가 수행될 때 마다 각 소거 처리까지의 전력 공급 시간을 측정하고, 그 전력 공급 시간을 소거 시간으로 출력한다. 따라서, 소거 횟수, 소거 타이밍 또는 전력 공급 시간이 자유롭게 선택될 수 있고, 소거 시간으로서 사용된다. 소거 시간을 특정할 수 있는 정보가 사용되면, 상기 3 가지 타입 이외의 정보를 사용할 수 있다.
[2. NAND 제어기(11)의 기록 동작]
다음으로, NAND 제어기(11)의 기록 동작을 설명한다. 도 6은 NAND 제어기(11)의 일련의 기록 동작을 예시하는 흐름도이다.
먼저, NAND 제어기(11)는 CPU(2)로부터 기록 요청을 수신하고, 그 기록 동작을 시작한다(단계 S10). 그 후, 블록 제어기(30)는 어드레스 테이블(30A)을 이용하여 기록 요청의 어드레스를 포함하는 어드레스 영역에 대하여 블록 번호가 등록되어 있는지(블록이 할당되어 있는지) 여부를 판정한다(단계 S11). 블록 번호가 등록되어 있는 경우(블록이 할당되어 있는 경우), 어드레스 영역에 대하여 데이터 오버라이트(overwrite) 처리가 요구되므로, NAND 제어기(11)는 상기 블록 번호에 대응하는 블록을 릴리즈하는 블록 릴리즈 처리를 수행한다(단계 S12).
단계 S11에서, 블록 번호가 등록되어 있지 않다고(블록이 할당되어 있지 않 다고) 판정되는 경우 또는 단계 S12에서 블록 릴리즈 처리를 수행한 이후에, 할당 블록 선택기(32)는 상기 어드레스 영역에 할당되는 블록을 선택하는 할당 블록 선택 처리를 수행한다(단계 S13).
다음으로, 블록 제어기(30)는 할당 블록에 대응하는 블록 번호(할당 블록 번호)을 이용하여 어드레스 테이블(30A) 및 블록 테이블(30B)을 업데이트하도록 블록 할당 처리를 수행한다(단계 S14). 그 후, 블록 제어기(30)는 할당 블록에 대하여 블록 소거 처리를 수행한다(단계 S15).
이 후에, 블록 제어기(30)는 소거된 할당 블록에 데이터를 기록한다(단계 S16). 즉, 블록 제어기(30)는 NAND 인터페이스 회로(25)에 기록 요청을 발행한다. NAND 인터페이스 회로(25)는 상기 기록 요청에 기초하여 NAND 플래시 메모리(10)에 상기 할당 블록에 데이터 기록되어 있음을 통지한다.
다음으로, NAND 제어기(11)는 평준화 처리(단계 S17)를 수행한다. 평준화 처리의 종료 이후에, NAND 제어기(11)의 일련의 기록 동작이 종료된다. 단계 S17에서의 평준화 처리는, 단계 S13의 할당 블록 선택 처리 이전에 수행될 수도 있다.
이하에서 기록 동작에 포함되는 각각의 처리를 설명한다.
[2-1. 블록 릴리즈 처리]
도 7은 NAND 제어기(11)의 블록 릴리즈 처리를 예시하기 위한 흐름도이다. 블록 제어기(30)는, 어드레스 테이블(30A)에 포함되는, 기록 요청의 어드레스를 포함하는 어드레스 영역에 대응하는 블록 번호를 미할당된 상태로 설정한다(단계 S20). 다음으로, 블록 제어기(30)는 블록 테이블(30B)에 포함되는 블록 번호의 상 태를 공백 상태로 설정한다. 이하에서, 블록 릴리즈 처리에서 공백 상태로 새롭게 설정된 블록은, 릴리즈된 블록으로서 지칭된다(단계 S21).
그 후, 블록 제어기(30)는 블록 테이블(30B)에 포함되는 릴리즈된 블록의 정보를 평준화부(35)에 송신한다. 상기 릴리즈된 블록 정보는 적어도 릴리즈된 블록 번호의 소거 시간을 포함한다. 상기 평준화부(35)는 릴리즈된 블록 정보를 이용함으로써 후술되는 부하 집중도를 업데이트한다(단계 S22).
[2-2. 할당 블록 선택 처리]
도 8은 할당 블록 선택기(32)의 구성을 나타내는 블록도이다. 도 9는 할당 블록 선택기(32)의 할당 블록 선택 처리를 예시하는 흐름도이다.
할당 블록 선택기(32)는 2 개의 선택기(32A 및 32B)를 가진다. 할당 블록 선택기(32)는 블록 제어기(30)로부터 전체 블록 정보를 수신한다. 전체 블록 정보는 선택기(32A)에 공급된다. 그 후, 선택기(32A)는 모든 블록의 상태를 확인하고, 모든 블록으로부터 공백 상태의 블록을 추출한다(단계 S31). 이 후에, 선택기(32A)는 공백 상태 블록에 대응하는 블록 정보(공백 상태 블록 정보)를 선택기(32B)로 송신한다.
다음으로, 선택기(32B)는 선택기(32A)에 의해 추출되는 블록들 중에서 가장 오래된 소거 시간에 대응하는 블록을 할당 블록으로서 선택한다(단계 S32). 상기 할당 블록에 대응하는 할당 블록 번호는 블록 제어기(30)에 공급된다.
[2-3. 블록 할당 처리]
도 10은 NAND 제어기(11)의 블록 할당 처리를 예시하는 흐름도이다. 블록 제어기(30)는 어드레스 테이블(30A)에 포함되는, 기록 요청의 어드레스를 포함하는 어드레스 영역으로 할당 블록의 블록 번호를 설정한다(단계 S40). 그 후, 블록 제어기(30)는 블록 테이블(30B)에 포함되는 블록 번호의 상태를 사용중 상태로 설정한다(단계 S41).
다음으로, 블록 제어기(30)는 블록 테이블(30B)에 포함되는 할당 블록의 정보(할당 블록 정보)를 평준화부(35)에 송신한다. 상기 할당 블록 정보는 적어도 할당 블록 번호의 소거 시간을 포함한다. 상기 평준화부(35)는 할당 블록 정보를 이용함으로써 후술되는 부하 집중도를 업데이트한다(단계 S42).
[2-4. 블록 소거 처리]
도 11은 NAND 제어기(11)의 블록 소거 처리를 예시하는 흐름도이다. 블록 제어기(30)는 NAND 인터페이스 회로(25)에 할당 블록에 대한 소거 요청을 발행한다(단계 S50). 소거 요청에 응답하여, NANd 인터페이스 회로(25)는 상기 할당 블록의 데이터가 소거되었음을 NAND 플래시 메모리(10)에 통지한다(단계 S51). 그 후, 소거 시간 측정부(31)(특히, 연산부(31B))는 소거 횟수 카운터(31A)의 카운트값을“1”만큼 카운트 업한다(단계 S52).
다음으로, 블록 제어기(30)는 블록 테이블(30B)에 포함되는 소거된 할당 블록에 대응하는 소거 횟수 및 소거 시간을 업데이트한다. 특히, 블록 제어기(30)는 소거 시간 측정부(31)로부터 공급되는 소거 시간을 이용함으로써 블록 테이블(30B)에 포함되는 소거된 할당 블록의 블록 번호에 대응하는 소거 시간을 업데이트한다. 또한, 연산부(30C)는 블록 테이블(30B)에 포함되는 소거된 할당 블록의 블록 번호 에 대응하는 소거 횟수를“1”만큼 카운트업한다.
[2-5. 평준화 처리]
NAND 플래시 메모리(10)의 서비스 수명을 연장하기 위하여, 각 블록들의 소거 횟수를 대략 서로 동일하게 설정하고, 동시에 특정 영역에 대하여 단기간에 재기록 처리가 빈번하게 수행되는 것을 피해야 할 필요가 있다. 각 블록들의 소거 횟수를 대략 서로 동일하게 설정함으로써 NAND 플래시 메모리(10)의 서비스 수명을 연장시키려고 한다면, 기록 상태에 따라서 특정 영역에 대한 재기록 처리가 단기간에 과도하게 진행될 수도 있다. 단기간에 수정(평준화) 처리를 빈번하게 수행하면, 수정 처리에 의해 야기되는 소거 처리의 개수가 증가되어, 비록 소거 횟수가 대략 균일하게 되고 단기간에 특정 영역에 대한 기록 처리의 집중을 피할 수 있지만, 결과적으로, 서비스 수명을 연장할 수 없다. 한편, 수정 간격을 과도하게 길게 하면, 특정 영역에 짧은 간격의 소거 처리가 집중되어 서비스 수명이 감소된다. 상기와 같은 사실을 고려함으로써, 본 발명의 평준화부에서는, 평준화 처리의 횟수를 최적값으로 설정하고, 각 블록의 소거 횟수는 대략 균일하게 설정된다.
평준화 처리는, 평준화부(35), 교체 소스 블록 선택기(33) 및 교체 목적지 블록 선택기(34)를 이용함으로써 수행된다. 전술된 바와 같이, 평준화 처리는 도 6의 할당 블록 선택 처리(단계 S13) 이전에 수행될 수도 있다. 도 12는 평준화부(35)의 구성을 나타내는 블록도이다.
평준화부(35)는 부하 집중도 관리부(36), 평준화 판정부(35A) 및 평준화 임계값을 저장하는 기억부(58B)를 포함한다. 상기 평준화 판정부(35A)는 평준화 임 계값 및 상기 부하 집중도 관리부(36)로부터 공급되는 부하 집중도를 이용함으로써 금회의 기록 동작시에 평준화 처리를 수행할 것인지 여부를 판정한다. 평준화 처리를 수행하는 경우, 평준화 판정부(35A)는, 평준화 처리에 의해 수반되는 판독 요청, 소거 요청 및 기록 요청을 NAND 인터페이스 회로(25)에 공급한다.
부하 집중도 관리부(36)는 릴리즈 블록 가산값 테이블(36A), 할당 블록 가산값 테이블(36B), 연산부(36C) 및 부하 집중도 카운터(36D)를 포함한다. 상기 부하 집중도 관리부(36)는 블록 제어기(30)로부터 릴리즈 블록 정보 및 할당 블록 정보를 수신한다.
릴리즈 블록용 가산값 테이블(36A)은 복수의 소거 시간과 이것에 대응하는 복수의 가산값 사이의 대응 관계를 나타낸다. 가산값의 크기는 소거 시간에 따라 변화하며 포지티브 값, 제로 및 네가티브 값으로 설정될 수 있다. 가산값은 소거 시간이 더 새로울 때 더 크게 설정되며, 소거 시간이 더 오래될 때 더 작게 설정된다. 좀더 단순화된 경우에는, 소거 시간이 사전 설정된 값을 초과하는 경우에 네가티브의 일정한 가산값이 출력될 수도 있고, 소거 시간이 사전 설정된 값을 초과하지 못하는 경우에 포티지브의 일정한 가산값이 출력될 수도 있다. 릴리즈 블록용 가산값 테이블(36A)은 릴리즈 블록 정보에 포함되는 소거 시간에 대응하는 가산값을 연산부(36C)에 공급한다.
마찬가지로, 할당 블록용 가산값 테이블(36B)은 복수의 소거 시간과 이것에 대응하는 복수의 가산값 사이의 대응 관계를 나타낸다. 가산값의 크기는 소거 시간에 따라 변화하며 포지티브 값, 제로 및 네가티브 값으로 설정될 수 있다. 가산 값은 소거 시간이 더 새로울 때 더 크게 설정되며, 소거 시간이 더 오래될 때 더 작게 설정된다. 좀더 단순화된 경우에는, 소거 시간이 사전 설정된 값을 초과하는 경우에 네가티브의 일정한 가산값이 출력될 수도 있고, 소거 시간이 사전 설정된 값을 초과하지 못하는 경우에 포티지브의 일정한 가산값이 출력될 수도 있다. 할당 블록용 가산값 테이블(36B)은 할당 블록 정보에 포함되는 소거 시간에 대응하는 가산값을 연산부(36C)에 공급한다.
연산부(36C)는 릴리즈 블록용 가산값 테이블(36A) 및 할당 블록용 가산값 테이블(36B)로부터 공급되는 가산값을 이용함으로써 부하 집중도 카운터(36D)의 카운트값을 업데이트한다. 실제로, 연산부(36C)의 처리는 MPU(22)에 의해 수행된다. 부하 집중도 카운터(36D)는 상기 카운트값을 부하 집중도로서 평준화 판정부(35A)에 공급한다. 짧은 간격을 가진 소거 처리가 빈번하게 수행되는지 여부는 상기 부하 집중도의 값에 따라서 판정될 수 있다.
도 13은 NAND 제어기(11)의 평준화 처리를 예시하는 흐름도이다. 평준화 판정부(35A)는 부하 집중도 관리부(36)로부터 공급되는 부하 집중도가 평준화 임계값을 초과하는지 여부를 판정한다(단계 S60). 평준화 임계값은, 평준화 처리가 수행되는지 여부를 판정하는데 사용되며, NAND 플래시 메모리(10)의 서비스 수명(또는 데이터 유지 기간)을 연장시키는 연장에 대한 기준에 기초하여 설정된다.
데이터가 소거될 때 마다, NAND 플래시 메모리(10)의 유지 특성은, 저하된다(즉, 서비스 수명이 감소됨). 소거 간격이 더 길어지게 되면, NAND 플래시 메모리(10)의 유지 특성은 점차 회복된다. 즉, 소거 처리가 짧은 간격으로 연속적으로 수행되면, 유지 특성의 충분히 긴 회복 시간을 얻을 수 없기 때문에, NAND 플래시 메모리(10)의 서비스 수명은 감소된다. 따라서, 본 실시형태에서, 소거 간격이 긴지 또는 짧은지 여부를 판정하는데 사용되는 기준은, 부하 집중도가 높은지 또는 낮은지 여부를 판정하는데 사용되는 기준으로 교체된다. 그 후, 소거 처리가 짧은 간격으로 연속적으로 수행되는지 여부를 부하 집중도가 평준화 임계값을 초과하는지 여부에 기초하여 판정하고, 부하 집중도가 평준화 임계값을 초과하는 경우에만, 일부 블록들에 소거 처리가 집중되는 것을 방지하기 위하여 평준화 처리를 수행한다. 평준화 임계값이 설정되면, 사전 설정된 기간만큼 소거 간격을 연장함으로써 서비스 수명을 회복할 수 있는 정도를 나타내는 NAND 플래시 메모리(10)의 특성이 고려된다.
단계 S60에서, 부하 집중도가 평준화 임계값을 초과한다고 판정되면, 교체 소스 블록 선택기(33)는 교체 소스 블록 선택 처리를 수행한다(단계 S61). 교체 소스 블록 선택 처리에 의해 선택된 교체 소스 블록의 정보(교체 소스 블록 정보)가 평준화 판정부(35A)에 공급된다. 그 후, 교체 목적지 블록 선택기(34)는 교체 목적지 블록 선택 처리를 수행한다(단계 S62). 교체 목적지 블록 선택 처리에 의해 선택된 교체 목적지 블록의 정보(교체 목적지 블록 정보)는 평준화 판정부(35A)에 공급된다.
그 후, 블록 제어기(30) 및 부하 집중도 관리부(36)는 교체 소스 블록 선택기(33)에 의해 선택된 교체 소스 블록을 릴리즈하는 블록 릴리즈 처리를 수행한다(단계 S63). 블록 릴리즈 처리는 도 7의 블록 릴리즈 처리와 동일하다. 다음으 로, 블록 제어기(30) 및 부하 집중도 관리부(36)는 상기 교체 목적지 블록 선택기(34)에 의해 선택된 교체 목적지 블록을 교체 소스 블록의 데이터를 이동시키는 블록으로서 할당하는 블록 할당 처리를 수행한다(단계 S64). 블록 할당 처리는 도 10의 블록 할당 처리와 동일하다.
이 후에, NAND 제어기(11)는 NAND 플래시 메모리(10)에 포함되는 교체 소스 블록의 데이터를 판독한다(단계 S65). 특히, 평준화 판정부(35A)는 교체 소스 블록 선택기(33)로부터 공급되는 교체 소스 블록 정보를 이용함으로써 NAND 인터페이스 회로(25)에 판독 요청을 발행한다. 이 판독 요청에 기초하여, NAND 인터페이스 회로(25)는 NAND 플래시 메모리(10)에, 교체 소스 블록으로부터 데이터가 판독됨을 통지한다. 이와 같이 판독된 데이터는 RAM(24) 등에 일시적으로 저장된다.
그 후, NAND 제어기(11)는 NAND 플래시 메모리에 포함되는 교체 목적지 블록의 데이터를 소거한다(단계 S66). 특히, 평준화 판정부(35A)는 교체 목적지 블록 선택기(34)로부터 공급되는 교체 목적지 블록 정보를 이용함으로써 NAND 인터페이스 회로(25)에 소거 요청을 발행한다. 이 소거 요청에 기초하여, NAND 인터페이스 회로(25)는 NAND 플래시 메모리(10)에, 교체 목적지 블록의 데이터가 소거됨을 통지한다. 이 때, 블록 제어기(30)에 의해 교체 목적지 블록의 소거 횟수 및 소거 시간이 업데이트된다(도 11 참조).
다음으로, NAND 제어기(11)는 교체 소스 블록으로부터 판독된 데이터를 NAND 플래시 메모리(10)에 포함되는 교체 목적지 블록에 기록한다(단계 S67). 특히, 평준화 판정부(35A)는 교체 목적지 블록 정보를 이용함으로써 NAND 인터페이스 회 로(25)에 기록 요청을 발행한다. 이 기록 요청에 기초하여, NAND 인터페이스 회로(25)는 NAND 플래시 메모리(10)에, 교체 목적지 블록에 데이터가 기록됨을 통지한다.
[2-5-1. 교체 소스 블록 선택 처리]
도 14는 교체 소스 블록 선택기(33)의 구성을 나타내는 블록도이다. 도 15는 교체 소스 블록 선택기(33)의 교체 소스 블록 선택 처리를 예시하기 위한 흐름도이다.
교체 소스 블록 선택기(33)는, 3 개의 선택기(33A 내지 33C) 및 교체 소스 블록 설정값을 기억하는 기억부(33D)를 가진다. 교체 소스 블록 선택기(33)는 블록 제어기(30)로부터 전체 블록 정보를 수신한다(단계 S70). 전체 블록 정보는 선택기(34A)에 공급된다. 그 후, 선택기(33A)는 전체 블록의 상태를 확인하고, 전체 블록으로부터 사용중 상태로 설정된 블록들을 추출한다(단계 S71). 이 후에, 선택기(33A)는 사용중 상태로 설정된 블록들에 대응하는 블록 정보(사용중 상태 블록 정보)를 선택기(33B)에 공급한다.
다음으로, 선택기(33B)는 사용중 상태 블록 정보로부터 교체 소스 블록 설정값에 따라 설정된 조건을 가진 블록 정보를 추출한다(단계 S72). 교체 소스 블록 설정값으로서, 이하의 조건들 중 하나가 설정된다.
(A) 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 개수의 블록들
(B) 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 비율 의 블록들
(C) 소거 시간이 사전 설정된 시간 보다 더 오래된 블록들
교체 소스 블록 설정값으로서 사용되는 조건 (A) 내지 (C) 중 하나는 자유롭게 선택될 수 있다. 예를 들어, 교체 소스 블록 설정값으로서 조건 (A)를 사용하면, 선택기(33B)는 사용중 상태로 설정된 블록들로부터 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 개수의 블록들을 추출한다. 그 후, 선택기(33B)는 추출된 블록들에 대응하는 블록 정보를 선택기(33C)에 보낸다.
조건 (A) 및 (B)에서, 공백(free) 상태로 설정된 블록들은, 소거 시간순으로 정렬되고, 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 개수의 블록들 또는 사전 설정된 비율의 블록들을 탐색한다. 따라서, 단계 S72에서 선택되는 블록들의 개수를 증가시킬 수 있기 때문에, 단계 S73에서 보다 작은 소거 횟수를 가진 블록들을 선택하는 확률을 증가시킬 수 있다. 조건 (C)에서는, 공백 상태로 설정되며 소거 시간이 사전 설정된 시간을 초과하는 블록들 만을 정렬하기에 충분하므로, 처리 부하는 최소가 된다. 조건 (A) 및 (B)에서는, 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 개수의 블록들 또는 사전 설정된 비율의 블록들이 항상 추출되며, 조건 (C)에서는, 소거 시간이 사전 설정된 기간 이상 이격되어 있는 블록들이 추출된다. 따라서, 조건 (C)에서, 소거 간격은 항상 사전 설정된 간격 보다 더 길게 설정될 수 있으므로, 소거 횟수의 비교 후보의 수가 감소될 수 있다.
다음으로, 선택기(33C)는 선택기(33B)에 의해 추출된 블록들 중에서 가장 작 은 소거 횟수의 블록을 교체 소스 블록으로서 선택한다(단계 S73). 교체 소스 블록에 대응하는 교체 소스 블록 정보는 평준화 판정부(35A)에 공급된다.
상술된 교체 소스 블록 선택 처리에 의해, 빈번하게 재기록되지 않는 데이터를 기억하는 우수한 유지 특성의 블록을 교체 소스 블록으로서 선택할 수 있다.
[2-5-2. 교체 목적지 블록 선택 처리]
도 16은 교체 목적지 블록 선택기(34)의 구성을 나타내는 블록도이다. 도 17은 교체 목적지 블록 선택기(34)의 교체 목적지 블록 선택 처리를 예시하는 흐름도이다.
교체 목적지 블록 선택기(34)는 3 개의 선택기(34A 내지 34C) 및 교체 목적지 블록 설정값을 기억하는 기억부(34D)를 가진다. 교체 목적지 블록 선택기(34)는 블록 제어기(30)로부터 전체 블록 정보를 수신한다(단계 S80). 전체 블록 정보는 선택기(34A)에 공급된다. 그 후, 선택기(33A)는 전체 블록의 상태를 확인하고, 전체 블록으로부터 공백 상태로 설정된 블록들을 추출한다(단계 S81). 이 후에, 선택기(34A)는 공백 상태로 설정된 블록들에 대응하는 블록 정보(공백 상태 블록 정보)를 선택기(34B)에 공급한다.
다음으로, 선택기(34B)는 공백 상태 블록 정보로부터 교체 목적지 블록 설정값에 따라 설정된 조건을 가진 블록 정보를 추출한다(단계 S82). 교체 목적지 블록 설정값으로서, 이하의 조건들 중 하나가 설정된다.
(A) 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 개수의 블록들
(B) 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 비율의 블록들
(C) 소거 시간이 사전 설정된 시간 보다 더 오래된 블록들
교체 목적지 블록 설정값으로서 사용되는 조건 (A) 내지 (C) 중 하나는 자유롭게 선택될 수 있다. 예를 들어, 교체 목적지 블록 설정값으로서 조건 (A)를 사용하면, 선택기(34B)는 공백 상태로 설정된 블록들로부터 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 개수의 블록들을 추출한다. 그 후, 선택기(34B)는 추출된 블록들에 대응하는 블록 정보를 선택기(34C)에 보낸다.
조건 (A) 및 (B)에서, 공백 상태로 설정된 블록들은, 소거 시간순으로 정렬되고, 가장 오래된 블록으로부터 시작하는 사전 설정된 개수의 블록들 또는 사전 설정된 비율의 블록들을 탐색한다. 따라서, 단계 S82에서 선택되는 블록들의 개수를 증가시킬 수 있기 때문에, 단계 S83에서 보다 작은 소거 횟수를 가진 블록들을 선택하는 확률을 증가시킬 수 있다. 조건 (C)에서는, 공백 상태로 설정되며 소거 시간이 사전 설정된 시간을 초과하는 블록들 만을 정렬하기에 충분하므로, 처리 부하는 최소가 된다. 조건 (A) 및 (B)에서는, 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 개수의 블록들 또는 사전 설정된 비율의 블록들이 항상 추출되며, 조건 (C)에서는, 소거 시간이 사전 설정된 기간 이상 이격되어 있는 블록들이 추출된다. 따라서, 조건 (C)에서, 소거 간격은 항상 사전 설정된 간격 보다 더 길게 설정될 수 있으므로, 소거 횟수의 비교 후보의 수가 감소될 수 있다.
다음으로, 선택기(34C)는 선택기(33B)에 의해 추출된 블록들 중에서 가장 큰 소거 횟수의 블록을 교체 목적지 블록으로서 선택한다(단계 S83). 교체 목적지 블록에 대응하는 교체 목적지 블록 정보는 평준화 판정부(35A)에 공급된다.
상술된 교체 목적지 블록 선택 처리에 의해, 유지 특성이 어느 정도 저하된 공백 상태로 설정되는 블록을 교체 목적지 블록으로서 선택할 수 있다. 이 후에, 교체 소스 블록에 저장되어 있고 빈번하게 재기록되지 않는 데이터가 교체 목적지 블록에 기억된다. 그 결과, 교체 목적지 블록에 대하여 데이터 소거 횟수가 감소되고 상기 유지 특성이 회복될 수 있다.
상술된 바와 같이, 본 실시형태에 따르면, 각 블록이 소거되는 소거 시간이 측정되며, 대응 관계로 설정되는 블록들 및 이들의 소거 횟수는 블록 테이블(30B)에 기억된다. 그 후, 외부로부터 공급되는 데이터가 NAND 플래시 메모리(10)에 기록되는 경우에, 공백 상태로 설정된 블록들 중에서 가장 오래된 소거 시간에 대응하는 블록이 할당 블록으로서 선택되며, 상술된 데이터를 그 할당 블록에 기록한다.
따라서, 본 실시형태에 따르면, 소거 간격이 각 블록에 대하여 길게 설정될 수 있으므로, 각 블록의 유지 특성의 저하는, 소거 간격을 길게 설정하여 유지 특성을 회복할 수 있는 메모리 셀 트랜지스터의 특성을 이용함으로써 억제될 수 있다. 그 결과, NAND 플래시 메모리(10)의 서비스 수명이 연장될 수 있다.
또한, 본 실시형태에서, NAND 플래시 메모리(10)의 유지 특성의 저하는 부하 집중도 관리부에 의해 부하 집중도로서 특정되고, 그 부하 집중도가 평준화 임계값을 초과하면, 평준화 처리가 수행된다. 따라서, 평준화 처리의 수는 평준화 처리 를 빈번하게 수행하지 않고 최적값으로 설정될 수 있고, 각각의 블록들의 소거 횟수는 실질적으로 균일하게 될 수 있다. 그 결과, 일부 블록들의 소거 횟수를 증가시킴으로써 NAND 플래시 메모리(10) 전체의 서비스 수명이 감소되는 것을 방지할 수 있다.
또한, 교체 소스 블록 선택 처리에 의해 빈번하게 재기록되지 않는 데이터를 기억하는 블록을 교체 소스 블록으로서 선택하고, 유지 특성이 어느 정도 저하되는 블록을 교체 목적지 블록 선택 처리에 의해 교체 목적지 블록으로서 선택한다. 그 후, 교체 소스 블록에 저장되어 있고 빈번하게 재기록되지 않는 데이터가 교체 목적지 블록으로 이동된다. 따라서, 1회 기록되고, 할당된 채로 긴 기간 동안 릴리즈되지 않은 블록을 평준화 처리를 수행함으로써 릴리즈할 수 있다. 교체 목적지 블록에 대하여 이후에 수행되는 데이터 소거 처리의 수를 감소시킬 수 있으며, 교체 목적지 블록의 유지 특성의 저하를 억제할 수 있다.
멀티레벨 데이터 기록 시스템을 적용하는 경우에, 메모리 셀의 트랜지스터(MT)의 임계값 분포에 대하여 미세한 제어가 요구된다. 따라서, 유지 특성의 저하를 방지하는 것이 이점이 된다.
[제 2 실시형태]
본 발명의 제 2 실시형태는 할당 블록 선택기(32)에 의한 할당 블록 선택 처리의 또 다른 일례를 나타낸다. 할당 블록을 선택하는 경우에, 소거 시간이 오래되며, 소거 횟수가 작은 블록을 할당 블록으로서 선택한다.
도 18은 할당 블록 선택기(32)의 구성을 나타내는 블록도이다. 도 19는 할 당 블록 선택기(32)의 할당 블록 선택 처리를 예시하는 흐름도이다. 할당 블록 선택기(32) 이외의 NAND 제어기(11)의 구성은 제 1 실시형태의 구성과 동일하다.
교체 소스 블록 선택기(33)는, 3 개의 선택기(32A 내지 32C) 및 할당 블록 설정값을 기억하는 기억부(32D)를 가진다. 할당 블록 선택기(32)는 블록 제어기(30)로부터 전체 블록 정보를 수신한다(단계 S90). 전체 블록 정보는 선택기(32A)에 공급된다. 그 후, 선택기(32A)는 전체 블록의 상태를 확인하고, 전체 블록으로부터 공백 상태로 설정된 블록들을 추출한다(단계 S91). 이 후에, 선택기(32A)는 공백 상태로 설정된 블록들에 대응하는 블록 정보(공백 상태 블록 정보)를 선택기(32B)에 공급한다.
다음으로, 선택기(32B)는 공백 상태 블록 정보로부터 할당 블록 설정값에 의해 설정된 조건을 가진 블록 정보를 추출한다(단계 S92). 할당 블록 설정값으로서, 이하의 조건들 중 하나가 설정된다.
(A) 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 개수의 블록들
(B) 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 비율의 블록들
(C) 소거 시간이 사전 설정된 시간 보다 더 오래된 블록들
할당 블록 설정값으로서 사용되는 조건 (A) 내지 (C) 중 하나는 자유롭게 선택될 수 있다. 예를 들어, 할당 블록 설정값으로서 조건 (A)를 사용하면, 선택기(32B)는 공백 상태로 설정된 블록들로부터 가장 오래된 소거 시간을 가진 블록으 로부터 시작하는 사전 설정된 개수의 블록들을 추출한다. 그 후, 선택기(32B)는 추출된 블록들에 대응하는 블록 정보를 선택기(32C)에 보낸다.
조건 (A) 및 (B)에서, 공백 상태로 설정된 블록들은, 소거 시간순으로 정렬되고, 가장 오래된 블록으로부터 시작하는 사전 설정된 개수의 블록들 또는 사전 설정된 비율의 블록들을 탐색한다. 따라서, 단계 S92에서 선택되는 블록들의 개수를 증가시킬 수 있기 때문에, 단계 S93에서 보다 작은 소거 횟수를 가진 블록들을 선택하는 확률을 증가시킬 수 있다. 조건 (C)에서는, 공백 상태로 설정되며 소거 시간이 사전 설정된 시간을 초과하는 블록들 만을 정렬하기에 충분하므로, 처리 부하는 최소가 된다. 조건 (A) 및 (B)에서는, 가장 오래된 소거 시간을 가진 블록으로부터 시작하는 사전 설정된 개수의 블록들 또는 사전 설정된 비율의 블록들이 항상 추출되며, 조건 (C)에서는, 소거 시간이 사전 설정된 기간 이상 이격되어 있는 블록들이 추출된다. 따라서, 조건 (C)에서, 소거 간격은 항상 사전 설정된 간격 보다 더 길게 설정될 수 있으므로, 소거 횟수의 비교 후보의 수가 감소될 수 있다.
다음으로, 선택기(32C)는 선택기(32B)에 의해 추출된 블록들 중에서 가장 작은 소거 횟수의 블록을 할당 블록으로서 선택한다(단계 S93). 할당 블록에 대응하는 할당 블록 번호는 블록 제어기(30)에 공급된다.
위에서 상세히 설명한 바와 같이, 본 실시형태에 따르면, 외부로부터 공급되는 데이터를 기록하는 할당 블록을 선택할 때, 공백 상태로 설정된 블록들 중에서 소거 시간이 오래되고 소거 횟수가 작은 블록을 할당 블록으로서 선택할 수 있다. 따라서, 보다 바람직한 유지 특성을 가지는 블록에 외부로부터의 데이터를 기록할 수 있어, 그 결과, NAND 플래시 메모리의 서비스 수명을 연장할 수 있다.
[제 3 실시형태]
평준화 처리를 수행함으로써 NAND 플래시 메모리(10)에 포함되는 전체 블록의 소거 횟수를 대략 균일하게 할 수 있다. 그러나, 평준화 처리를 연속적으로 빈번하게 수행하면 평준화 처리에 의해 야기되는 소거 처리가 빈번하게 발생하므로, NAND 플래시 메모리(10)의 서비스 수명을 연장시키는 것을 방해할 가능성이 존재한다. 따라서, 본 실시형태에서는, 부하 집중도가 평준화 임계값을 초과하는 경우에도 평준화 처리의 수를 제한한다.
도 20은 본 발명의 제 3 실시형태에 따른 평준화부(35)의 구성을 나타내는 블록도이다.
상기 평준화부(35)는, 부하 집중도 관리부(36), 평준화 판정부(35A), 평준화 임계값을 기억하는 기억부(35B) 및 평준화 제한부(37)를 포함한다. 부하 집중도 관리부(36)의 구성은 제 1 실시형태의 구성과 동일하다.
평준화 제한부(37)는 부하 집중도 관리부(36)로부터 부하 집중도를 수신한다. 그 후, 이는 부하 집중도에 기초하여 평준화 처리의 수를 제한하는데 사용되는 논리값을 생성한다. 이 논리값은 평준화 판정부(35A)에 공급된다. 평준화 판정부(35A)는, 부하 집중도가 평준화 임계값을 초과하고 상기 평준화 제한부(37)로부터의 논리값이 참(true)인 경우에 평준화 처리를 수행한다.
도 21은 평준화 제한부(37)의 구성을 나타내는 블록도이다. 상기 평준화 제한부(37)는 난수 임계값 테이블(37A), 난수 생성부(37B) 및 난수 판정부(37C)를 포 함한다.
난수 임계값 테이블(37A)은 복수의 부하 집중도와 이것에 대응하는 복수의 난수 임계값 사이의 대응 관계를 나타낸다. 난수 임계값 테이블(37A)은, 부하 집중도 관리부(36)로부터 공급되는 부하 집중도에 대응하는 난수를 난수 판정부(37C)에 보낸다. 평준화 처리의 수를 제한하는 정도는 난수 임계값에 따라서 자유롭게 설정될 수 있다. 예를 들어, 부하 집중도가 높은(즉, 소거 처리가 짧은 간격으로 연속적으로 수행되는) 애플리케이션 상황에서는, 난수 임계값을 크게 설정함으로써 평준화 처리의 수를 과도하게 제한하지 않으려 한다. 한편, 부하 집중도가 낮은(즉, 소거 간격이 긴) 애플리케이션 상황에서는, 난수 임계값을 작게 설정함으로써 평준화 처리의 수를 크게 제한한다.
난수 생성부(37B)는 난수를 생성한다. 난수는 난수 판정부(37C)에 공급된다. 난수 판정부(37C)는 난수가 난수 임계값보다 작은지 여부를 판정한다. 그 후, 난수 판정부(37C)는, 난수가 난수 임계값보다 작은 경우에 참(true) 논리값을 생성하고, 난수가 난수 임계값 이상인 경우에 거짓(false) 논리값을 생성한다. 그 논리값은 평준화 판정부(35A)에 공급된다.
다음으로, 상술된 구성을 가진 NAND 제어기(11)의 평준화 처리를 설명한다. 도 22는 NAND 제어기(11)의 평준화 처리를 예시하기 위한 흐름도이다.
먼저, 평준화 판정부(35A)는 부하 집중도 관리부(36)로부터 공급되는 부하 집중도가 평준화 임계값을 초과하는지 여부를 판정한다(단계 S60). 평준화 임계값을 초과한다고 판정되면, 평준화 제한부(37)는 난수 판정 처리를 수행한다(단계 S100).
도 23은 평준화 제한부(37)의 난수 판정 처리를 예시하는 흐름도이다. 먼저, 난수 생성부(37B)는 난수를 생성한다(단계 S101). 그 후, 평준화 제한부(37)는, 난수 임계값 테이블(37A)을 이용함으로써 부하 집중도 관리부(36)로부터 공급되는 부하 집중도에 대응하는 난수 임계값을 산출한다(단계 S102).
다음으로, 난수 판정부(37C)는 난수가 난수 임계값보다 작은지 여부를 판정한다(단계 S103). 그 후, 난수 판정부(37C)는, 난수가 난수 임계값보다 작은 경우에 참 논리값을 출력한다(단계 S104). 한편, 난수 판정부(37C)는 난수가 난수 임계값 이상인 경우에 거짓 논리값을 출력한다(단계 S105).
다시 도 22를 참조하여, 평준화 판정부(35A)는 난수 판정부(37C)로부터 출력되는 논리값을 판정한다(단계 S106). 그 후, 평준화 판정부(35A)는 논리값이 참인 경우에 평준화 처리(제 1 실시형태에 도시된 단계 S61 내지 S67)를 수행한다. 또한, 평준화 판정부(35A)는 논리 값이 거짓인 경우에 평준화 처리를 중지한다.
상술된 바와 같이, 본 실시형태에 따르면, 부하 집중도가 평준화 임계값을 초과하는 경우에도 평준화 처리의 수를 제한할 수 있다. 따라서, 평준화 처리에 의해 야기되는 소거 처리의 수가 증가되는 것을 방지할 수 있으므로, NAND 플래시 메모리(10)의 서비스 수명을 연장할 수 있다.
또한, NAND 플래시 메모리(10)에 포함되는 전체 블록의 소거 횟수를 실질적으로 균일하게 할 수 있고, 평준화 처리의 수를 최적값으로 설정할 수 있다.
[제 4 실시형태]
본 실시형태의 제 4 실시형태는 평준화 처리가 수행되는지 아닌지 여부를 판정하는 방법에 있어서 제 1 실시형태와 다르며, 교체 소스 블록의 소거 횟수와 교체 목적지 블록의 소거 횟수 사이의 차가 평준화 임계값을 초과하는 경우에 평준화 처리를 수행한다는 예를 나타낸다.
도 24는 본 발명의 제 4 실시형태에 따른 NAND 제어기(11)의 구성을 나타내는 블록도이다. 기본적으로, NAND 제어기(11)는 제 1 실시형태에서 도 4에 나타낸 것과 동일하다. NAND 제어기(11)는, 평준화부(35)의 내부와 블록 제어기(30)로부터 평준화부(35)로 공급되는 릴리즈 블록 정보 및 할당 블록 정보가 생략(미사용)되어 있다는 점에서 제 1 실시형태의 것과는 다르다.
도 25는 평준화부(35)의 구성을 나타내는 블록도이다. 평준화부(35)는 평준화 판정부(35A) 및 평준화 임계값을 기억하는 기억부(35B)를 포함한다. 평준화 판정부(35A)는, 교체 소스 블록 선택기(33)로부터 공급되는 교체 소스 블록 정보 및 교체 목적지 블록 선택기(34)로부터 공급되는 교체 목적지 블록 정보를 수신한다. 그 후, 평준화 판정부(35A)는, 교체 소스 블록 정보에 포함되는 소거 횟수와 교체 목적지 블록에 포함되는 소거 횟수 사이의 차를 산출하고, 상기 차와 상기 평준화 임계값을 이용하여 금회의 기록 동작 시에 평준화 처리를 수행할지 여부를 판정한다. 평준화 처리를 수행하면, 평준화 판정부(35A)는 NAND 인터페이스 회로(25)에 판독 요청, 소거 요청 및 기록 요청을 발행한다.
도 26은 NAND 제어기(11)의 평준화 처리를 예시하기 위한 흐름도이다. 먼저, 교체 소스 블록 선택기(33)는 교체 소스 블록 선택 처리를 수행한다(단계 S110). 교체 소스 블록 선택 처리에 의해 선택되는 교체 소스 블록의 정보(교체 소스 블록 정보)는 평준화 판정부(35A)에 공급된다. 그 후, 교체 목적지 블록 선택기(34)는 교체 목적지 블록 선택 처리를 수행한다(단계 S111). 교체 목적지 블록 선택 처리에 의해 선택된 교체 목적지 블록의 정보(교체 목적지 블록 정보)는 평준화 판정부(35A)에 공급된다. 이 경우에, 교체 소스 블록 선택 처리 및 교체 목적지 블록 선택 처리는 제 1 실시형태의 것과 동일하다.
다음으로, 평준화 판정부(35A)는 교체 소스 블록 정보에 포함되는 소거 횟수와 교체 목적지 블록 정보에 포함되는 소거 횟수 사이의 차를 산출한다(단계 S112). 그 후, 평준화 판정부(35A)는 산출된 차가 평준화 임계값을 초과하는지 여부를 판정한다(단계 S113). 평준화 임계값은, 평준화 처리가 수행되는지 여부를 판정하는데 사용되며, NAND 플래시 메모리(10)의 서비스 수명(또는 데이터 유지 기간)을 연장시키는 정도에 대한 기준에 기초하여 설정된다.
평준화 임계값을 초과한다고 판정되면, 블록 제어기(30)는 교체 소스 블록 선택기(33)에 의해 선택되는 교체 소스 블록을 릴리즈하는 블록 릴리즈 처리를 수행한다(단계 S63). 블록 릴리즈 처리는 제 1 실시형태의 것과 동일하다. 이 후에, 제 1 실시형태에서의 도 13의 경우와 같이, NAND 제어기(11)는 단계 S64 내지 단계 S67의 동작을 수행한다.
단계 S113에서, 평준화 임계값을 초과하지 않았다고 판정하면, 평준화부(35)는 평준화 처리를 중지한다.
상술된 바와 같이, 본 실시형태에 따르면, 상기 블록들간의 소거 횟수의 불 균형을 검출할 수 있고, 평준화 처리를 수행함으로써 그 불균형을 수정할 수 있다. 따라서, 상기 블록들의 소거 횟수를 대략 서로 동일하게 할 수 있으므로, NAND 메모리의 서비스 수명을 연장시킬 수 있다.
제 3 실시형태에 도시된 평준화 제한부(37)를 제 4 실시형태에 적용할 수 있다.
[실시형태]
상술된 실시형태들 각각의 메모리 시스템(1)을 고체 상태 드라이버(SSD; solid state driver)로서 구성함으로써 얻어진 실시형태를 설명한다. 도 27은 SSD(100)의 구성을 나타내는 블록도이다.
SSD(100)은, 데이터 저장용 복수의 NAND 플래시 메모리들(NAND 메모리)(10), 데이터 전송 또는 작업 영역용 DRAM(101), 상기 장치들을 제어하는 구동 제어 회로(102), 및 전원 회로(103)를 포함한다. 구동 제어 회로(102)는 SSD(100)의 외부에 제공된 상태 표시용 LED를 제어하기 위한 제어 신호를 출력한다.
SSD(100)는, ATA 인터페이스(ATA I/F)를 통하여 퍼스널 컴퓨터와 같은 호스트 장치에 데이터를 전송한다. SSD(100)는 RS-232C 인터페이스(RS232C I/F)를 통하여 디버그 장치에 데이터를 전송한다.
전원 회로(103)는 외부 전원 전압을 공급 받아서, 이 외부 전원 전압을 이용하여 복수의 내부 전원 전압을 생성한다. 내부 전원 전압은 SSD(100)의 각 부에 공급된다. 또한, 전원 회로(103)는 외부 전원 전압의 상승 또는 하강을 검출하여, 전력 온 리셋 신호 또는 전력 오프 리셋 신호를 생성한다. 전력 온 리셋 신호 및 전력 오프 리셋 신호는 구동 제어 회로(102)에 공급된다.
도 28은 구동 제어 회로(102)의 구성을 나타내는 블록도이다. 구동 제어 회로(102)는, 데이터 액세스 버스(104), 제 1 회로 제어 버스(105), 및 제 2 회로 제어 버스(106)를 포함한다.
구동 제어 회로(102)의 전체를 제어하는 프로세서(107)은 제 1 회로 제어 버스(105)에 연결된다. 또한, 관리 프로그램(FW: firmware)의 부트 프로그램이 저장되는 부트 ROM(108)은 ROM 제어기(109)를 통하여 제 1 회로 제어 버스(105)에 연결된다. 또한, 전원 회로(103)로부터 전력 온 리셋 신호를 수신하여, 각 부에 리셋 신호와 클록 신호를 공급하는 클록 제어기(110)는 제 1 회로 제어 버스(105)에 연결된다.
제 2 회로 제어 버스(106)는 제 1 회로 제어 버스(105)에 연결된다. 상태 표시용 LED에 상태 표시 신호를 공급하는 병렬 IO(PIO) 회로(111)와 RS232C 인터페이스를 제어하는 직렬 IO(SIO) 회로(112)가 제2 회로 제어 버스(106)에 연결된다.
ATA 인터페이스 제어기(ATA 제어기)(113), 제 1 에러 체크 및 정정(ECC) 회로(114), NAND 제어기(115) 및 DRAM 제어기(119)가 데이터 액세스 버스(104)와 제 1 회로 제어 버스(105) 모두에 연결된다. ATA 제어기(113)는 ATA 인터페이스를 통하여 호스트 장치에 데이터를 전송한다. 데이터 작업 영역으로서 사용되는 SRAM(120)은 SRAM 제어기(121)를 통하여 데이터 액세스 버스(104)에 연결된다.
NAND 제어기(115)는, 4개의 NAND 메모리(10)에 대하여 인터페이스 처리를 수행하는 NAND I/F(118), 제 2 ECC 회로(117), 및 NAND 메모리와 DRAM 간의 액세스 제어를 수행하는 DMA 전송 제어 DAM 제어기(116)를 포함한다.
도 29는 프로세서(107)의 구성을 나타내는 블록도이다. 프로세서(107)는, 데이터 관리부(122), ATA 커맨드 처리부(123), 보안 관리부(124), 부트 로더(125), 초기화 관리부(126), 및 디버그 지원부(127)을 포함한다.
데이터 관리부(122)는, NAND 제어기(115)와 제 1 ECC 회로(114)를 통하여, NAND 메모리(10)와 DRAM(101) 간의 데이터 전송과 NAND 칩에 연관된 다양한 기능들을 제어한다.
ATA 커맨드 처리부(123)는, ATA 제어기(113)와 DRAM 제어기(119)를 통하여, 데이터 관리부(122)와 협동하여 데이터 전송 처리를 수행한다. 보안 관리부(124)는 데이터 관리부(122)와 ATA 커맨드 처리부(123)과 협동하여 다양한 보안 정보 항목들을 관리한다. 부트 로더(125)는, 전력 on 시에 NAND 메모리(10)로부터 SRAM(120)으로 다양한 관리 프로그램(FW)을 로딩한다.
초기화 관리부(126)는 구동 제어 회로(102) 내의 다양한 제어기/회로를 초기화한다. 디버그 지원부(127)은 RS232C 인터페이스를 통하여 외부로부터 공급된 디버그 데이터를 처리한다.
도 30은 상부에 SSD(100)가 탑재된 휴대용 컴퓨터(200)의 일례를 나타내는 사시도이다. 휴대용 컴퓨터(200)는 본체(201)와 디스플레이 유닛(202)을 가진다. 디스플레이 유닛(202)은 디스플레이 하우징(203)과, 디스플레이 하우징(203)에 수용된 디스플레이 장치(204)를 포함한다.
본체(201)는, 케이싱(205), 키보드(KB)(206), 및 포인팅 장치로서 사용되는 터치 패드(207)를 포함한다. 케이싱(205)에는, 메인 회로 기판, 광 디스크장치(ODD) 유닛, 카드 슬롯, SSD(100) 등이 수용된다.
카드 슬롯은 케이싱(205)의 주변 벽에 인접하여 제공된다. 그 주변 벽에는, 카드 슬롯과 대향하는 개구부(208)가 형성된다. 사용자는 케이싱(205)의 외부로부터 개구부(208)를 통하여 카드 슬롯에 부가적인 장치를 착탈가능하게 삽입할 수 있다.
SSD(100)는 휴대용 컴퓨터(200)의 내부에 탑재될 수 있고, 종래의 HDD 대신에 사용되거나 또는 휴대용 컴퓨터(200)의 카드 슬롯에 삽입되어 부가적인 장치로서 사용될 수 있다.
도 31은, SSD(100)를 이용한 휴대용 컴퓨터(200)의 시스템 구성의 일례를 나타낸다. 휴대용 컴퓨터(200)는, CPU(301), 노스 브리지(north bridge)(302), 메인 메모리(303), 비디오 제어기(304), 오디오 제어기(305), 사우스 브리지(south bridge)(309), BIOS-ROM(317), SSD(100), ODD 유닛(311), 임베딩된 제어기/키보드 제어기 IC(EC/KBC)(309), 네트워크 제어기(313) 등을 구비한다.
CPU(301)는 휴대용 컴퓨터(200)의 동작을 제어하기 위하여 사용된 프로세서이며, SSD(100)로부터 메인 메모리(303)에 로딩된 동작 시스템(OS)을 실행한다. ODD 유닛(308)이, 로딩된 광 디스크에 대하여 판독 처리 및 기록 처리 중 적어도 하나를 실행시킬 수 있을 때, CPU(301)는 처리를 실행한다.
CPU(301)는 또한, BIOS-ROM(310)에 기억된 시스템 BIOS(Basic Input Output System)을 실행한다. 시스템 BIOS는 휴대용 컴퓨터(200)의 하드웨어 구성요소를 제어하는데 사용되는 프로그램이다.
노스 브리지(302)는 CPU(301)의 로컬 버스와 사우스 브리지(309)를 연결하는 브리지 장치이다. 노스 브리지(302)는 메인 메모리(303)에 대한 액세스를 제어하는데 사용되는 메모리 제어기를 포함된다.
노스 브리지(302)는 AGP(accelerated graphics port) 버스에 의해 비디오 제어기(304) 및 오디오 제어기(305)와 통신하는 기능을 가진다.
메인 메모리(303)는 일시적으로 프로그램들과 데이터를 기억하고, CPU(301)의 작업 영역으로서 기능한다. 메인 메모리(303)는, 예를 들어 DRAM으로 이루어진다.
비디오 제어기(304)는 디스플레이 유닛(LCD)(202)를 제어하는데 사용되는 비디오 재생 제어기이다. 디스플레이 유닛(202)은 휴대용 컴퓨터(200)의 디스플레이 모니터로서 사용된다.
오디오 제어기(305)는 휴대용 컴퓨터(200)의 스피커(311)를 제어하는데 사용되는 오디오 재생 제어기이다.
사우스 브리지(306)는 LPC(Low Pin Count) 버스(314) 상의 장치들과, PCI(Peripheral Component Interconnect) 버스(315) 상의 장치들을 제어한다. 사우스 브리지(309)는 또한, ATA 인터페이스를 통하여 SSD(100)를 제어한다. SSD(100)는 다양한 종류의 소프트웨어와 데이터를 기억하는데 사용되는 기억 장치이다.
휴대용 컴퓨터(200)는 섹터 단위로 SSD(100)에 액세스한다. 기록 커맨드, 판독 커맨드, 플래시 커맨드 등을, ATA 인터페이스를 통하여 SSD(100)에 공급한다.
사우스 브리지(309)는 BIOS-ROM(310)과 ODD 유닛(311)으로의 액세스를 제어하는 기능을 가진다.
EC/KBC(312)는, 전력 관리를 위한 임베딩된 제어기와, 키보드(KB)(206)와 터치 패드(207)를 제어하기 위한 키보드 제어기가 통합되는 1 칩 마이크로컴퓨터이다.
EC/KBC(309)는 사용자의 전력 버튼(312)의 동작에 따라서 휴대용 컴퓨터(200)를 온(on) 또는 오프(off)하는 기능을 가진다. 네트워크 제어기(313)는, 인터넷과 같은 외부 네트워크와 통신하는 통신 장치이다.
상술된 실시형태의 메모리 시스템(1)은 SSD로 제한되지 않으며, SD(상표) 카드로 대표되는 메모리 카드로서 구성될 수 있다. 메모리 시스템(1)이 메모리 카드로 구성되는 경우, 메모리 시스템(1)은, 휴대용 컴퓨터 뿐만 아니라 휴대 전화, PDS, 디지털 스틸 카메라, 및 디지털 비디오 카메라와 같은 다른 다양한 전자 장치들에 적용될 수 있다.
부가적인 이점 및 변경이 당업자에게 쉽게 발생할 수 있다. 따라서, 넓은 양태에서의 본 발명은 여기서 도시되고 기술된 특정 세부사항 및 대표적인 실시형태들로 제한되지 않는다. 따라서, 첨부된 청구범위 및 그 등가물에 의해 규정된 바와 같이 일반적인 발명의 개념의 사상 또는 범위를 벗어나지 않고 다양한 변경이 행해질 수도 있다.

Claims (25)

  1. 데이터 소거 단위로서 복수의 블록을 포함하는 비휘발성 메모리;
    각 블록의 데이터가 소거되는 소거 시간을 측정하는 측정부; 및
    적어도 외부로부터 공급되는 데이터를, 공백(free) 상태로 설정되며 소거 시간이 가장 오래된 제 1 블록에 기록하는 블록 제어기를 구비하는 메모리 시스템.
  2. 제 1 항에 있어서, 상기 블록 제어기는 각 블록에 대하여 공백 상태와 사용중 상태 중 하나를 나타내는 상태값과 상기 소거 시간 사이의 대응 관계를 나타내는 블록 테이블을 가지는 것인 메모리 시스템.
  3. 제 2 항에 있어서, 상기 블록 테이블의 정보에 기초하여 상기 제 1 블록을 선택하는 제 1 선택기를 더 구비하는 메모리 시스템.
  4. 제 1 항에 있어서, 상기 측정부는 전체 블록에서 실행되는 소거 횟수를 카운트하는 제 1 카운터를 포함하며,
    상기 소거 시간은 상기 제 1 카운터의 카운트값에 대응하는 것인 메모리 시스템.
  5. 제 1 항에 있어서, 상기 측정부는 각 블록의 데이터가 소거되는 시간을 측정하며,
    상기 소거 시간은 상기 시간에 대응하는 것인 메모리 시스템.
  6. 제 1 항에 있어서, 상기 측정부는 각 블록의 데이터가 소거되는 경우에 상기 메모리 시스템의 전력 공급 시간을 측정하며,
    상기 소거 시간은 상기 전력 공급 시간에 대응하는 것인 메모리 시스템.
  7. 제 2 항에 있어서,
    상기 블록 테이블의 정보에 기초하여, 사용중 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 개수의 블록들 중에서 소거 횟수가 최소인 제 2 블록을 선택하는 제 2 선택기;
    상기 블록 테이블의 정보에 기초하여, 공백 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 개수의 블록들 중에서 소거 횟수가 최대인 제 3 블록을 선택하는 제 3 선택기; 및
    상기 제 2 블록과 상기 제 3 블록의 소거 횟수의 차를 산출하고, 그 차가 임계값을 초과하는 경우에 상기 제 2 블록의 데이터를 상기 제 3 블록으로 이동시키는 평준화부를 더 구비하는 메모리 시스템.
  8. 제 2 항에 있어서,
    상기 블록 테이블의 정보에 기초하여, 사용중 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 비율의 블록들 중에서 소거 횟수 가 최소인 제 2 블록을 선택하는 제 2 선택기;
    상기 블록 테이블의 정보에 기초하여, 공백 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 비율의 블록들 중에서 소거 횟수가 최대인 제 3 블록을 선택하는 제 3 선택기; 및
    상기 제 2 블록과 상기 제 3 블록의 소거 횟수의 차를 산출하고, 그 차가 임계값을 초과하는 경우에 상기 제 2 블록의 데이터를 상기 제 3 블록으로 이동시키는 평준화부를 더 구비하는 메모리 시스템.
  9. 제 2 항에 있어서,
    상기 블록 테이블의 정보에 기초하여, 사용중 상태로 설정되며 소거 시간이 사전 설정된 시간보다 더 오래된 블록들 중에서 소거 횟수가 최소인 제 2 블록을 선택하는 제 2 선택기;
    상기 블록 테이블의 정보에 기초하여, 공백 상태로 설정되며 소거 시간이 사전 설정된 시간보다 더 오래된 블록들 중에서 소거 횟수가 최대인 제 3 블록을 선택하는 제 3 선택기; 및
    상기 제 2 블록과 상기 제 3 블록의 소거 횟수의 차를 산출하고, 그 차가 임계값을 초과하는 경우에 상기 제 2 블록의 데이터를 상기 제 3 블록으로 이동시키는 평준화부를 더 구비하는 메모리 시스템.
  10. 제 2 항에 있어서,
    상기 비휘발성 메모리에 대하여 소거 간격에 대응하는 부하의 크기를 관리하며 상기 부하의 크기를 나타내는 부하 집중도를 생성하는 관리부; 및
    상기 부하 집중도가 임계값을 초과하는 경우에 사용중 상태로 설정된 제 2 블록의 데이터를 공백 상태로 설정된 제 3 블록으로 이동시키는 평준화 판정부를 더 구비하는 메모리 시스템.
  11. 제 10 항에 있어서,
    상기 블록 테이블의 정보에 기초하여 상기 제 2 블록을 선택하는 제 2 선택기; 및
    상기 블록 테이블의 정보에 기초하여 상기 제 3 블록을 선택하는 제 3 선택기를 더 구비하며,
    상기 제 2 블록은, 사용중 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 개수의 블록들 중에서 소거 횟수가 최소인 블록이며,
    상기 제 3 블록은, 공백 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 개수의 블록들 중에서 소거 횟수가 최대인 블록인 것인 메모리 시스템.
  12. 제 10 항에 있어서,
    상기 블록 테이블의 정보에 기초하여 상기 제 2 블록을 선택하는 제 2 선택기; 및
    상기 블록 테이블의 정보에 기초하여 상기 제 3 블록을 선택하는 제 3 선택기를 더 구비하며,
    상기 제 2 블록은, 사용중 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 비율의 블록들 중에서 소거 횟수가 최소인 블록이며,
    상기 제 3 블록은, 공백 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 비율의 블록들 중에서 소거 횟수가 최대인 블록인 것인 메모리 시스템.
  13. 제 10 항에 있어서,
    상기 블록 테이블의 정보에 기초하여 상기 제 2 블록을 선택하는 제 2 선택기; 및
    상기 블록 테이블의 정보에 기초하여 상기 제 3 블록을 선택하는 제 3 선택기를 더 구비하며,
    상기 제 2 블록은, 사용중 상태로 설정되며 소거 시간이 사전 설정된 시간 보다 더 오래된 블록들 중에서 소거 횟수가 최소인 블록이며,
    상기 제 3 블록은, 공백 상태로 설정되며 소거 시간이 사전 설정된 시간 보다 더 오래된 블록들 중에서 소거 횟수가 최대인 블록인 것인 메모리 시스템.
  14. 제 10 항에 있어서,
    상기 관리부는 복수의 소거 시간과 각각의 소거 시간에 대응하여 설정된 가산값을 나타내는 가산값 테이블과, 블록이 상기 공백 상태로부터 상기 사용중 상태로 업데이트될 때 마다 블록의 소거 시간에 대응하는 가산값을 가산하는 제 2 카운터를 포함하며,
    상기 부하 집중도는 상기 제 2 카운터의 카운트값에 대응하는 것인 메모리 시스템.
  15. 제 14 항에 있어서,
    상기 제 2 카운터는, 블록이 상기 사용중 상태로부터 상기 공백 상태로 업데이트될 때 마다 블록의 소거 시간에 대응하는 가산값을 가산하는 것인 메모리 시스템.
  16. 제 10 항에 있어서,
    상기 부하 집중도에 기초하여 상기 평준화 판정부에 의해 평준화 처리의 횟수를 제한하며, 평준화 처리가 수행되는지 여부를 나타내는 논리값을 생성하는 평준화 제한부를 더 구비하며,
    상기 평준화 판정부는 상기 논리값에 기초하여 상기 평준화 처리를 수행하는지 여부를 판정하는 것인 메모리 시스템.
  17. 제 16 항에 있어서, 상기 평준화 제한부는,
    난수를 생성하는 난수 생성부; 및
    상기 난수가 임계값보다 더 작은지 여부를 판정하고, 그 판정 결과에 기초하여 상기 논리값을 생성하는 난수 판정부를 포함하는 것인 메모리 시스템.
  18. 데이터 소거 단위로서 복수의 블록을 포함하는 비휘발성 메모리;
    각 블록의 데이터가 소거되는 소거 시간을 측정하는 측정부;
    각 블록의 소거 횟수를 카운트하며, 공백 상태와 사용중 상태 중 하나를 나타내는 상태값, 상기 소거 시간 및 각 블록에 대한 소거 횟수 사이의 대응 관계를 나타내는 블록 테이블을 가지는 블록 제어기; 및
    상기 블록 테이블의 정보에 기초하여, 상기 공백 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 개수의 블록들 중에서 소거 횟수가 최소인 제 1 블록을 선택하는 제 1 선택기를 구비하며,
    상기 블록 제어기는 적어도 외부로부터 공급된 데이터를 상기 제 1 블록에 기록하는 것인 메모리 시스템.
  19. 제 18 항에 있어서, 상기 측정부는 전체 블록에서 실행되는 소거 횟수를 카운트하는 제 1 카운터를 포함하며,
    상기 소거 시간은 상기 제 1 카운터의 카운트값에 대응하는 것인 메모리 시스템.
  20. 제 18 항에 있어서, 상기 측정부는 각 블록의 데이터가 소거되는 시간을 측정하며,
    상기 소거 시간은 상기 시간에 대응하는 것인 메모리 시스템.
  21. 제 18 항에 있어서, 상기 측정부는 각 블록의 데이터가 소거되는 경우에 상기 메모리 시스템의 전력 공급 시간을 측정하며,
    상기 소거 시간은 상기 전력 공급 시간에 대응하는 것인 메모리 시스템.
  22. 제 18 항에 있어서,
    상기 블록 테이블의 정보에 기초하여, 상기 사용중 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 개수의 블록들 중에서 소거 횟수가 최소인 제 2 블록을 선택하는 제 2 선택기;
    상기 블록 테이블의 정보에 기초하여, 상기 공백 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 개수의 블록들 중에서 소거 횟수가 최대인 제 3 블록을 선택하는 제 3 선택기; 및
    상기 제 2 블록과 상기 제 3 블록의 소거 횟수의 차를 산출하고, 그 차가 임계값을 초과하는 경우에 상기 제 2 블록의 데이터를 상기 제 3 블록으로 이동시키는 평준화부를 더 구비하는 메모리 시스템.
  23. 제 18 항에 있어서,
    상기 블록 테이블의 정보에 기초하여, 상기 사용중 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 비율의 블록들 중에서 소거 횟수가 최소인 제 2 블록을 선택하는 제 2 선택기;
    상기 블록 테이블의 정보에 기초하여, 공백 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 비율의 블록들 중에서 소거 횟수가 최대인 제 3 블록을 선택하는 제 3 선택기; 및
    상기 제 2 블록과 상기 제 3 블록의 소거 횟수의 차를 산출하고, 그 차가 임계값을 초과하는 경우에 상기 제 2 블록의 데이터를 상기 제 3 블록으로 이동시키는 평준화부를 더 구비하는 메모리 시스템.
  24. 데이터 소거 단위로서 복수의 블록을 포함하는 비휘발성 메모리;
    각 블록의 데이터가 소거되는 소거 시간을 측정하는 측정부;
    각 블록의 소거 횟수를 카운트하며, 공백 상태와 사용중 상태 중 하나를 나타내는 상태값, 상기 소거 시간 및 각 블록에 대한 소거 횟수 사이의 대응 관계를 나타내는 블록 테이블을 가지는 블록 제어기; 및
    상기 블록 테이블의 정보에 기초하여, 상기 공백 상태로 설정되며 소거 시간이 가장 오래된 블록으로부터 시작하는 사전 설정된 비율의 블록들 중에서 소거 횟수가 최소인 제 1 블록을 선택하는 제 1 선택기를 구비하며,
    상기 블록 제어기는 적어도 외부로부터 공급된 데이터를 상기 제 1 블록에 기록하는 것인 메모리 시스템.
  25. 데이터 소거 단위로서 복수의 블록을 포함하는 비휘발성 메모리;
    각 블록의 데이터가 소거되는 소거 시간을 측정하는 측정부;
    각 블록의 소거 횟수를 카운트하며, 공백 상태와 사용중 상태 중 하나를 나타내는 상태값, 상기 소거 시간 및 각 블록에 대한 소거 횟수 사이의 대응 관계를 나타내는 블록 테이블을 가지는 블록 제어기; 및
    상기 블록 테이블의 정보에 기초하여, 상기 공백 상태로 설정되며 소거 시간이 사전 설정된 시간보다 더 오래된 블록들 중에서 소거 횟수가 최소인 제 1 블록을 선택하는 제 1 선택기를 구비하며,
    상기 블록 제어기는 적어도 외부로부터 공급된 데이터를 상기 제 1 블록에 기록하는 것인 메모리 시스템.
KR1020097018085A 2007-12-28 2008-09-08 메모리 시스템 KR100984829B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007339946A JP4461170B2 (ja) 2007-12-28 2007-12-28 メモリシステム
JPJP-P-2007-339946 2007-12-28

Publications (2)

Publication Number Publication Date
KR20090117932A KR20090117932A (ko) 2009-11-16
KR100984829B1 true KR100984829B1 (ko) 2010-10-04

Family

ID=40824014

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018085A KR100984829B1 (ko) 2007-12-28 2008-09-08 메모리 시스템

Country Status (7)

Country Link
US (10) US8015347B2 (ko)
EP (2) EP2225649B1 (ko)
JP (1) JP4461170B2 (ko)
KR (1) KR100984829B1 (ko)
CN (2) CN104657280B (ko)
TW (1) TWI400613B (ko)
WO (1) WO2009084286A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150112074A (ko) * 2014-03-26 2015-10-07 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법
KR20160072884A (ko) * 2014-12-15 2016-06-24 삼성전자주식회사 스토리지 장치의 동작 방법

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7804718B2 (en) * 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
US8001318B1 (en) * 2008-10-28 2011-08-16 Netapp, Inc. Wear leveling for low-wear areas of low-latency random read memory
JP5221332B2 (ja) * 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
JP2010157130A (ja) 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
JP5317690B2 (ja) * 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
KR101269366B1 (ko) 2009-02-12 2013-05-29 가부시끼가이샤 도시바 메모리 시스템 및 메모리 시스템의 제어 방법
JP5268710B2 (ja) * 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
US8402242B2 (en) * 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
JP2011128998A (ja) 2009-12-18 2011-06-30 Toshiba Corp 半導体記憶装置
JP2010108522A (ja) * 2010-02-02 2010-05-13 Toshiba Corp メモリシステムの制御方法
JP2011159364A (ja) * 2010-02-02 2011-08-18 Toshiba Corp 不揮発性半導体記憶装置および不揮発性半導体記憶装置の駆動方法
JP5404483B2 (ja) 2010-03-17 2014-01-29 株式会社東芝 メモリシステム
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
CN102222044B (zh) * 2010-04-16 2015-09-02 慧荣科技股份有限公司 存储器的数据写入方法及数据储存装置
JP2012008651A (ja) 2010-06-22 2012-01-12 Toshiba Corp 半導体記憶装置、その制御方法および情報処理装置
JP2012128645A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
JP2012128643A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
JP5535128B2 (ja) 2010-12-16 2014-07-02 株式会社東芝 メモリシステム
JP2012155806A (ja) 2011-01-28 2012-08-16 Toshiba Corp 不揮発性半導体記憶装置
JP5722685B2 (ja) * 2011-04-12 2015-05-27 株式会社日立製作所 半導体装置、不揮発性メモリ装置の制御方法
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
US9251055B2 (en) 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system
JP5768022B2 (ja) * 2012-03-19 2015-08-26 株式会社東芝 メモリコントローラ、記憶装置、誤り訂正装置および誤り訂正方法
US9361201B2 (en) * 2012-08-07 2016-06-07 Kabushiki Kaisha Toshiba Memory system and memory controller
US9483397B2 (en) * 2013-07-16 2016-11-01 Intel Corporation Erase management in memory systems
JP6318173B2 (ja) 2013-09-24 2018-04-25 華為技術有限公司Huawei Technologies Co.,Ltd. データマイグレーション方法、データマイグレーション装置及びストレージデバイス
TWI548991B (zh) * 2014-02-14 2016-09-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
CN104217760A (zh) * 2014-08-26 2014-12-17 上海华虹宏力半导体制造有限公司 闪存的配置方法
KR20160059050A (ko) * 2014-11-17 2016-05-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9417961B2 (en) * 2014-11-18 2016-08-16 HGST Netherlands B.V. Resource allocation and deallocation for power management in devices
KR102211868B1 (ko) * 2014-12-15 2021-02-04 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9785556B2 (en) * 2014-12-23 2017-10-10 Intel Corporation Cross-die interface snoop or global observation message ordering
US10019179B2 (en) * 2015-10-16 2018-07-10 Toshiba Memory Corporation Memory device that writes data into a block based on time passage since erasure of data from the block
CN105373350A (zh) * 2015-11-23 2016-03-02 联想(北京)有限公司 一种数据管理方法及装置
KR20170075835A (ko) * 2015-12-23 2017-07-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN105892946A (zh) * 2016-03-30 2016-08-24 联想(北京)有限公司 一种数据存储方法及电子设备
CN107301015B (zh) * 2016-04-15 2022-05-13 恩智浦美国有限公司 用于减少存储器设备上的压力的系统和方法
KR102618699B1 (ko) 2016-09-28 2024-01-02 삼성전자주식회사 호스트에 의해 제어되는 스토리지 장치를 포함하는 컴퓨팅 시스템
KR20190072306A (ko) * 2017-12-15 2019-06-25 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102559549B1 (ko) * 2018-09-12 2023-07-26 에스케이하이닉스 주식회사 메모리 시스템에서의 블록 상태를 관리하는 방법 및 장치
US11100222B2 (en) * 2018-11-05 2021-08-24 Nxp B.V. Method for hardening a machine learning model against extraction
KR20200110547A (ko) 2019-03-14 2020-09-24 삼성전자주식회사 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치
TWI718516B (zh) * 2019-04-01 2021-02-11 慧榮科技股份有限公司 用於快閃記憶體中保護已抹除區塊的寫入管理機制
US20200409601A1 (en) * 2019-06-28 2020-12-31 Western Digital Technologies, Inc. Hold of Write Commands in Zoned Namespaces
US11481119B2 (en) * 2019-07-15 2022-10-25 Micron Technology, Inc. Limiting hot-cold swap wear leveling
KR20210044564A (ko) 2019-10-15 2021-04-23 삼성전자주식회사 스토리지 장치 및 그것의 가비지 컬렉션 방법
JP7500311B2 (ja) 2020-07-13 2024-06-17 キオクシア株式会社 メモリシステム及び情報処理システム
KR20220124318A (ko) * 2021-03-02 2022-09-14 삼성전자주식회사 쓰기 동작을 리디렉션하는 스토리지 컨트롤러 및 이의 동작 방법
US11670376B2 (en) * 2021-06-07 2023-06-06 Micron Technology, Inc. Erasing partially-programmed memory unit
JP2023044509A (ja) * 2021-09-17 2023-03-30 キオクシア株式会社 メモリシステムおよびメモリシステムの制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250798A (ja) * 1993-02-24 1994-09-09 Internatl Business Mach Corp <Ibm> 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
JPH0816482A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd フラッシュメモリを用いた記憶装置およびその記憶制御方法

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3390482B2 (ja) 1992-06-12 2003-03-24 株式会社リコー ファクシミリ装置
JP3412839B2 (ja) 1992-07-01 2003-06-03 株式会社東芝 不揮発性半導体メモリ装置
JPH0750558B2 (ja) 1992-09-22 1995-05-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリ
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
JPH07122083A (ja) 1993-10-20 1995-05-12 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JPH08124393A (ja) 1994-10-20 1996-05-17 Fujitsu Ltd データ消去回数に制限のあるメモリの制御方法及びこの方法を用いた装置
JPH08273390A (ja) 1995-03-28 1996-10-18 Kokusai Electric Co Ltd フラッシュメモリの消去回数の管理方法
JP3552490B2 (ja) 1997-09-17 2004-08-11 日本ビクター株式会社 フラッシュ型メモリを備えた記憶装置,フラッシュ型メモリの管理方法
JP3549723B2 (ja) 1998-03-27 2004-08-04 富士通株式会社 半導体記憶装置
JP4173642B2 (ja) 1999-02-22 2008-10-29 株式会社ルネサステクノロジ メモリカードのデータ書き込み方法
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US7155559B1 (en) * 2000-08-25 2006-12-26 Lexar Media, Inc. Flash memory architecture with separate storage of overhead and user data
TWI240861B (en) 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7096313B1 (en) * 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
JP3914142B2 (ja) * 2002-11-29 2007-05-16 株式会社東芝 不揮発性半導体記憶装置及びその製造方法
TWI289855B (en) * 2005-05-30 2007-11-11 Macronix Int Co Ltd Anti-fuse one-time-programmable nonvolatile memory cell and fabricating and programming method thereof
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
JP2007058966A (ja) * 2005-08-23 2007-03-08 Renesas Technology Corp 半導体装置
JP4413840B2 (ja) 2005-09-20 2010-02-10 株式会社東芝 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
JP4327143B2 (ja) * 2005-09-30 2009-09-09 パナソニックEvエナジー株式会社 二次電池用の制御装置及び二次電池の出力制御方法及び二次電池の出力制御実行プログラム
JP4575288B2 (ja) 2005-12-05 2010-11-04 株式会社東芝 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
JP4575346B2 (ja) 2006-11-30 2010-11-04 株式会社東芝 メモリシステム
JP2008217857A (ja) 2007-02-28 2008-09-18 Toshiba Corp メモリコントローラ及び半導体装置
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4538034B2 (ja) 2007-09-26 2010-09-08 株式会社東芝 半導体記憶装置、及びその制御方法
TWI348163B (en) * 2007-10-09 2011-09-01 Phison Electronics Corp Wear leveling method and controller using the same
WO2009072100A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. Systems and methods for temporarily retiring memory portions
JP4498426B2 (ja) 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
JP4745356B2 (ja) 2008-03-01 2011-08-10 株式会社東芝 メモリシステム
JP4691122B2 (ja) 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
JP2009211233A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP5032371B2 (ja) 2008-03-01 2012-09-26 株式会社東芝 メモリシステム
JP5010505B2 (ja) 2008-03-01 2012-08-29 株式会社東芝 メモリシステム
JP2009211234A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
JP4551958B2 (ja) 2008-12-22 2010-09-29 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法
JP5198245B2 (ja) 2008-12-27 2013-05-15 株式会社東芝 メモリシステム
JP5317689B2 (ja) 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
JP2010157130A (ja) 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
JP2012008651A (ja) 2010-06-22 2012-01-12 Toshiba Corp 半導体記憶装置、その制御方法および情報処理装置
JP2012128643A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
JP2012128645A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
JP5535128B2 (ja) 2010-12-16 2014-07-02 株式会社東芝 メモリシステム
JP2012155806A (ja) 2011-01-28 2012-08-16 Toshiba Corp 不揮発性半導体記憶装置
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
US9251055B2 (en) 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250798A (ja) * 1993-02-24 1994-09-09 Internatl Business Mach Corp <Ibm> 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
JPH0816482A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd フラッシュメモリを用いた記憶装置およびその記憶制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150112074A (ko) * 2014-03-26 2015-10-07 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법
KR102285462B1 (ko) 2014-03-26 2021-08-05 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법
KR20160072884A (ko) * 2014-12-15 2016-06-24 삼성전자주식회사 스토리지 장치의 동작 방법
KR102282952B1 (ko) * 2014-12-15 2021-07-30 삼성전자주식회사 스토리지 장치의 동작 방법
US11567864B2 (en) 2014-12-15 2023-01-31 Samsung Electronics Co., Ltd. Operating method of storage device

Also Published As

Publication number Publication date
JP4461170B2 (ja) 2010-05-12
US8886868B2 (en) 2014-11-11
US20220155960A1 (en) 2022-05-19
KR20090117932A (ko) 2009-11-16
US20100049907A1 (en) 2010-02-25
US20180165011A1 (en) 2018-06-14
US20160041767A1 (en) 2016-02-11
CN101622608B (zh) 2016-04-20
CN104657280B (zh) 2018-01-02
US20100223424A1 (en) 2010-09-02
US9483192B2 (en) 2016-11-01
JP2009163329A (ja) 2009-07-23
US20140351497A1 (en) 2014-11-27
US20170010818A1 (en) 2017-01-12
US9933941B2 (en) 2018-04-03
EP2990954B1 (en) 2019-11-27
CN101622608A (zh) 2010-01-06
EP2225649B1 (en) 2015-11-25
EP2990954A1 (en) 2016-03-02
US9280292B2 (en) 2016-03-08
EP2225649A1 (en) 2010-09-08
US20240111416A1 (en) 2024-04-04
US8015347B2 (en) 2011-09-06
WO2009084286A1 (en) 2009-07-09
TWI400613B (zh) 2013-07-01
US10558360B2 (en) 2020-02-11
US20150212746A1 (en) 2015-07-30
US9026724B2 (en) 2015-05-05
EP2225649A4 (en) 2011-10-05
US11287975B2 (en) 2022-03-29
US11893237B2 (en) 2024-02-06
US20200133496A1 (en) 2020-04-30
TW200928749A (en) 2009-07-01
CN104657280A (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
KR100984829B1 (ko) 메모리 시스템
KR100978302B1 (ko) 메모리 시스템
JP2010108522A (ja) メモリシステムの制御方法
JP4703764B2 (ja) メモリシステムの制御方法

Legal Events

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

Payment date: 20130906

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140829

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160826

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190829

Year of fee payment: 10