KR101121698B1 - 반도체 기억 장치 및 기억 제어 방법 - Google Patents

반도체 기억 장치 및 기억 제어 방법 Download PDF

Info

Publication number
KR101121698B1
KR101121698B1 KR1020090086130A KR20090086130A KR101121698B1 KR 101121698 B1 KR101121698 B1 KR 101121698B1 KR 1020090086130 A KR1020090086130 A KR 1020090086130A KR 20090086130 A KR20090086130 A KR 20090086130A KR 101121698 B1 KR101121698 B1 KR 101121698B1
Authority
KR
South Korea
Prior art keywords
data
blocks
block
unit
storage unit
Prior art date
Application number
KR1020090086130A
Other languages
English (en)
Other versions
KR20100073971A (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 KR20100073971A publication Critical patent/KR20100073971A/ko
Application granted granted Critical
Publication of KR101121698B1 publication Critical patent/KR101121698B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/14Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory

Landscapes

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

Abstract

반도체 기억 장치는, 데이터의 기입 영역인 복수의 제1 블록을 갖는 제1 기억부와, 상기 제1 블록으로 데이터의 기입 지시를 행하는 지시부와, 상기 데이터의 외부 어드레스와 상기 제1 블록에서의 상기 데이터의 기억 위치를 연관시킨 변환 테이블을 참조하여 입력 데이터의 외부 어드레스를 상기 제1 블록에서의 기억 위치로 변환하는 변환부와, 상기 입력 데이터의 상기 기억 위치에 기초하여, 상기 제1 블록들 중 어느 블록에, 상기 외부 어드레스와 연관된 상기 데이터인 유효 데이터가 기억되어 있는지 여부를 판정하는 판정부를 포함하고, 상기 지시부는, 상기 제1 블록들 중 어느 블록에도, 상기 유효 데이터가 기억되어 있지 않다면, 상기 유효 데이터가 기억되어 있지 않은 제1 블록으로 상기 데이터를 기입하도록 하는 기입 지시를 발행한다.
반도체 기억 장치, 호스트 인터페이스, 컨트롤러, 호스트 기기, 어드레스 변환 테이블

Description

반도체 기억 장치 및 기억 제어 방법{SEMICONDUCTOR STORAGE DEVICE AND STORAGE CONTROLLING METHOD}
관련 출원의 참조
본 출원은, 2008년 12월 22일에 출원된 일본 특허 출원 번호 2008-325632을 기초로 하여 우선권 주장하고, 그 일본 특허 출원의 전체 내용은 본 출원에서 참조로서 포함된다.
본 발명은, 반도체 기억 장치의 기억 제어에 관한 것이다.
NAND 플래시 ROM 등을 포함하는 반도체 기억 장치에서는, 데이터의 기입 동작 중에 불의로 전원의 공급이 차단되어 기입에 실패한 경우에서도, 이전에 기억된 데이터는 파괴되지 않도록 확실하게 보호할 필요가 있다. 상이한 전압에 따라 복수의 비트를 기억하는 MLC(Multiple Level Cell : 다치)형 NAND 플래시 ROM에서는, 메모리 셀에 1회에 1비트씩 복수회 기입을 수행함으로써 정보를 기입하는 기입 모드가 존재한다. 이 기입 모드에서는, 정보를 가지는 메모리 셀에 정보를 추가할 때에 전원의 공급이 차단되면, 이전에 메모리 셀에 기억된 정보가 소실될 수도 있는 문제가 있다.
이 문제를 해결하기 위해, 예를 들어 일본 특허 공개 2006-221743호 공보에는, 메모리 셀들을 공유하는 블록 내의 페이지의 관계를 관리하고, 각각의 블록의 메모리 셀에 데이터를 1회 기입하는 기입 동작을 제어하는 기술이 제안되어 있다. 이러한 방식에서는 외부로부터 공급된 데이터를 일시적으로 기억하고, 일시 기억한 데이터를 특정 타이밍에서 다른 블록에 복사한다. 이로써, 데이터 파괴가 회피될 수 있다.
구체적으로는, MLC형 NAND 플래시 ROM을 일시적으로 SLC(2상)형 NAND 플래시 ROM과 같이 사용함으로써, 기입 동작이 완료된 데이터의 소실이 방지된다. 그 후, 일시 기억한 데이터를 다른 블록으로 통상의 기입 방법으로 복사한다. 이는 MLC형 NAND 플래시 ROM의 안전한 데이터의 기입 동작을 실현한다. 이 방법에서는, 일시 기억한 데이터를 다른 블록에 복사할 때에 전원의 순간적인 차단이 발생해도, 기억된 본래의 데이터가 파괴되지 않으므로 용이하게 데이터의 복원이 가능하다.
그러나, 일본 특허 공개 제2006-221743호 공보의 기술에 따르면, 1회의 소거후 블록에 기입할 수 있는 데이터량은, "1/메모리 셀에 기입할 수 있는 비트수"로 감소한다. 이는, MLC형 NAND 플래시 ROM 내로 소정 량의 데이터를 기입하기 위해서는 기입될 데이터량의 "메모리 셀에 기입할 수 있는 비트수" 배의 소거를 필요로 한다는 것을 의미한다. 또한, 이러한 기술에 따르면, 일시적으로 기억된 데이터는 항상 다른 블록으로 복사된다. 이는, 결국, "(메모리 셀에 기입할 수 있는 비트수)+1" 배의 소거가 필요하다는 것을 의미한다.
예를 들어, 이러한 방식에서 메모리 셀당 2비트를 기억할 수 있는 MLC형 NAND 플래시 ROM을 채용하는 경우, 기입될 데이터량의 2+1=3배의 데이터가 소거될 필요가 있고 이는 상당히 불필요한 양이다. 또한, 재기입 횟수의 제한을 고려하면, 데이터의 소거 횟수는 최소화되어야 한다.
본 발명의 일 양태에 따르면, 반도체 기억 장치는, 데이터의 기입 영역인 복수의 제1 블록을 갖는 제1 기억부와, 상기 제1 블록에 데이터를 기입하도록 하는 기입 지시를 발행하는 지시부와, 상기 데이터의 외부 어드레스와 상기 제1 블록에서의 상기 데이터의 기억 위치를 연관시킨 변환 테이블을 참조하여, 입력 데이터의 외부 어드레스를 상기 제1 블록에서의 기억 위치로 변환하는 변환부와, 상기 입력 데이터의 상기 기억 위치에 기초하여, 상기 외부 어드레스와 연관된 상기 데이터인 유효 데이터가 상기 제1 블록들 중 어느 블록에 기억되어 있는지를 판정하는 판정부를 포함하고, 상기 지시부는, 상기 제1 블록들 중 어느 블록에도 상기 유효 데이터가 기억되어 있지 않다면, 상기 유효 데이터가 기억되어 있지 않은 제1 블록에 상기 데이터를 기입하도록 하는 기입 지시를 발행한다.
또한, 본 발명의 다른 양태에 따르면 반도체 기억 장치는, 데이터의 기입 영역인 복수의 제1 블록을 갖는 제1 기억부와, 상기 제1 블록들에 데이터를 기입하도록 하는 기입 지시를 발행하는 지시부와, 데이터의 외부 어드레스들과 상기 블록들에서의 상기 데이터의 기억 위치를 연관시킨 변환 테이블을 참조하여, 입력 데이터의 외부 어드레스를 상기 제1 블록에서의 기억 위치로 변환하는 변환부와, 상기 제1 블록들에서의 상기 데이터의 기억 상태를 관리하는 관리부와, 상기 입력 데이터의 상기 기억 위치와 상기 데이터의 기억 상태에 기초하여, 데이터의 기입에 의해 상기 외부 어드레스와 연관된 데이터인 유효 데이터가 소실되지 않을 소정의 제1 블록이 상기 제1 블록들에 포함되는지를 판정하는 판정부를 포함하고, 상기 지시부는, 상기 제1 블록들이 상기 데이터의 기입에 의해 상기 유효 데이터가 소실되지 않을 상기 제1 블록을 포함하는 경우, 상기 데이터의 기입에 의해 상기 유효 데이터가 소실되지 않을 상기 제1 블록에 상기 데이터를 기입하도록 하는 기입 지시를 발행한다.
또한, 본 발명의 또 다른 양태에 따르면, 반도체 기억 장치에서 실행되는 기억 제어 방법은, 데이터의 기입 영역인 복수의 제2 블록을 갖는 제2 기억부와, 상기 데이터의 기입에 의해 상기 유효 데이터가 소실되지 않을 소정의 제1 블록이 상기 제1 블록들에 포함되지 않는다면, 상기 제1 블록들에 기억된 상기 유효 데이터를 상기 제2 블록으로 이동시키는 이동부를 더 포함하고, 상기 지시부는, 상기 유효 데이터의 이동원인 상기 제1 블록들로 상기 데이터를 기입하도록 하는 기입 지시를 발행한다.
이하, 첨부 도면을 참조하여, 본 발명에 따른 반도체 기억 장치 및 반도체 기억 장치의 제어 방법의 예시예를 상세하게 설명한다.
(제1 실시예)
제1 실시예에 따른 반도체 기억 장치(1)는, 도 1에 도시한 바와 같이, 데이 터를 기억하고, 호스트 인터페이스(2), DRAM(3), NAND 플래시 ROM(4) 및 컨트롤러(5)를 포함한다. 호스트 인터페이스(2)는 퍼스널 컴퓨터 등의 호스트 기기(6)와 데이터 통신을 행하여, 데이터를 송수신한다.
DRAM(3)은, 가동중에 호스트 기기(6)에 의해 공급된 기입 데이터, 및 NAND 플래시 ROM(4)으로부터 판독된 기입/판독 데이터(7)를 일시적으로 기억하는 메모리이다. 또한, DRAM(3)은, 가동중에는, NAND 플래시 ROM(4)으로부터 판독된 어드레스 변환 테이블(8)을 일시적으로 기억한다. 어드레스 변환 테이블(8)에 대해서는 NAND 플래시 ROM(4)의 설명시에 상세하게 논의될 것이다.
NAND 플래시 ROM(4)은, MLC형 NAND 플래시 ROM이며, 호스트 기기(6)에 의해 공급되어 DRAM(3)에 일시적으로 기억되어 있는 데이터를 기억한다. NAND 플래시 ROM(4)은, 어드레스 변환 테이블(8), 제1 기억부(9), 제2 기억부(10), 및 블록 관리 리스트(11)를 포함한다.
일반적인 MLC형 NAND 플래시 ROM의 구조와 이러한 구조에 존재하는 문제점에 대해 도 2를 참조하여 설명한다. 또한, 도 2의 NAND 플래시 ROM은, 메모리 셀당 2비트를 기억한다고 가정한다.
NAND 플래시 ROM은, 소거 동작에 대한 단위 영역들인 블록들로 구분되어 있다. 또한, 블록 마다 기입/판독 동작에 대한 단위 영역들인 페이지들로 구분되어 있고, 페이지마다 메모리 셀들의 비트들 중 하나의 비트와 순서대로 대응한다. 도 2의 예에서는, 블록은 8페이지, 즉 페이지 0 내지 7을 포함한다. 데이터의 페이지들로의 기입 순서는, 페이지 0, 1, 2,…7로 규정되어 있다. 도 2에서는, 현재 페 이지 4까지 데이터가 기억되어 있다.
통상, 메모리 셀에서, 먼저 기입하는 비트에 대응하는 페이지를 하위 페이지라 부르고, 동일 메모리 셀에서 2번째로 기입하는 비트에 대응하는 페이지를 상위 페이지라 부른다. 따라서, NAND 플래시 ROM의 동일한 메모리 셀을 공유하는 하위 페이지와 상위 페이지에서는, 하위 페이지로의 데이터의 기입이 종료되지 않는 한, 상위 페이지로의 데이터의 기입을 할 수 없다. 이러한 예에서는, 각 쌍의 페이지 0과 1, 2와 3, 4와 5, 및 6과 7이 메모리 셀을 공유하고 있다.
이와 같은 구조의 NAND 플래시 ROM에서는, 상위 페이지로의 데이터의 기입 중에 전원의 공급이 차단되면, 동일 메모리 셀의 하위 페이지에 이미 기입한 데이터도 파괴된다. 한편, 하위 페이지로의 데이터 기입 중에 전원의 공급이 차단된 경우에는, 다른 셀(다른 셀의 하위 페이지 및 상위 페이지)에 기입된 데이터는 파괴되지 않는다.
즉, 상위 페이지에 데이터를 기입하는 경우에만, 동일 메모리 셀의 하위 페이지에 기입된 데이터가 파괴되어 소실되는 문제가 발생한다. 도 2의 예에서는, 페이지 5(상위 페이지)로의 데이터의 기입 중에 전원의 공급이 차단되면, 동일한 메모리 셀의 페이지 4(하위 페이지)에 기억되어 있던 데이터도 함께 파괴된다.
이러한 문제는, 메모리 셀의 하위 페이지 및 상위 페이지가 보다 많은 페이지를 포함하고 있는 경우, 메모리 셀의 전체 페이지에 대해, 마찬가지로 발생한다.
본 실시 형태에 따른 NAND 플래시 ROM(4)에서도 동일한 문제가 발생할 수 있다. 어드레스 변환 테이블(8), 제1 기억부(9), 제2 기억부(10), 및 블록 관리 리 스트(11)도 기본적으로는 동일한 구조이다. 그리고, 본 실시 형태에서는, 이러한 문제가 발생하는 것을 방지하는 것을 목적으로 하고 있다.
어드레스 변환 테이블(8)은, 호스트 기기(6)에 의해 공급된 데이터가 기억되어 있는 NAND 플래시 ROM(4)의 블록의 페이지 위치(어드레스)를 나타낸다. 따라서, 어드레스 변환 테이블(8)에는, 호스트 기기(6)에 의해 공급된 데이터가 각 페이지마다 기억되어 있는 NAND 플래시 ROM(4)의 위치(어드레스)가 기억된다. 여기서, 어드레스 변환 테이블(8)에 어드레스가 기억되어 있는 페이지의 데이터, 즉, 어드레스 변환 테이블(8)에 의해 지정된 데이터를 유효 데이터라 한다. 한편, 어드레스 변환 테이블(8)에 어드레스가 기억되어 있지 않은 페이지의 데이터, 즉, 데이터가 기억되어 있지만, 어드레스 변환 테이블(8)에 의해 지정되지 않은 데이터를 무효 데이터라 한다.
어드레스 변환 테이블(8)은, 반도체 기억 장치(1)가 가동하지 않을 때에는, NAND 플래시 ROM(4)에만 존재한다. 하지만, 호스트 기기(6)가 반도체 기억 장치(1)로의 데이터의 기입/판독 지시를 발행하면, NAND 플래시 ROM(4)으로부터 어드레스 변환 테이블(8)이 판독되어, DRAM(3)에 일시적으로 기억된다. 그리고, 후술하는 컨트롤러(5)의 어드레스 변환부(14)는, DRAM(3)에 일시적으로 기억된 어드레스 변환 테이블(8)에 대해 어드레스 갱신 처리를 행한다. 또한, NAND 플래시 ROM(4)에서의 어드레스 변환 테이블(8)에 대한 어드레스 갱신 처리는, 반도체 기억 장치(1)가 가동을 정지할 때와 같은 임의의 소정 타이밍에서 행해진다.
제1 기억부(9) 및 제2 기억부(10)는 각각 전술한 바와 같이 블록을 복수개 포함한다. 각 블록에는, 호스트 기기(6)에 의해 공급되어 DRAM(3)에 일시 기억되어 있는 데이터가 기입된다. 후술하는 컨트롤러(5)의 기입/판독 지시부(13)는, 실제로 데이터를 기록할 때, 제1 기억부(9) 및 제2 기억부(10)의 블록들로부터 블록을 선택한다. 도 1에서, 제1 기억부(9)는, 블록 A 내지 D의 4개의 블록을 포함하고, 제2 기억부(10)는, 블록 E, F의 2개의 블록을 포함한다.
여기서, 제1 기억부(9)의 블록들(제1 블록들)에는, 호스트 기기(6)에 의해 공급되어 DRAM(3)에 일시 기억되어 있는 모든 데이터가 먼저 기입된다. 한편, 제2 기억부(10)의 블록들(제2 블록들)에는, 제1 기억부(9)에 기입 가능한 블록이 존재하지 않는 경우에, 후술하는 컨트롤러(5)의 이동부(16)에 의해 지정된 데이터만이 제1 기억부(9)의 블록들로부터 이동되어 기입된다.
제1 기억부(9)의 블록들과 제2 기억부(10)의 블록들은, 고정되어 있는 것은 아니며, 후술하는 컨트롤러(5)의 블록 관리부(17)에 의해 동적으로 변경될 수 있다는 것을 주목해야 한다.
블록 관리 리스트(11)는, 도 3에 도시한 바와 같이, 제1 기억부(9)의 블록과, 제2 기억부(10)의 블록을 관리한다. 도 3에서는, 제1 기억부(9)에 속하는 블록은, 블록 A 내지 D의 4개의 블록이며, 제2 기억부(10)에 속하는 블록은, 블록 E, F의 2개의 블록이다.
또한, 블록 관리 리스트(11)는 NAND 플래시 ROM(4)에만 존재한다. 그러나, 호스트 기기(6)가 반도체 기억 장치(1)로 데이터의 기입/판독 지시를 발행하면, NAND 플래시 ROM(4)으로부터 블록 관리 리스트(11)가 판독되어, DRAM(3)에 일시적 으로 기억되도록 하는 구조로 구성되어도 된다. 그러한 구조에서, 후술하는 컨트롤러(5)의 블록 관리부(17)는, DRAM(3)에 일시적으로 기억되어 있는 블록 관리 리스트(11)를 갱신해야 하며, NAND 플래시 ROM(4) 내의 블록 관리 리스트(11)는, 반도체 기억 장치(1)가 가동을 정지할 때와 같은 임의의 소정의 타이밍에서 갱신되어야 한다.
컨트롤러(5)는 반도체 기억 장치(1)의 동작을 제어한다. 컨트롤러(5)는, CPU(12)를 포함하고, CPU(12)에 의해 실행되는 명령에 따라 반도체 기억 장치(1)를 제어한다. CPU(12)는 기입/판독 지시부(13), 어드레스 변환부(14), 판정부(15), 이동부(16), 및 블록 관리부(17)를 포함한다. 실제로, CPU(12)에 의해 실행되는 프로그램은, 기입/판독 지시부(13), 어드레스 변환부(14), 판정부(15), 이동부(16), 및 블록 관리부(17)를 포함하는 모듈 구조를 가진다. CPU(12)가 ROM 등(도시하지 않음)으로부터 프로그램을 판독하여 실행하면, 기입/판독 지시부(13), 어드레스 변환부(14), 판정부(15), 이동부(16), 및 블록 관리부(17)가 CPU(12)에 생성된다.
기입/판독 지시부(13)는 호스트 기기(6)로부터의 요구에 응답하여, DRAM(3)의 데이터를 NAND 플래시 ROM(4)(판정부(15)에 의해 지정되는 제1 기억부(9)의 블록들)에 기입하도록 하는 데이터 기입 지시를 발행하거나, NAND 플래시 ROM(4)(제1 기억부(9) 또는 제2 기억부(10)의 블록들)으로부터 DRAM(3)으로 데이터를 판독하도록 하는 데이터 판독 지시를 발행한다.
어드레스 변환부(14)는, 호스트 기기(6)에 의해 공급되는 데이터의 외부 어 드레스를, 실제로 데이터가 기억되어 있는 NAND 플래시 ROM(4)의 블록의 페이지로 변환한다. 구체적으로, 호스트 기기(6)에 의해 공급된 데이터가 NAND 플래시 ROM(4)에 기억되어 있으면, 어드레스 변환부(14)는 데이터가 기억된 블록의 페이지와 데이터의 외부 어드레스를 연관시켜 이를 어드레스 변환 테이블(8)에 기억한다. 호스트 기기(6)로부터 판독 요구가 수신되면, 어드레스 변환부(14)는 외부 어드레스를, 대응하는 블록의 페이지로 변환한다. 다시 말하면, 어드레스 변환은, 개별 페이지에 대하여 수행된다.
어드레스 변환부(14)는, 도 4에 도시한 바와 같이, 어드레스 변환 테이블(8)을 참조하여, 호스트 기기(6)에 의해 공급되는 외부 어드레스를, NAND 플래시 ROM(4) 내의 블록의 페이지로 변환한다. 특히, 어드레스 변환부(14)에 의해 수행되는 변환에서는, 호스트 기기(6)에 의해 공급되는 외부 어드레스의 일부 최상위 비트들을 NAND 플래시 ROM(4)의 블록의 페이지로 변환하고, 나머지 하위 비트들을 페이지 내의 데이터 위치로 변환한다.
도 4에 따르면, 외부 어드레스로부터 공급되는 어드레스는 48비트이다. 외부 어드레스 중, 블록의 페이지로의 변환에는 상위 37비트가 사용되고, 페이지의 데이터 위치로의 변환에는 하위 11비트가 사용된다. 비트 수는 페이지의 용량에 따라 변한다. 여기서, 어드레스 변환 테이블(8)에 기억되어 있는 NAND 플래시 ROM(4)의 블록의 페이지 위치의 데이터는, 각각의 외부 어드레스와 연관되어 기억된 유효 데이터이므로, 이러한 데이터는 파괴되어서는 안된다.
또한, NAND 플래시 ROM을 포함하는 반도체 기억 장치에서는, NAND 플래시 ROM으로의 기입 이전에 소거 동작이 필요하다. 또한, NAND 플래시 ROM의 특정 영역에만 빈번하게 재기입을 행하면 NAND 플래시 ROM의 수명이 단축될 수 있다. 이러한 이유로 인하여, 호스트 기기에 의해 공급되는 외부 어드레스의 데이터를 임의의 블록들 및 페이지들에 기억할 수 있도록, 이러한 반도체 기억 장치에 어드레스 변환부를 도입하는 것이 일반적이다.
판정부(15)는, 호스트 기기(6)로부터 데이터의 기입 요구가 수신된 경우에, 제1 기억부(9)에 유효 데이터가 기억되어 있지 않은 블록이 있는지를 판정하고, 그 블록을 식별한다. 구체적으로는, 판정부(15)는, 제1 기억부(9)의 블록들로부터, 어드레스 변환 테이블(8)에 의해 지정된 데이터(유효 데이터)가 기억되어 있지 않은 블록을 식별한다. 그 후, 식별된 블록에, 기입/판독 지시부(13)가 호스트 기기(6)로부터 수신된 데이터를 기입한다.
도 5를 참조하여, 판정부(15)에 의한 판정 방법을 이하에 설명한다. 도 5에서는, 제1 기억부(9)에 속하는 블록은, 블록 A 내지 D이다. 그리고, 블록 A 내지 D 중에서, 유효 데이터, 즉, 어드레스 변환 테이블(8)에 의해 지정된 데이터가 기억되어 있지 않은 블록은 블록 A뿐이다. 따라서, 판정부(15)는 블록 A를 식별한다.
이동부(16)는, 호스트 기기(6)로부터 데이터의 기입 요구가 수신되고, 제1 기억부(9)에 유효 데이터가 기억되어 있지 않은 블록이 존재하지 않는 경우, 즉, 제1 기억부(9)의 모든 블록에 적어도 한 항목의 유효 데이터가 기억되어 있는 경우, 제1 기억부(9)의 블록들에 기억되어 있는 유효 데이터를, 제2 기억부(10)의 블 록으로 이동시킨다. 이동부(16)는, 구체적으로는, 제1 기억부(9)의 블록들에 기억되어 있는 유효 데이터를, 일단 DRAM(3)에 판독하고, 제2 기억부(10)의 블록에 통합하여 기입한다.
도 6 및 도 7을 참조하여, 이동부(16)에 의한 데이터의 이동 방법에 대해 이하에서 설명한다. 도 6은, 이동부(16)에 의한 데이터의 이동 전을 나타내고, 도 7은 이동부(16)에 의한 데이터의 이동 후를 나타낸다. 도 6에는, 제1 기억부(9)의 블록 A 내지 D의 각각에는, 적어도 하나의 유효 데이터가 기억되어 있다. 따라서, 이동부(16)는, 도 7에 도시된 바와 같이, 블록 A 내지 D에 기억되어 있는 유효 데이터를, 제2 기억부(10)의 블록 E로 이동시킨다. 또한, 이동부(16)가 데이터를 이동시킨 후, 어드레스 변환부(14)는 데이터 항목이 이동되는 위치를 가리키도록 어드레스 변환 테이블(8)의 데이터 항목의 위치들을 갱신한다. 따라서, 블록 A 내지 D에 기억되어 있던 모든 유효 데이터 항목은 모두 무효 데이터 항목으로 변경된다.
블록 관리부(17)는, 블록 관리 리스트(11), 즉 제1 기억부(9)의 블록들과 제2 기억부(10)의 블록들을 관리한다. 전술한 바와 같이, 호스트 기기(6)에 의해 공급되는 데이터의 기입에는, 제1 기억부(9)의 블록들이 사용되고, 이동부(16)에 의한 데이터의 이동시에만 제2 기억부(10)의 블록들이 사용된다.
이동부(16)가 제1 기억부(9)의 블록에 기억되어 있는 데이터를 제2 기억부(10)의 블록에 이동 시킨 후, 블록 관리부(17)는, 제1 기억부(9)의 블록에 기억되어 있는 데이터가 제2 기억부(10)의 블록으로 이동된 후, 제1 기억부(9)의 블록으로부터 데이터가 이동되어 온 제2 기억부(10)의 블록을 제1 기억부(9)로 이동시 키고, 제1 기억부(9)의 블록 중 하나를 제2 기억부(10)로 이동되도록 블록 관리 리스트(11)를 갱신한다. 전제 조건으로서, 제2 기억부(10)로 이동되는 제1 기억부(9)의 블록은, 데이터가 제2 기억부(10)로 이동한 후, 유효 데이터가 존재하지 않게 된 블록이라고 가정한다.
도 6 및 도 7을 보면, 도 6의 데이터 이동 이전에는 블록 관리 리스트(11)의 제2 기억부(10)에 속해 있던 블록 E가, 도 7의 데이터 이동 후에는 제1 기억부(9)로 이동하고, 데이터 이동 이전에는 제1 기억부(9)에 속해 있던 블록 A가, 제2 기억부(10)로 이동되는 것을 알 수 있다. 이 예에서는, 유효 데이터가 현재 기억되어 있지 않은 블록 A 내지 D 중 가장 적은 미사용 페이지를 가지는 블록 A가 제2 기억부(10)로 이동되어 있다. 이는, 제2 기억부(10)에서 페이지의 사용 또는 미사용에 따라 각각의 블록의 전체 페이지에 대해 소거 처리가 수행될 수 있으므로, 미사용 페이지가 가장 적은 블록을 제2 기억부(10)로 이동시킴으로써 불필요한 동작을 없앨 수 있다.
그리고, 이동부(16) 및 블록 관리부(17)에 의해, 제1 기억부(9)의 블록 A 내지 D의 유효 데이터는 모두 블록 E로 이동되어, 제2 기억부(10)로 이동한 블록 A 이외의 블록 B 내지 D에 대하여 데이터를 기입할 수 있게 된다.
다음으로, 본 실시 형태에 따른 반도체 기억 장치(1)의 NAND 플래시 ROM(4)에 새로운 데이터를 기입하는 방법에 대해 도 8을 참조하여 설명한다. 반도체 기억 장치(1)가 호스트 기기(6)로부터 데이터 기입 지시를 수신하면, 호스트 기기(6)에 의해 공급된 기입될 데이터는, DRAM(3)에 일시적으로 기억된다.
그리고, 판정부(15)는, 제1 기억부(9)에 유효한 데이터가 기억되어 있지 않은 블록이 있는지를 판정한다(단계 S11). 구체적으로는, 판정부(15)는 제1 기억부(9)의 블록들 중, 어드레스 변환 테이블(8)에 의해 지정된 데이터(유효 데이터)가 기억되어 있지 않은 블록이 있는지를 판정한다.
판정부(15)가 제1 기억부(9)에 유효한 데이터가 기억되어 있지 않은 블록이 있다고 판정하면(단계 S11 : '예'), 판정부(15)는 그 블록을 식별한다. 기입/판독 지시부(13)는 유효 데이터가 기억되어 있지 않은 제1 기억부(9)의 블록으로 데이터를 기입하도록 하는 지시를 발행한다(단계 S12). 이로써, 블록으로의 데이터의 기입이 행해진다.
한편, 판정부(15)가 제1 기억부(9)에 유효한 데이터가 기억되어 있지 않은 블록이 없다고 판정하면(단계 S11 : '아니오'), 이동부(16)는 제1 기억부(9)의 블록 중 몇 개의 블록의 유효 데이터를 제2 기억부(10)의 블록으로 이동시킨다(단계 S13). 이 경우, 블록들의 모든 유효 데이터를 이동시켜, 이동 후, 이들 블록들에 유효 데이터가 전혀 남지 않도록 하는 것이 바람직하다. 제2 기억부(10)가 다수의 블록을 포함하는 경우에는, 유효 데이터를 한번에 복수의 블록으로 이동해도 된다. 하지만, 유효 데이터 항목은 한번에 각각의 블록에 대하여 처리되는 것이 바람직하다.
전술한 바와 같이, 이동부(16)는, NAND 플래시 ROM(4)의 블록들에 기억되어 있는 유효 데이터를, 먼저 DRAM(3)으로 판독하고, NAND 플래시 ROM(4)의 다른 블록에 기입한다. 그러나, 현재의 기입 지시 이전의 호스트 기기(6)로부터 이전에 발 행된 판독 지시에 응답하여, 유효 데이터가 NAND 플래시 ROM(4)으로부터 판독되어, DRAM(3)에 일시적으로 기억되는 경우에는, 그 데이터를 직접 기입해도 된다. 이 경우, NAND 플래시 ROM(4)의 블록들의 유효 데이터를 DRAM(3)으로 판독하는 시간을 절약할 수 있다.
다음으로, 어드레스 변환부(14)는, 제2 기억부(10)의 블록으로 이동한 유효 데이터에 대한 어드레스 변환 테이블(8)을, 유효 데이터의 이동처의 위치(제2 기억부(10)의 블록/페이지 위치)를 가리키도록 갱신한다(단계 S14).
다음에, 블록 관리부(17)는, 유효 데이터의 이동처인 제2 기억부(10)의 블록을 제1 기억부(9)의 리스트로 이동시키고, 유효 데이터의 이동원인 제1 기억부(9)의 무효 데이터 블록을 제2 기억부(10)의 리스트로 이동시킨다(단계 S15). 이 단계에서는, 이동하는 블록은 몇 개라도 상관없다.
그 후, 단계 S12에서, 기입/판독 지시부(13)는, 유효 데이터가 기억되어 있지 않은 제1 기억부(9)의 블록(유효 데이터의 이동원 블록)으로 데이터를 기입하도록 하는 기입 지시를 발행하고, 해당 블록으로 데이터가 기입된다.
마지막으로, 어드레스 변환 테이블이 데이터의 이동처의 위치(제1 기억부(9)의 블록/페이지 위치)를 가리키도록, 어드레스 변환부(14)는 블록에 기입된 데이터에 대한 어드레스 변환 테이블(8)을 갱신한다(단계 S16). 이상의 단계들을 거쳐서, NAND 플래시 ROM(4) 내로 새로운 데이터를 기입하는 동작이 종료된다.
단계 S12에서, 제1 기억부(9)가, 유효 데이터가 없는 블록을 다수 포함하는 경우에는, 기입/판독 지시부(13)는, 어느 하나의 블록을 선택할 필요가 있다. 이 경우, 데이터의 기입이 되어 있지 않은 미사용 페이지가 가장 적은 블록을 선택하면, 즉, 데이터의 기입량이 최대인 블록을 선택하면, 미사용 페이지가 가장 많은 블록이 남게 된다. 그렇게 하면, 이 후, 여러 페이지에 걸친 큰 사이즈의 데이터의 기입 요구가 수신될 때에도, 소거 동작을 수행하지 않고 데이터를 기입할 수 있다. 따라서, 소거 횟수를 줄일 수 있으며, 이는 반도체 기억 장치(1)(NAND 플래시 ROM(4))의 수명을 연장시킨다. 단, 선택 방법은 이에 한정되는 것은 아니고, 블록을 임의로 선택하는 것도 가능하다는 것에 주목해야 한다.
제1 실시 형태에 따른 반도체 기억 장치에서는, 외부 어드레스와 연관된 데이터가 제1 기억부의 블록들 중 어느 블록에도 기억되어 있지 않다고 판정부가 판정한 경우, 외부 어드레스와 연관된 데이터가 기억되어 있지 않은 블록에, 외부로부터 공급되는 새로운 데이터를 기입할 수 있다. 따라서, 데이터의 소거 횟수를 감소시키면서도, 새로운 데이터가 기입될 해당 블록에 이전에 기억된 유효 데이터가 파괴되어 판독할 수 없게 되는 것을 방지할 수 있다. 데이터의 기입 속도 또한 향상될 수 있다.
또한, 제1 실시예에 따른 반도체 기억 장치에서는, 외부 어드레스와 연관된 일부 데이터가 제1 기억부의 모든 블록들에 기억되어 있다고 판정부가 판정한 경우, 이동부는, 제1 기억부의 블록들에 기억되는 외부 어드레스와 연관된 데이터를, 제2 기억부의 블록들로 이동시킴으로써, 외부 어드레스와 연관된 데이터의 이동원인 블록에, 외부로부터 공급되는 데이터를 새롭게 기입할 수 있다. 따라서, 데이터의 소거 횟수를 감소시키면서, 새로운 데이터를 기입하는 블록에 이전에 기억된 유효 데이터가 파괴되어 판독할 수 없게 되는 것을 방지할 수 있고, 데이터의 기입 속도가 향상될 수 있다.
본 실시예에 따른 반도체 기억 장치(1)에서는, 판정부(15)는, 호스트 기기(6)로부터 데이터의 기입 요구가 수신된 경우에, 제1 기억부(9)에 유효 데이터가 기억되어 있지 않은 블록이 있는지를 판정하고, 그 블록을 식별한다. 그러나, 제1 기억부(9)에 유효 데이터가 기억되어 있지 않은 블록이 없어질 때까지, 이동부(16)에 의한 유효 데이터의 이동은 행하지 않는다. 이로 인해, 판정부(15)가 유효 데이터가 기억되어 있지 않은 블록이 없다고 판정하면, 데이터의 기입 요구의 개시로부터 종료까지의 처리가 매우 길어지게 된다.
이에 비하여, 판정부(15)가, 호스트 기기(6)로부터의 데이터의 기입 요구 시에, 제1 기억부(9)의 블록들에 기억되어 있는 유효 데이터의 총량이, 1블록에 상당하는 데이터량을 초과하는지를 판정하고, 그들의 블록을 식별하는 방식의 변형예가 구성된다. 그 후, 이동부(16)는, 유효 데이터의 총량이 1블록에 상당하는 데이터량이 될 때마다, 제1 기억부(9)의 블록들에 기억되어 있는 유효 데이터를 제2 기억부(10)의 블록으로 이동시킨다. 이로써, 데이터의 기입 요구의 개시로부터 종료까지의 시간은 평균화(가장 긴 시간이 필요한 경우의 시간을 개선)될 수 있다.
이 변형예에서는, 도 9에 도시한 바와 같이, 호스트 기기(6)로부터 반도체 기억 장치(1)에 대해 데이터의 기입 지시를 발행하면, 판정부(15)는, 제1 기억부(9)의 블록들에 기억되어 있는 유효 데이터의 총량이 1블록에 상당하는 데이터량 이상인지를 판정한다(단계 S21). 구체적으로는, 판정부(15)는, 제1 기억부(9)의 블록에서, 어드레스 변환 테이블(8)에 의해 지정된 데이터(유효 데이터)의 총량이 1블록에 상당하는 데이터량 이상인지를 판정한다.
판정부(15)가 제1 기억부(9)의 블록들에 기억되어 있는 유효 데이터의 총량이 1블록에 상당하는 데이터량 이하라고 판정하면(단계 S21 : '아니오'), 판정부(15)는 제1 기억부(9)에 유효 데이터가 기억되어 있지 않은 블록을 식별한다. 다음으로, 기입/판독 지시부(13)는, 제1 기억부(9)의 유효 데이터가 기억되어 있지 않은 블록에 대해 데이터를 기입하도록 하는 지시를 발행하고(단계 S22), 해당 블록에 데이터를 기입한다. 또한, 이 경우에는, 제1 기억부(9)의 블록들에 기억되어 있는 유효한 데이터의 총량이 1블록에 상당하는 데이터량 미만인 경우에는, 제1 기억부(9)에 유효 데이터가 기억되어 있지 않은 블록이 항상 있는 것으로 가정한다.
한편, 판정부(15)가, 제1 기억부(9)의 블록들에 기억되어 있는 유효 데이터의 총량이 1블록에 상당하는 데이터량 이상이라고 판정하면(단계 S21 : '예'), 이동부(16)는, 제1 기억부(9)의 블록들 중 일부 블록에 기억되어 있는 유효 데이터를 제2 기억부(10)의 블록으로 이동시킨다(단계 S23). 그 후의 단계 S24 내지 단계 S26의 동작은, 도 8의 단계 S14 내지 단계 S16과 마찬가지이므로 설명을 생략한다.
이러한 변형예에서는, 제1 기억부(9)의 블록들에 기억되어 있는 유효 데이터의 총량이, 1블록에 상당하는 데이터량 이상인지에 기초하여, 이동부(16)에 의한 데이터 이동이 판정된다. 하지만, 유효 데이터가 n(n은 양의 정수) 블록에 상당하는 데이터량 이상인지에 기초하여 판정될 수도 있다.
이와 같이, 제1 실시예의 변형예에 따른 반도체 기억 장치에서는, 판정부가, 제1 기억부의 블록들에 기억되어 있으며 외부 어드레스와 연관된 데이터의 총량이, 소정의 데이터량 미만이라고 판정한 경우, 외부 어드레스와 연관된 데이터가 기억되어 있지 않은 블록에, 외부로부터 공급되는 데이터를 새롭게 기입할 수 있다. 따라서, 데이터의 소거 횟수를 감소시키면서도, 데이터가 기입되는 블록에 이전에 기억된 유효 데이터가 파괴되어 판독할 수 없게 되는 것을 방지할 수 있다. 데이터의 기입 속도를 향상시키는 동시에, 데이터의 기입 요구의 개시로부터 종료까지의 시간을 평균화시키는 것이 가능하다.
(제2 실시 형태)
제1 실시예에 따르면, 제1 기억부에 유효 데이터가 기억되어 있지 않은 블록이 없는 경우에, 제1 기억부의 블록의 유효 데이터를 제2 기억부의 블록으로 이동시킨다. 이에 비하여, 제2 실시예에 따르면, 제1 기억부에 데이터가 소실될 가능성이 있는 유효 데이터가 기억되어 있지 않은 블록이 없는 경우에, 제1 기억부의 블록들에 기억된 유효 데이터를 제2 기억부의 블록으로 이동시킨다. 본 실시예에 따른 반도체 기억 장치의 구성에 대해, 제1 실시 형태와 다른 부분을 중심으로 설명한다. 이러한 구성의 나머지는 제1 실시예와 마찬가지이므로, 동일 부호를 이러한 부분들에 부여하였다. 이러한 부분들의 설명에 대해서는 상술한 설명을 참조하며, 여기서의 설명은 생략한다.
제1 실시예의 도 2를 참조로 설명한 바와 같이, 상위 페이지에 데이터를 기입하는 경우에는, 동일 메모리 셀의 하위 페이지에 기입이 이미 완료된 데이터가 파괴되어 소실되게 되는 문제가 발생될 수 있다. 도 2의 예에서는, 페이지 5(상위 페이지)로의 데이터의 기입 중에 전원의 공급이 차단되면, 동일 메모리 셀을 공유하는 페이지 4(하위 페이지)에 기억되어 있는 데이터가 파괴된다.
여기서, 하위 페이지(페이지 4)에 기억되어 있는 데이터가 무효 데이터이면, 만일, 기입 동작이 실패하였다고 해도, 소실될 수 있는 데이터가 유효 데이터가 아니기 때문에 기입 동작을 행해도 문제는 없다. 마찬가지로, 하위 페이지로부터 기입 동작을 개시하는 경우에도, 기입의 실패에 의해, 유효 데이터가 소실되지 않는다. 본 실시예에 따른 반도체 기억 장치에서는, 이 점을 특징으로 하고 있다.
제2 실시예에 따른 반도체 기억 장치(21)는, 도 10에 도시한 바와 같이, 호스트 인터페이스(2), DRAM(3), NAND 플래시 ROM(22), 및 컨트롤러(23)를 포함한다. NAND 플래시 ROM(22)은, 어드레스 변환 테이블(8), 제1 기억부(9), 제2 기억부(10), 블록 관리 리스트(11), 및 블록 기억 관리 리스트(24)를 포함한다.
블록 기억 관리 리스트(24)는, 도 11에 도시한 바와 같이, 블록의 몇 페이지에 데이터가 기억되어 있는지를 나타낸다. 도 11에서는, 블록 내의 4페이지까지 데이터가 기억되어 있고, 5페이지 이후는 미사용으로 되어 있다. 블록 기억 관리 리스트(24)는, 제1 기억부(9) 및 제2 기억부(10)의 모든 블록들의 기억 상태를 기억하고 있다.
블록 기억 관리 리스트(24)는, NAND 플래시 ROM(22)에만 존재한다. 하지만, 블록 기억 관리 리스트(24)는, 호스트 기기(6)가 반도체 기억 장치(21)로 데이터의 기입/판독 지시를 발행하면, NAND 플래시 ROM(22)으로부터 블록 기억 관리 리스트(24)가 판독되어, DRAM(3)에 일시적으로 기억되도록 구성될 수도 있다. 그러한 구성에서, 후술하는 컨트롤러(23)의 블록 기억 관리부(27)는, DRAM(3)에 일시적으로 기억되어 있는 블록 기억 관리 리스트(24)를 갱신한다. NAND 플래시 ROM(22)의 블록 기억 관리 리스트(24)는, 반도체 기억 장치(21)가 가동을 정지할 때와 같은 임의의 소정의 타이밍에서 갱신된다.
컨트롤러(23)는, CPU(25)를 포함하며, CPU(25)에 의해 발행된 명령에 따라 반도체 기억 장치(21)를 제어한다. CPU(25)는, 기입/판독 지시부(13), 어드레스 변환부(14), 판정부(26), 이동부(16), 블록 관리부(17), 및 블록 기억 관리부(27)를 포함한다.
판정부(26)는, 호스트 기기(6)로부터 데이터의 기입 요구를 수신한 경우에, 제1 기억부(9)의 블록들 중에서, 새로운 데이터의 기입에 의해 유효 데이터가 소실될 가능성이 없는 블록이 있는지를 판정하고, 그러한 블록이 있다면 그 블록을 식별한다. 구체적으로, 판정부(26)는 어드레스 변환 테이블(8), 및 블록 기억 관리 리스트(24)를 사용하여, 새로운 데이터의 기입이 상위 페이지로부터 개시되고, 이러한 상위 페이지에 대응하는 하위 페이지에 무효 데이터가 기억되어 있는 블록이 있는지 또는, 새로운 데이터의 기입이 하위 페이지로부터 개시되는 블록이 있는지를 판정한다. 이러한 블록이 있다면, 판정부(26)는 그 블록을 식별한다.
도 12를 참조하여, 판정부(26)에 의한 판정 방법을 설명한다. 여기서, 도 12의 각 블록에 포함되어 있는 L은, 하위 페이지를 의미하고, 도 12의 각 블록에 포함되어 있는 U는, 상위 페이지를 의미한다. 도 12에서의 제1 기억부(9)는 블록 A 내지 D를 포함한다. 그리고, 블록 A 내지 D 중에서, 블록 A에서는, 새로운 데이 터의 기입이 하위 페이지로부터 개시되며, 그래서 이러한 블록을 새로운 데이터의 기입 블록으로서 사용할 수 있다. 마찬가지로, 블록 D에서는, 새로운 데이터의 기입이 상위 페이지로부터 개시되며, 또한 이에 대응하는 하위 페이지에 기억되어 있는 데이터는 무효 데이터이다. 그래서, 새로운 데이터를 기입하는 블록으로서 사용할 수 있다. 도 12에서는, 판정부(26)는 블록 D를 지정하고 있지만, 이 대신에 블록 A를 지정해도 된다.
그리고, 이동부(16)는, 호스트 기기(6)로부터 데이터의 기입 요구가 수신되고, 제1 기억부(9)의 블록들 중에서, 새로운 데이터의 기입에 의해 유효 데이터가 소실될 가능성이 없는 블록이 없는 경우, 제1 기억부(9)의 블록들에 기억되어 있는 유효 데이터를, 제2 기억부(10)의 블록으로 이동시킨다.
블록 기억 관리부(27)는, 블록 기억 관리 리스트(24), 즉, 제1 기억부(9) 및 제2 기억부(10)의 블록들의 각 페이지의 기억 상태를 관리한다.
다음으로, 본 실시예에 따른 반도체 기억 장치(21)에서, NAND 플래시 ROM(22)에 새로운 데이터를 기입하는 방법에 대해 도 13을 참조하여 이하에서 설명한다. 호스트 기기(6)로부터 반도체 기억 장치(21)에 대해, 데이터의 기입 지시가 발행되면, 호스트 기기(6)에 의해 공급된 기입될 데이터는 DRAM(3)에 일시적으로 기억된다.
그리고, 판정부(26)는, 제1 기억부(9)의 블록들 중에서, 새로운 데이터의 기입에 의해 유효 데이터가 소실될 가능성이 없는 블록이 있는지를 판정한다(단계 S31). 구체적으로는, 판정부(26)는, 새로운 데이터의 기입이 상위 페이지로부터 개시되며, 이에 대응하는 하위 페이지에 기억되어 있는 데이터가 무효 데이터인 블록이 있는지, 또는 새로운 데이터의 기입이 하위 페이지로부터 개시되는 블록이 있는지를 판정한다.
판정부(26)는, 제1 기억부(9)의 블록들 중에서, 새로운 데이터의 기입에 의해 유효 데이터가 소실될 가능성이 없는 블록이 있다고 판정하면(단계 S31 : '예'), 그 블록을 식별한다. 기입/판독 지시부(13)는, 제1 기억부(9)의 유효 데이터가 기억되어 있지 않은 블록에 대해 데이터의 기입 지시를 발행하여(단계 S32), 해당 블록으로의 데이터의 기입 동작을 실행한다.
한편, 판정부(26)는, 제1 기억부(9)의 블록들 중에서, 새로운 데이터의 기입에 의해 유효 데이터가 소실될 가능성이 없는 블록이 없다고 판정하면(단계 S31 : '아니오'), 이동부(16)는, 제1 기억부(9)의 블록들 중 일부 블록의 유효 데이터를 제2 기억부(10)의 블록으로 이동시킨다(단계 S33). 이 경우, 이러한 블록들의 모든 유효 데이터를 이동시킴으로써, 이동 후, 해당하는 블록들에 유효 데이터가 전혀 남지 않도록 하는 것이 바람직하다. 또한, 제2 기억부(10)가 다수의 블록을 포함하는 경우에는, 유효 데이터를 다수의 블록들에 한번에 이동해도 된다. 그러나, 이동될 유효 데이터 항목은 한번에 각각의 블록에 대하여 처리되는 것이 바람직하다.
다음으로, 어드레스 변환 테이블(8)이 유효 데이터의 이동처 위치(제2 기억부(10)의 블록/페이지 위치)를 가리키도록, 어드레스 변환부(14)는 제2 기억부(10)의 블록으로 이동한 유효 데이터에 대한 어드레스 변환 테이블(8)을 갱신한다(단계 S34).
다음으로, 블록 관리부(17)는, 유효 데이터의 이동처의 제2 기억부(10)의 블록을 제1 기억부(9)의 리스트로 이동시키고, 유효 데이터의 이동원이며 현재 유효 데이터가 기억되어 있지 않은 제1 기억부(9)의 블록들을 제2 기억부(10)의 리스트로 이동시킨다(단계 S35). 이 경우, 이동하는 블록들의 개수는 제한되지 않는다.
그 후, 단계 S32에서, 기입/판독 지시부(13)는, 제1 기억부(9)의 유효 데이터가 기억되어 있지 않은 블록(유효 데이터의 이동원 블록)에 대해 데이터의 기입 지시를 발행하고, 이로써 이들 블록으로의 데이터의 기입 동작이 행해진다.
다음으로, 블록 기억 관리부(27)는, 블록 기억 관리 리스트(24)를 갱신, 즉, 제1 기억부(9) 및 제2 기억부(10)의 블록들의 각 페이지의 기억 상태를 갱신한다(단계 S36).
마지막으로, 어드레스 변환 테이블(8)이 데이터의 이동처 위치(제1 기억부(9)의 블록/페이지 위치)를 가리키도록, 어드레스 변환부(14)는 블록들로 기입된 데이터에 대한 어드레스 변환 테이블(8)을 갱신한다(단계 S37). 이상의 단계를 거쳐서, NAND 플래시 ROM(22)에 대한 새로운 데이터의 기입 처리가 완료된다.
이와 같이, 제2 실시예에 따른 반도체 기억 장치에서는, 새로운 데이터의 기입에 의해 외부 어드레스와 연관된 데이터가 소실되는 블록이 제1 기억부에 없다고 판정부가 판정한 경우, 외부 어드레스들과 연관된 데이터가 소실되지 않는 블록에, 외부로부터 공급되는 데이터를 새롭게 기입할 수 있다. 따라서, 데이터의 소거 횟수를 감소시키면서, 새로운 데이터를 기입하는 동일 블록에 이전에 기억된 유효 데 이터가 파괴되어 판독할 수 없게 되는 것을 방지할 수 있다. 또한, 데이터의 기입 속도를 향상시킬 수 있다.
또한, 제2 실시예에 따른 반도체 기억 장치에서는, 판정부가, 기입 동작이 실패하였다고 해도 유효 데이터가 소실되지 않는 블록을, 외부로부터 공급되는 데이터를 새롭게 기입하는 블록으로서 식별할 수 있다. 이는 데이터 기입처의 블록으로서 선택할 수 있는 블록들을 증가시키고, 이동부에 의한 데이터의 이동의 횟수를 감소시킬 수 있어, 재기입 수명을 증가시킬 수 있다.
또 다른 효과나 변형예는, 당업자에 의해 용이하게 도출할 수 있다. 따라서, 본 발명의 보다 광범위한 형태는, 본 명세서에서 나타내고 기술한 특정한 상세 및 대표적인 실시예에 한정되는 것은 아니다. 따라서, 첨부된 청구범위 및 그 균등물에 의해 정의되는 총괄적인 발명의 개념의 요지 또는 범위로부터 벗어나지 않고, 다양한 변경이 가능하다.
도 1은 제1 실시예에 따른 반도체 기억 장치의 블록도.
도 2는 MLC형 NAND 플래시 ROM의 구조를 설명하는 도면.
도 3은 블록 관리 리스트를 도시하는 도면.
도 4는 어드레스 변환 방법을 설명하는 도면.
도 5는 제1 실시예의 판정 방법을 설명하는 도면.
도 6은 제1 실시예의 데이터의 이동 방법을 설명하는 도면.
도 7은 제1 실시예의 데이터의 이동 방법을 설명하는 도면.
도 8은 제1 실시예에서의 NAND 플래시 ROM으로 새로운 데이터를 기입하는 순서의 흐름도.
도 9는 변형예에서의 NAND 플래시 ROM으로 새로운 데이터를 기입하는 순서의 흐름도.
도 10은 제2 실시예에 따른 반도체 기억 장치의 블록도.
도 11은 제2 실시예의 블록 기억 관리 리스트를 도시하는 도면.
도 12는 제2 실시 형태의 판정 방법을 설명하는 도면.
도 13은 제2 실시 형태에서의 NAND 플래시 ROM으로 새로운 데이터를 기입하는 순서의 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
1 : 반도체 기억 장치
2 : 호스트 인터페이스
3 : DRAM
4 : NAND 플래시 ROM
5 : 컨트롤러
6 : 호스트 기기
8 : 어드레스 변환 테이블

Claims (14)

  1. 반도체 기억 장치로서,
    데이터의 기입 영역인 복수의 제1 블록을 갖는 제1 기억부와,
    상기 제1 블록에 데이터를 기입하도록 하는 기입 지시를 발행하는 지시부와,
    상기 데이터의 외부 어드레스와 상기 제1 블록에서의 상기 데이터의 기억 위치를 연관시킨 변환 테이블을 참조하여, 입력 데이터의 외부 어드레스를 상기 제1 블록에서의 기억 위치로 변환하는 변환부와,
    상기 입력 데이터의 상기 기억 위치에 기초하여, 상기 외부 어드레스와 연관된 상기 데이터인 유효 데이터가 상기 제1 블록들 중 어느 블록에 기억되어 있는지를 판정하는 판정부를 포함하고,
    상기 지시부는, 상기 제1 블록들 중 어느 블록에도 상기 유효 데이터가 기억되어 있지 않다면, 상기 유효 데이터가 기억되어 있지 않은 제1 블록에 상기 데이터를 기입하도록 하는 기입 지시를 발행하는, 반도체 기억 장치.
  2. 제1항에 있어서,
    데이터의 기입 영역인 복수의 제2 블록을 갖는 제2 기억부와,
    모든 상기 제1 블록들에 상기 유효 데이터가 기억되어 있다면, 상기 제1 블록들에 기억된 유효 데이터를 상기 제2 블록들로 이동시키는 이동부를 더 포함하고,
    상기 지시부는, 상기 유효 데이터의 이동원인 상기 제1 블록들에 상기 데이터를 기입하도록 하는 기입 지시를 발행하는, 반도체 기억 장치.
  3. 제2항에 있어서,
    상기 유효 데이터의 이동처인 상기 제2 블록들을 상기 제2 기억부로부터 상기 제1 기억부로 이동시키고, 상기 제1 블록들을 상기 제1 기억부로부터 상기 제2 기억부로 이동시키는 관리부를 더 포함하는 반도체 기억 장치.
  4. 제1항에 있어서,
    상기 판정부는, 또한 상기 입력 데이터의 상기 기억 위치에 기초하여, 상기 제1 블록들에 기억되어 있는 상기 유효 데이터의 항목의 총수를 판정하고,
    상기 지시부는, 상기 총수가 소정의 수 미만인 경우, 상기 유효 데이터가 기억되어 있지 않은 상기 제1 블록에 상기 데이터를 기입하도록 하는 기입 지시를 발행하는, 반도체 기억 장치.
  5. 제4항에 있어서,
    상기 데이터의 기입 영역인 복수의 제2 블록을 갖는 제2 기억부와,
    상기 총수가 소정의 수 이상인 경우, 상기 제1 블록들에 기억되어 있는 유효 데이터를, 상기 제2 블록들로 이동시키는 이동부를 더 포함하고,
    상기 지시부는, 상기 유효 데이터의 이동원인 상기 제1 블록에 상기 데이터를 기입하도록 하는 기입 지시를 발행하는, 반도체 기억 장치.
  6. 제5항에 있어서,
    상기 유효 데이터의 이동처인 상기 제2 블록들을 상기 제2 기억부로부터 상기 제1 기억부로 이동시키고, 상기 제1 블록들을 상기 제1 기억부로부터 상기 제2 기억부로 이동시키는 관리부를 더 포함하는, 반도체 기억 장치.
  7. 제4항에 있어서,
    상기 소정의 수는 상기 제1 블록들의 1 블록분에 상당하는 데이터량인, 반도체 기억 장치.
  8. 제4항에 있어서,
    상기 소정의 수는 상기 제1 블록들의 복수의 블록에 상당하는 데이터량인, 반도체 기억 장치.
  9. 제1항 또는 제4항에 있어서,
    상기 지시부는, 상기 유효 데이터가 기억되어 있지 않은 상기 제1 블록들 중, 데이터의 기입량이 최대인 제1 블록에 상기 데이터를 기입하도록 하는 기입 지시를 발행하는, 반도체 기억 장치.
  10. 반도체 기억 장치로서,
    데이터의 기입 영역인 복수의 제1 블록을 갖는 제1 기억부와,
    상기 제1 블록들에 데이터를 기입하도록 하는 기입 지시를 발행하는 지시부와,
    데이터의 외부 어드레스들과 상기 블록들에서의 상기 데이터의 기억 위치를 연관시킨 변환 테이블을 참조하여, 입력 데이터의 외부 어드레스를 상기 제1 블록에서의 기억 위치로 변환하는 변환부와,
    상기 제1 블록들에서의 상기 데이터의 기억 상태를 관리하는 관리부와,
    상기 입력 데이터의 상기 기억 위치와 상기 데이터의 기억 상태에 기초하여, 데이터의 기입에 의해 상기 외부 어드레스와 연관된 데이터인 유효 데이터가 소실되지 않을 소정의 제1 블록이 상기 제1 블록들에 포함되는지를 판정하는 판정부를 포함하고,
    상기 지시부는, 상기 제1 블록들이 상기 데이터의 기입에 의해 상기 유효 데이터가 소실되지 않을 상기 제1 블록을 포함하는 경우, 상기 데이터의 기입에 의해 상기 유효 데이터가 소실되지 않을 상기 제1 블록에 상기 데이터를 기입하도록 하는 기입 지시를 발행하는, 반도체 기억 장치.
  11. 제10항에 있어서,
    데이터의 기입 영역인 복수의 제2 블록을 갖는 제2 기억부와,
    상기 데이터의 기입에 의해 상기 유효 데이터가 소실되지 않을 소정의 제1 블록이 상기 제1 블록들에 포함되어 있지 않다면, 상기 제1 블록들에 기억된 상기 유효 데이터를 상기 제2 블록으로 이동시키는 이동부를 더 포함하고,
    상기 지시부는, 상기 유효 데이터의 이동원인 상기 제1 블록들에 상기 데이터를 기입하도록 하는 기입 지시를 발행하는, 반도체 기억 장치.
  12. 제11항에 있어서,
    상기 유효 데이터의 이동처인 제2 블록들을 상기 제2 기억부로부터 상기 제1 기억부로 이동시키고, 상기 제1 블록들을 상기 제1 기억부로부터 상기 제2 기억부로 이동시키는 관리부를 더 포함하는, 반도체 기억 장치.
  13. 제10항에 있어서,
    상기 지시부는, 유효 데이터가 기억되어 있지 않은 상기 제1 블록들 중, 데이터의 기입량이 최대인 상기 제1 블록에 상기 데이터를 기입하도록 하는 기입 지시를 발행하는, 반도체 기억 장치.
  14. 반도체 기억 장치에서 실행되는 기억 제어 방법으로서,
    기억부에서의 데이터의 기입 영역인 블록들에 데이터를 기입하도록 하는 기입 지시를 발행하는 단계와,
    상기 데이터의 외부 어드레스와 상기 블록들에서의 상기 데이터의 기억 위치를 연관시킨 변환 테이블을 참조하여, 입력 데이터의 외부 어드레스를 상기 블록에서의 기억 위치로 변환하는 단계와,
    상기 입력 데이터의 상기 기억 위치에 기초하여, 상기 외부 어드레스와 연관된 데이터인 유효 데이터가 상기 블록들의 어느 블록에 기억되어 있는지를 판정하는 단계를 포함하고,
    상기 발행 단계는, 상기 유효 데이터가 상기 블록들 중 어느 블록에도 기억되어 있지 않다면, 상기 유효 데이터가 기억되어 있지 않은 블록에 상기 데이터를 기입하도록 하는 기입 지시를 발행하는, 기억 제어 방법.
KR1020090086130A 2008-12-22 2009-09-11 반도체 기억 장치 및 기억 제어 방법 KR101121698B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008325632A JP4551958B2 (ja) 2008-12-22 2008-12-22 半導体記憶装置および半導体記憶装置の制御方法
JPJP-P-2008-325632 2008-12-22

Publications (2)

Publication Number Publication Date
KR20100073971A KR20100073971A (ko) 2010-07-01
KR101121698B1 true KR101121698B1 (ko) 2012-02-28

Family

ID=41343350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090086130A KR101121698B1 (ko) 2008-12-22 2009-09-11 반도체 기억 장치 및 기억 제어 방법

Country Status (7)

Country Link
US (1) US20100161885A1 (ko)
EP (2) EP2200045B1 (ko)
JP (1) JP4551958B2 (ko)
KR (1) KR101121698B1 (ko)
CN (2) CN103151073A (ko)
AT (1) ATE533159T1 (ko)
TW (1) TWI440042B (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4461170B2 (ja) 2007-12-28 2010-05-12 株式会社東芝 メモリシステム
JP4533968B2 (ja) 2007-12-28 2010-09-01 株式会社東芝 半導体記憶装置及びその制御方法、コントローラ、情報処理装置
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
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
US8489804B1 (en) 2009-09-14 2013-07-16 Marvell International Ltd. System for using dynamic random access memory to reduce the effect of write amplification in flash memory
JP5397167B2 (ja) * 2009-11-05 2014-01-22 富士通株式会社 タイムスロット割り当て方法、プログラム及び装置
JP2011128998A (ja) 2009-12-18 2011-06-30 Toshiba Corp 半導体記憶装置
US8854882B2 (en) 2010-01-27 2014-10-07 Intelligent Intellectual Property Holdings 2 Llc Configuring storage cells
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
TWI446349B (zh) * 2010-03-04 2014-07-21 Phison Electronics Corp 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
US9245653B2 (en) 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
JP5404483B2 (ja) 2010-03-17 2014-01-29 株式会社東芝 メモリシステム
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
JP2012008651A (ja) 2010-06-22 2012-01-12 Toshiba Corp 半導体記憶装置、その制御方法および情報処理装置
US8417877B2 (en) 2010-08-31 2013-04-09 Micron Technology, Inc Stripe-based non-volatile multilevel memory operation
JP2012128645A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
JP5651457B2 (ja) * 2010-12-15 2015-01-14 株式会社東芝 半導体記憶装置
JP2012128644A (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 株式会社東芝 メモリシステム
JP2012128816A (ja) * 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
JP2012221251A (ja) 2011-04-08 2012-11-12 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
JP5687648B2 (ja) 2012-03-15 2015-03-18 株式会社東芝 半導体記憶装置およびプログラム
JP5813589B2 (ja) * 2012-07-13 2015-11-17 株式会社東芝 メモリシステムおよびその制御方法
US9117530B2 (en) 2013-03-14 2015-08-25 Sandisk Technologies Inc. Preserving data from adjacent word lines while programming binary non-volatile storage elements
US9009568B2 (en) 2013-08-09 2015-04-14 Sandisk Technologies Inc. Sensing parameter management in non-volatile memory storage system to compensate for broken word lines
JP6121857B2 (ja) 2013-09-20 2017-04-26 株式会社東芝 メモリシステム
JP6517549B2 (ja) * 2015-03-13 2019-05-22 東芝メモリ株式会社 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
JP2018041204A (ja) * 2016-09-06 2018-03-15 東芝メモリ株式会社 メモリ装置及び情報処理システム
JP7030463B2 (ja) 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
KR102492033B1 (ko) * 2018-03-26 2023-01-26 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
CN111949199B (zh) * 2019-05-16 2024-04-26 兆易创新科技集团股份有限公司 一种存储设备的数据写入方法、装置及存储设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040086500A (ko) * 2002-02-08 2004-10-11 마쯔시다덴기산교 가부시키가이샤 불휘발성 기억 장치, 그 제어 방법, 및 프로그램
KR20060127760A (ko) * 2005-06-06 2006-12-13 소니 가부시끼 가이샤 기억장치
KR20070001871A (ko) * 2003-10-03 2007-01-04 쌘디스크 코포레이션 플래쉬 메모리 데이터 정정 및 스크럽 기법
KR20080038364A (ko) * 2005-08-03 2008-05-06 쌘디스크 코포레이션 직접적인 데이터 파일 저장소를 이용하는 플래시 메모리들에서의 데이터 작동들

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US186065A (en) * 1877-01-09 Improvement in cultivators
US82878A (en) * 1868-10-06 David m
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6988175B2 (en) * 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
JP2006221743A (ja) * 2005-02-10 2006-08-24 Toshiba Corp 記憶システムと半導体記憶装置の書き込み方法
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
JP4584782B2 (ja) * 2005-06-21 2010-11-24 旭化成エレクトロニクス株式会社 ポインティングデバイスおよびポインティングデバイス用キーシート
JPWO2007000862A1 (ja) * 2005-06-24 2009-01-22 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP4413840B2 (ja) * 2005-09-20 2010-02-10 株式会社東芝 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
JP4660353B2 (ja) * 2005-11-01 2011-03-30 株式会社東芝 記憶媒体再生装置
JP4575288B2 (ja) * 2005-12-05 2010-11-04 株式会社東芝 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
KR100706808B1 (ko) * 2006-02-03 2007-04-12 삼성전자주식회사 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법
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 株式会社東芝 半導体記憶装置、及びその制御方法
JP4653817B2 (ja) * 2008-03-01 2011-03-16 株式会社東芝 メモリシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040086500A (ko) * 2002-02-08 2004-10-11 마쯔시다덴기산교 가부시키가이샤 불휘발성 기억 장치, 그 제어 방법, 및 프로그램
KR20070001871A (ko) * 2003-10-03 2007-01-04 쌘디스크 코포레이션 플래쉬 메모리 데이터 정정 및 스크럽 기법
KR20060127760A (ko) * 2005-06-06 2006-12-13 소니 가부시끼 가이샤 기억장치
KR20080038364A (ko) * 2005-08-03 2008-05-06 쌘디스크 코포레이션 직접적인 데이터 파일 저장소를 이용하는 플래시 메모리들에서의 데이터 작동들

Also Published As

Publication number Publication date
JP4551958B2 (ja) 2010-09-29
EP2200045A1 (en) 2010-06-23
CN101763894B (zh) 2013-05-01
CN103151073A (zh) 2013-06-12
KR20100073971A (ko) 2010-07-01
TWI440042B (zh) 2014-06-01
EP2309517A1 (en) 2011-04-13
JP2010146469A (ja) 2010-07-01
TW201027555A (en) 2010-07-16
EP2200045B1 (en) 2011-11-09
CN101763894A (zh) 2010-06-30
US20100161885A1 (en) 2010-06-24
ATE533159T1 (de) 2011-11-15

Similar Documents

Publication Publication Date Title
KR101121698B1 (ko) 반도체 기억 장치 및 기억 제어 방법
US10310747B2 (en) Memory management device and method
KR101437123B1 (ko) 메모리 시스템 및 그것의 마모도 관리 방법
US8250286B2 (en) Block management method, and storage system and controller using the same
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8051270B2 (en) Memory controller, nonvolatile storage device, nonvolatile storage system, and memory control method
US8327068B2 (en) Memory module, memory controller, nonvolatile storage, nonvolatile storage system, and memory read/write method
US20070214309A1 (en) Nonvolatile storage device and data writing method thereof
JP2005301591A (ja) 不揮発性メモリを備えた装置及びメモリコントロ−ラ
JP2005242897A (ja) フラッシュディスク装置
WO2006067923A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
WO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP2007199905A (ja) 半導体記憶装置の制御方法
US8527733B2 (en) Memory system
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
JP5100789B2 (ja) 半導体記憶装置および半導体記憶装置の制御方法
US20050204115A1 (en) Semiconductor memory device, memory controller and data recording method
JP2005250831A (ja) 半導体メモリ装置
JP4227989B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2008226188A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee