KR100687151B1 - 메모리 카드, 반도체 장치, 및 반도체 메모리의 제어 방법 - Google Patents

메모리 카드, 반도체 장치, 및 반도체 메모리의 제어 방법 Download PDF

Info

Publication number
KR100687151B1
KR100687151B1 KR1020050044374A KR20050044374A KR100687151B1 KR 100687151 B1 KR100687151 B1 KR 100687151B1 KR 1020050044374 A KR1020050044374 A KR 1020050044374A KR 20050044374 A KR20050044374 A KR 20050044374A KR 100687151 B1 KR100687151 B1 KR 100687151B1
Authority
KR
South Korea
Prior art keywords
block
data
area
address
write request
Prior art date
Application number
KR1020050044374A
Other languages
English (en)
Other versions
KR20060046181A (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 KR20060046181A publication Critical patent/KR20060046181A/ko
Application granted granted Critical
Publication of KR100687151B1 publication Critical patent/KR100687151B1/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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

반도체 장치는, 소정의 소거 블록 사이즈를 갖는 반도체 메모리와, 상기 반도체 메모리에서 이미 데이터가 기입되어 있는 제1 블록 내의 임의의 영역에 대하여 데이터 기입 요구가 발생한 경우, 상기 영역의 어드레스의 값에 상관없이, 데이터가 소거 완료인 제2 블록의 선두 영역에 상기 기입 요구의 데이터를 기입하는 컨트롤러를 구비한다.
플래시 메모리, ROM, 오버헤드, 물리 어드레스, 컨트롤러

Description

메모리 카드, 반도체 장치, 및 반도체 메모리의 제어 방법{MEMORY CARD, SEMICONDUCTOR DEVICE, AND METHOD OF CONTROLLING SEMICONDUCTOR MEMORY}
도 1은 본 발명의 일 실시 형태에 따른 메모리 카드에 탑재되는 디바이스류의 개략 구성을 도시하는 사시도.
도 2는 호스트와 도 1의 메모리 카드를 포함하는 구성을 도시하는 블록도.
도 3은 호스트가 상정하고 있는 플래시 메모리와, 실제로 사용하는 플래시 메모리의 데이터 배치의 차이를 도시하는 도면.
도 4는 호스트측 시스템 및 메모리 카드(대블록 카드)의 각 커뮤니케이션 계층을 도시하는 도면.
도 5a 및 도 5b는 호스트측으로부터 보내져오는 커맨드의 포맷을 도시하는 도면.
도 6은 호스트측이 상정하고 있는 블록 기입 조작과 메모리 카드(대블록 카드)측이 실제로 행하는 기입 처리를 대비하여 도시하는 도면.
도 7은 대블록 카드 내의 플래시 메모리의 블록 포맷(소거 단위인 256kByte 물리 블록분)을 도시하는 도면.
도 8은 본 실시 형태의 메모리 카드에 대하여 호스트가 기입을 행할 때의, 메모리 카드의 I/O핀과 R/B핀의 신호의 예를 도시하는 타이밍차트.
도 9는 본 실시 형태의 메모리 카드 내의 불휘발성 메모리에 대하여, 메모리 카드 내의 컨트롤러가 기입을 행할 때의, 메모리 카드 내의 불휘발성 메모리의 I/O핀과 R/B핀의 신호의 예를 도시하는 타이밍차트.
도 10은 NAND형 플래시 메모리에서의 데이터 기입의 순서를 설명하기 위한 도면.
도 11은 종래 기술에 의한 기본적인 데이터 기입 방법의 일례를 설명하기 위한 도면.
도 12는 본 실시 형태에 의한 기본적인 데이터 기입 방법의 일례를 설명하기 위한 도면.
도 13은 종래 기술에 의한 데이터 기입 방법의 구체예를 설명하기 위한 도면.
도 14는 본 실시 형태에 의한 데이터 기입 방법의 구체예를 설명하기 위한 도면.
<도면의 주요 부분에 대한 부호의 설명>
1 : 메모리 카드
3 : NAND형 플래시 메모리
4 : 컨트롤러
5 : 메모리 I/F
6 : 호스트 I/F
7 : 버퍼
8 : CPU
9 : ROM
10 : RAM
20 : 호스트
본 출원은 일본 특허 출원 2004-157541(2004년 5월 27일)에 기초한 것으로써, 그 우선권을 주장하며, 그 전체 내용이 본 명세서에서 참조로서 인용된다.
본 발명은, 불휘발성 반도체 메모리를 탑재한 메모리 카드에 관한 것으로, 특히 소정의 소거 블록 사이즈를 갖는 불휘발성 반도체 메모리를 탑재한 메모리 카드, 이 카드에 탑재되는 반도체 장치, 및 반도체 메모리의 제어 방법에 관한 것이다.
메모리 카드에 탑재되는 불휘발성 메모리로서는, NAND형 플래시 메모리가 흔히 채용된다. NAND형 플래시 메모리에서는, 어느 일정한 수의 메모리 셀을 통합하여 페이지라는 단위를 구성하고, 어느 일정한 수의 페이지를 통합하여 블록이라고 하는 단위를 구성하고 있다.
또한, NAND형 플래시 메모리는, 그 구성상, 한번 데이터를 기입한 셀에 대하여 데이터를 단순하게 재기입할 수는 없다. 재차 데이터를 기입하기 위해서는, 소거를 행할 필요가 있다. 여기서, 소거는 블록 단위로만 행할 수 있다. 또한, 판 독이나 기입은 일반적으로 페이지 단위로 행한다. 특히, 기입에서는, 물리 블록 내의 선두 페이지로부터 순서대로 데이터를 기입해야 하도록 되어 있다.
예를 들면, NAND형 플래시 메모리 내의 컨트롤러가, NAND형 플래시 메모리를 사용하는 호스트 기기로부터의 기입 요구에 부합하여, 이미 데이터가 기입되어 있는 제1 블록 내의 임의의 영역(예를 들면, 페이지)의 데이터에 변경을 가하는 경우를 생각한다. 이 경우, 컨트롤러는 데이터가 소거 완료된 제2 블록을 검색한 후, 제1 블록의 선두 페이지로부터 변경 대상으로 되어 있는 페이지의 직전의 페이지까지의 데이터를 제2 블록에 선두 페이지로부터 순서대로 기입하고(카피하고), 계속해서, 변경 대상으로 되어 있는 페이지의 데이터를 제2 블록에 기입하고, 마지막으로, 변경 대상으로 되어 있는 페이지의 직후의 페이지로부터 최종 페이지까지의 데이터를 제2 블록에 카피하도록 하고 있다.
또한, 일본 특개2002-133877호 공보에는, 고속의 블록 소거를 가능하게 하는 NAND형 EEPROM이 개시되어 있다.
그런데 종래의 기입 방법에 따르면, 임의의 블록 내의 선두 페이지에 대하여 기입을 행한 후, 다른 블록 내의 최종 페이지에 대하여 기입을 행하도록 하는 경우, 2개의 기입의 시간 간격이 가장 커진다. 이와 같은 경우, 메모리 카드의 사양 등에 시간적 제약이 정해져 있으면 그 시간적 제약을 만족시키지 않는 사태가 발생하여, 동작에 문제점이 발생하게 될 우려가 있다. 상기 문헌에서도, 마찬가지의 문제가 발생할 수 있다.
이러한 것으로부터, 기입에 관한 시간적 제약을 충족하는 동작을 실현하는 것이 기대되고 있다.
본 발명의 실시 형태에 따른 반도체 장치는, 소정의 소거 블록 사이즈를 갖는 반도체 메모리와, 상기 반도체 메모리에서 이미 데이터가 기입되어 있는 제1 블록 내의 임의의 영역에 대하여 데이터 기입 요구가 발생한 경우, 상기 영역의 어드레스의 값에 관계없이, 데이터가 소거 완료인 제2 블록의 선두 영역에 상기 기입 요구의 데이터를 기입하는 컨트롤러를 구비한다.
또한, 본 발명의 실시 형태에 따른 메모리 카드는, 소정의 소거 블록 사이즈를 갖는 불휘발성 반도체 메모리와, 상기 불휘발성 반도체 메모리에서 이미 데이터가 기입되어 있는 제1 블록 내의 임의의 영역에 대하여 데이터 기입 요구가 발생한 경우, 상기 영역의 어드레스의 값에 관계없이, 데이터가 소거 완료인 제2 블록의 선두 영역에 상기 기입 요구의 데이터를 기입하는 컨트롤러를 구비한다.
또한, 본 발명의 실시 형태에 따른 반도체 메모리의 제어 방법은, 소정의 소거 블록 사이즈를 갖는 반도체 메모리의 제어 방법에서, 상기 반도체 메모리에서 이미 데이터가 기입되어 있는 제1 블록 내의 임의의 영역에 대한 데이터 기입 요구를 받고, 상기 영역의 어드레스의 값에 관계없이, 데이터가 소거 완료인 제2 블록의 선두 영역에 상기 기입 요구의 데이터를 기입한다.
이하, 도면을 참조하여, 본 발명의 일 실시 형태에 대해 설명한다.
도 1은 본 발명의 일 실시 형태에 따른 메모리 카드에 탑재되는 디바이스류 의 개략 구성을 도시하는 사시도이다.
본 실시 형태에 따른 메모리 카드(1)는, 도시한 바와 같이, PCB(Printed Circuit Board) 기판(2) 상에 NAND형 플래시 메모리(3) 및 컨트롤러(4)가 배치된 것으로 되어 있다. 상기 컨트롤러(4)에는, CPU(Central Processing Unit)(8)나 ROM(Read-0nly Memory)(9) 등의 기능 블록이 탑재되어 있다. 각 디바이스의 상세에 대해서는 나중에 설명한다. 또한, NAND형 플래시 메모리(3)는, 1개의 메모리 셀에 1 비트의 정보를 기억하는 2치 메모리이어도 되고, 1개의 메모리 셀에 1 비트보다 많은 정보(예를 들면 2 비트)를 기억하는 다치 메모리이어도 된다. 또한, 도 1에서는, PCB 기판(2) 상에 NAND형 플래시 메모리(3) 및 컨트롤러(4)가 배치된 경우를 도시하였지만, NAND형 플래시 메모리(3) 및 컨트롤러(4)는, 동일한 LSI(Large-scale Integration) 기판 상에 배치되어도 된다.
이하의 설명에서 사용하는 용어 "논리 블록 어드레스", "물리 블록 어드레스"는, 각각, 블록 자체의 논리 어드레스, 물리 어드레스를 의미하는 것이다. 또한, "논리 어드레스", "물리 어드레스"는, 주로, 블록 자체의 논리 어드레스, 물리 어드레스를 의미하는 것이기는 하지만, 블록 단위보다도 미세한 분해능의 단위에 상당하는 어드레스인 경우도 있을 수 있음을 나타내는 것이다.
도 2는, 호스트와 상기 메모리 카드를 포함하는 구성을 도시하는 블록도이다. 또한, 도 1과 공통되는 요소에는 동일한 부호를 붙이고 있다.
호스트 기기(이하, 호스트라 한다)(20)는, 접속되는 메모리 카드에 대하여 액세스를 행하기 위한 하드웨어 및 소프트웨어(시스템)를 구비하고 있다. 이 호스 트(20)는, 메모리 카드 내부의 물리 상태(어느 물리 블록 어드레스에, 몇 번째의 논리 섹터 어드레스 데이터가 포함되어 있는지, 혹은, 어느 블록이 소거 상태인지)를 관리하고, 메모리 카드 내의 플래시 메모리를 직접 제어하는 것으로서 구축되어 있다.
또한, 호스트(20)는, 소거 시의 소거 블록 사이즈가 16kByte로 정해져 있는 NAND형 플래시 메모리를 사용하는 것을 전제로 하여, 16kByte 단위로 논리·물리 어드레스의 할당을 행하고, 대부분의 경우, 논리 어드레스 16kByte분에 관하여 시켄셜하게 라이트 액세스 혹은 리드 액세스를 행한다(해당하는 커맨드를 발행한다).
메모리 카드(1)는, 호스트(20)에 접속되었을 때에 전원 공급을 받아 동작하고, 호스트(20)로부터의 액세스에 따른 처리를 행한다. 이 메모리 카드(1)는, 상기한 바와 같이 NAND형 플래시 메모리(3) 및 컨트롤러(4)를 갖는다.
NAND형 플래시 메모리(3)는, 소거 시의 소거 블록 사이즈(소거 단위의 블록 사이즈)가 256kByte로 정해져 있는 불휘발성 메모리이고, 예를 들면 16kByte 단위로 데이터의 기입·판독을 행하도록 되어 있다. 이 NAND형 플래시 메모리(3)는, 예를 들면 0.09㎛ 프로세스 기술을 이용하여 제작된다. 즉, NAND형 플래시 메모리(3)의 디자인 룰은, 0.1㎛ 미만으로 되어 있다.
컨트롤러(4)는, 상기한 CPU(8) 및 ROM(9) 이외에, 메모리 인터페이스부(5), 호스트 인터페이스부(6), 버퍼(7), 및 RAM(Random Access Memory)(10)을 탑재하고 있다.
메모리 인터페이스부(5)는, 컨트롤러(4)와 NAND형 플래시 메모리(3) 사이의 인터페이스 처리를 행하는 것이다. 호스트 인터페이스부(6)는, 컨트롤러(4)와 호스트(20) 사이의 인터페이스 처리를 행하는 것이다.
버퍼(7)는, 호스트(20)로부터 보내져 오는 데이터를 NAND형 플래시 메모리(3)에 기입할 때에, 일정량의 데이터(예를 들면 1 페이지분)를 일시적으로 기억하거나, NAND형 플래시 메모리(3)로부터 판독되는 데이터를 호스트(20)로 송출할 때에, 일정량의 데이터를 일시적으로 기억하거나 하는 것이다.
CPU(8)는, 메모리 카드(1) 전체의 동작을 담당하는 것이다. 이 CPU(8)는, 예를 들면, 메모리 카드(1)가 전원 공급을 받았을 때에, ROM(9) 안에 저장되어 있는 펌웨어(제어 프로그램)를 RAM(10) 상에 로드하여 소정의 처리를 실행함으로써, 각종의 테이블을 RAM(10) 상에서 작성하거나, 호스트(20)로부터 기입 커맨드, 판독 커맨드, 소거 커맨드를 받아 NAND형 플래시 메모리(3) 상의 상기 영역에 대한 액세스를 실행하거나, 버퍼(7)를 통한 데이터 전송 처리를 제어하기도 한다.
ROM(9)은, CPU(8)에 의해 사용되는 제어 프로그램 등을 저장하는 메모리이다. RAM(10)은, CPU(8)의 작업 에리어로서 사용되고, 제어 프로그램이나 각종의 테이블을 기억하는 메모리이다.
도 3은, 호스트(20)가 상정하고 있는 플래시 메모리와, 실제로 사용하는 플래시 메모리(즉, 메모리 카드(1) 내의 NAND형 플래시 메모리(3))의, 데이터 배치의 차이를 도시하고 있다.
호스트(20)가 상정하고 있는 플래시 메모리에서는, 각 페이지는 528Byte(512Byte분의 데이터 기억부+16Byte분의 용장부)를 가지고 있고, 32 페이지 분이 하나의 소거 단위(즉, 16kByte+0.5kByte(여기서, k는 1024))로 된다. 이하에서는, 이와 같은 플래시 메모리를 탑재한 카드를, "소블록 카드"라고 하는 경우가 있다.
한편, 실제로 사용하는 플래시 메모리(3)에서는, 각 페이지는 2112Byte(512Byte분의 데이터 기억부×4+10Byte분의 용장부×4+24Byte분의 관리 데이터 기억부)를 가지고 있고, 128 페이지분이 1개의 소거 단위(즉, 256kByte+8kByte)로 된다. 이하에서는, 이와 같은 플래시 메모리(3)를 탑재한 카드를, "대블록 카드"라고 하는 경우가 있다. 또한, 이하의 설명에서는, 편의상, 소블록 카드의 소거 단위를 16kByte라고 하고, 대블록 카드의 소거 단위를 256kByte라고 한다.
또한, 호스트(20)가 상정하고 있는 플래시 메모리와, 실제로 사용하는 플래시 메모리(3)는, 각각, 플래시 메모리에의 데이터 입출력을 행하기 위한 페이지 버퍼를 구비하고 있다. 호스트(20)가 상정하고 있는 플래시 메모리에 구비되는 페이지 버퍼의 기억 용량은, 528Byte(512Byte+16Byte)이다. 한편, 실제로 사용하는 플래시 메모리(3)에 구비되는 페이지 버퍼의 기억 용량은, 2112Byte(2048Byte+64 Byte)이다. 데이터 기입 등일 때에는, 각 페이지 버퍼는, 플래시 메모리에 대한 데이터 입출력 처리를, 자신의 기억 용량에 상당하는 1 페이지분의 단위로 실행한다.
도 3의 예에서는, 실제로 사용하는 플래시 메모리(3)의 소거 블록 사이즈가, 호스트(20)가 상정하고 있는 플래시 메모리의 소거 블록 사이즈의 16배인 경우를 도시했지만, 본 발명은 이것에 한정되는 것이 아니고, 대략 정수배이면 다른 배율로 되도록 구성하는 것도 가능하다.
대블록 카드를 실용상 유효한 제품으로 하기 위해서는, 도 3에 도시한 플래시 메모리(3)의 기억 용량은 1G 비트 이상인 것이 바람직하다. 플래시 메모리(3)의 기억 용량이 예를 들면 1G 비트인 경우, 256kByte 블록(소거 단위)의 수는, 512개로 된다.
또한, 도 3에서는 소거 단위가 256kByte 블록인 경우를 예시하고 있지만, 소거 단위가 예를 들면 128kByte 블록으로 되도록 구축하는 것도 실용상 유효하다. 이 경우, 128kByte 블록의 수는, 1024개로 된다.
또한, 도 3의 예에서는, 실제로 사용하는 플래시 메모리(3)의 소거 블록 사이즈가, 호스트(20)가 상정하고 있는 플래시 메모리의 소거 블록 사이즈보다도 큰 경우를 도시했지만, 본 발명은 이것에 한정되는 것이 아니고, 실제로 사용하는 플래시 메모리(3)의 소거 블록 사이즈가, 호스트(20)가 상정하고 있는 플래시 메모리의 소거 블록 사이즈보다도 작은 것으로 하여 구성하는 것도 가능하다.
도 4는, 호스트(20)측 시스템 및 메모리 카드(1)(대블록 카드)의 각 커뮤니케이션 계층을 도시하는 도면이다.
호스트(20)측의 시스템은, 어플리케이션 소프트(21), 파일 시스템(22), 드라이버 소프트(23), 및 소블록 카드 물리 액세스층(24)을 갖는다. 한편, 메모리 카드(1)(대블록 카드)는, 소블록 카드 물리 액세스층(11), 소블록 카드 물리·소블록 카드 논리 변환층(12), 소블록 카드 논리·대블록 카드 물리 변환층(13), 및 대블 록 카드 물리 액세스층(14)을 갖는다.
예를 들면, 호스트(20)측의 어플리케이션 소프트(21)가 파일의 기입을 파일 시스템(22)에 요구하면, 파일 시스템(22)은, 소블록 카드의 논리 블록 어드레스에 기초하여 시켄셜한 섹터 기입을 드라이버 소프트(23)에 지시한다. 이것을 받아, 드라이버 소프트(23)는, 소블록 카드의 논리 블록 어드레스에 기초하는 16kByte 블록마다의 시켄셜한 기입을 실현함에 있어서, 논리·물리 블록 변환을 행하고, 소블록 카드 물리 액세스층(24)을 통하여, 소블록 카드의 물리 블록 어드레스에 의한 랜덤한 기입 커맨드를 대블록 카드에 대하여 발행하고, 데이터 전송을 행한다.
또한, 라이트 액세스에서는, 소블록 카드의 경우도 대블록 카드의 경우도, 프로토콜 상, (1)커맨드, (2)페이지 어드레스(로우 어드레스), (3)컬럼 어드레스, (4)데이터, (5)프로그램 확인 커맨드 라는 순서로 정보의 송수신이 행해지는 것이 전제로 되어 있다.
대블록 카드측에서의 소블록 카드 물리 액세스층(11)은, 호스트(20)로부터 소블록 카드의 물리 블록 어드레스에 의한 기입 커맨드를 받으면, 물리 블록 어드레스나 데이터 이외에, 이것에 부수하는 부수 데이터에 포함되어 있는 논리 블록 어드레스를 취득한다.
소블록 카드 물리·소블록 카드 논리 변환층(12)은, 데이터 판독 등일 때에 소블록 카드의 물리 블록 어드레스(16kByte 블록분에 대응)로부터 소블록 카드의 논리 블록 어드레스(16kByte 블록분에 대응)에의 변환 처리를 행하기 위한 제1 테이블을 가지고 있다. 변환층(13)은, 소블록 카드 물리 액세스층(11)이 기입 커맨드를 받아 소블록 카드의 논리 블록 어드레스를 취득했을 때에는 이것을 상기 제1 테이블에 반영시킨다. 물리 블록 어드레스에 관해서도, 상기 제1 테이블에 반영시킨다.
소블록 카드 논리·대블록 카드 물리 변환층(13)은, 데이터 판독 등일 때에 소블록 카드의 논리 블록 어드레스(시켄셜한 16kByte 블록×16 개분에 대응)로부터 대블록 카드의 물리 블록 어드레스(256kByte 물리 블록분에 대응)에의 변환 처리를 행하기 위한 제2 테이블을 가지고 있다. 변환층(12)은, 소블록 카드 물리 액세스층(11)이 기입 커맨드를 받아 소블록 카드의 논리 블록 어드레스를 취득했을 때에는 이것을 상기 제2 테이블에 반영시킨다.
대블록 카드 물리 액세스층(14)은, 소블록 카드 물리 액세스층(11)이 기입 커맨드를 받아 취득한 소블록 카드의 논리 블록 어드레스에 기초하여, 플래시 메모리(3) 내부의 데이터 배치를 결정하고, 256kByte 물리 블록 내에서 2kByte(1 페이지) 단위로 시켄셜하게 16kByte분의 데이터를 기입한다. 또한, 대블록 카드 물리 액세스층(14)은 취득한 소블록 카드의 논리 블록 어드레스나 물리 블록 어드레스를 플래시 메모리(3) 내부에서의 관리 데이터 영역 내의 소정의 영역에 저장한다.
이와 같이 호스트(20)는 소블록 카드의 물리 블록 어드레스에 기초하는 커맨드를 발행하기 때문에, 대블록 카드측에서는, 소블록 카드의 물리 블록 어드레스에 대응하는 데이터가 어느 256kByte 물리 블록 안에 존재하는 것인지를 알 수 있도록 관리한다. 구체적으로 설명하면, 16kByte 블록마다 소블록 카드의 논리·물리 블록 어드레스의 대응 관계를 관리함과 함께, 소블록 카드가 연속한 256kByte 블록분 의 논리 블록 어드레스에 대응하는 데이터가 대블록 카드 내의 어느 256kByte 물리 블록에 저장되어 있는지를 알 수 있도록 관리한다.
도 5a 및 도 5b는, 호스트(20)측으로부터 보내져 오는 커맨드의 포맷을 도시하는 도면이다.
호스트(20)측으로부터 보내져 오는 커맨드의 패킷은, 도 5a에 도시되는 바와 같이, 커맨드 종별 정보(여기서는 "기입"), 어드레스(물리 블록 어드레스), 데이터(콘텐츠 등의 실 데이터 및 부수 데이터(512Byte+16Byte))라는 각종 정보를 포함하고 있다.
이와 같은 포맷의 패킷에서는, 도 5b에 도시되는 바와 같이, 부수 데이터 16Byte 안의 소정의 위치에 소블록 카드의 "논리 블록 어드레스"(액세스 대상으로 되는 16Byte 블록에 대응하는 논리 어드레스)가 배치되어 있다. 대블록 카드는, 커맨드 종별 정보, 물리 블록 어드레스, 데이터를 취득 하는 것 이외에, 특히 상기 "논리 블록 어드레스"를 취득한다. 또한, 이 "논리 블록 어드레스"는, 판독 커맨드의 경우에는 부가되지 않는다.
도 6은, 호스트(20)측이 상정하고 있는 블록 기입 조작과, 메모리 카드(1)(대블록 카드)측이 실제로 행하는 기입 처리를, 대비하여 도시하는 도면이다.
호스트(20)측(동 도면의 좌측)에서는, 소블록 카드의 논리 어드레스에 기초하는 16kByte 블록 단위의 시켄셜한 기입 조작의 발생 시에, 소블록 카드의 물리 블록 어드레스에 의한 16kByte 블록 단위의 랜덤한 기입 조작을 행한다.
한편, 대블록 카드측(동 도면의 우측)에서는, 호스트(20)측으로부터 기입 커 맨드를 받은 경우, 소블록 카드의 논리 블록 어드레스에 기초하는 16kByte 블록 단위의 데이터를 플래시 메모리(3) 내에 시켄셜하게 기입한다.
상기한 바와 같이, 호스트(20)는, 소블록의 물리 어드레스에 의한 16Byte 단위의 랜덤한 기입 조작을 행한다. 이와 같은 랜덤한 기입 조작에서는, 일반적으로, 대블록(256kByte)의 일부만을 재기입하기 위한 처리가 다발한다. NAND형 플래시 메모리에서는 블록 단위로만 소거를 할 수 있기 때문에, 블록의 일부만을 재기입하는 경우에는, 재기입할 신 데이터를 소거 완료한 신 블록에 기입하고, 신 데이터에 재기입되는 구 데이터를 포함하는 구 블록으로부터, 재기입되지 않는 남은 데이터를 신 블록에 카피할 필요가 있다. 이와 같이, 블록의 일부만을 재기입하는 처리는, 재기입하지 않는 데이터의 카피 동작(이하, "연루 데이터 카피"라고 함)을 수반하기 때문에, 블록의 일부만을 재기입하는 처리가 다발하면, 오버헤드가 매우 증대하게 된다. 그래서, 본 실시 형태에서는, 호스트(20)측으로부터 얻어지는 논리 어드레스의 순서에 따라, 대블록 카드측에서 물리 어드레스를 재차 할당함으로써, 블록의 일부만의 기입의 발생을 저감하고, 오버헤드의 증대를 억제하고 있다.
도 7은, 대블록 카드 내의 NAND형 플래시 메모리(3)의 블록 포맷(소거 단위인 256kByte 물리 블록분)을 도시하는 도면이다.
대블록 카드에서는, 소거 단위인 256kByte 물리 블록 안에, 호스트(20)측이 관리하는 단위인 16kByte에 상당하는 데이터를 기입하기 위한 블록(이하, 호스트 관리 블록이라고 한다)이 16개분 포함되어 있다. 데이터 기입 시에는, 소블록 카드의 논리 블록 어드레스의 순으로 개개의 데이터가 배치된다.
각 호스트 관리 블록은, 8개의 페이지로 구성된다. 각 페이지는, 512Byte 데이터 영역을 4개분 포함함과 함께, 각 데이터 영역에 대응하는 10ByteECC 영역을 포함하고 있다. 또한, 페이지 중의 최후의 512Byte 데이터 영역(4번째의 512Byte 데이터 영역) 후에는, 24Byte 관리 데이터 영역도 마련된다. 이 때문에, 페이지 중의 최후의 10ByteECC 영역은, 4번째의 512Byte 데이터 영역과 24Byte 관리 데이터 영역의 양방에 대응하는 구성으로 되어 있다.
소거 단위인 256kByte 물리 블록에 포함되는 128개의 24Byte 관리 데이터 영역 중, 예를 들면 최후의 24Byte 관리 데이터 영역에는, 호스트(20)측으로부터 보내져 오는 커맨드로부터 취득된 물리 블록 어드레스에 상당하는 어드레스 정보(이하, "호스트 관리 물리 어드레스"라고 한다) 및 논리 블록 어드레스에 상당하는 어드레스 정보(이하, "호스트 관리 논리 블록 어드레스")가 통합하여 저장되도록 되어 있다.
각 256kByte 블록 내에 저장된 "호스트 관리 물리 어드레스" 및 "호스트 관리 논리 블록 어드레스"는, 도 4에서 설명한 소블록 카드 물리·소블록 카드 논리 변환층(12)이 갖는 제1 테이블과, 소블록 카드 논리·대블록 카드 물리 변환층(13)이 갖는 제2 테이블을 작성할 때에 사용된다.
도 8은, 본 실시 형태의 메모리 카드(1)에 대하여 호스트(20)가 기입을 행할 때의, 메모리 카드(1)의 I/O핀과 R/B핀의 신호의 예를 도시하는 타이밍차트이다.
호스트(20)는, 메모리 카드는 16kByte의 소거 블록 사이즈를 갖는 불휘발성 메모리라고 가정하여 메모리 카드를 제어하고 있다. 예를 들면, 메모리 카드에 대한 기입 시에는, 호스트(20)는, 시리얼 데이터 인풋 커맨드 80H(H는 16진을 나타낸다)를 I/O핀1∼8에 입력한다. 다음으로, 호스트(20)는, 컬럼 어드레스 C/A 및 페이지 어드레스 P/A를, I/O핀1∼8에 입력한다. 또한, 여기서 컬럼 어드레스 C/A 및 페이지 어드레스 P/A는, 호스트(20)가 메모리 카드(1)에 대하여 상정하고 있는 가상 물리 어드레스 공간에서의 컬럼 어드레스 및 페이지 어드레스이다.
또한, 호스트(20)는, 기입 데이터를, L/O핀1∼8의 각각에 대하여, 528회 입력한다. 구체적으로 설명하면, 호스트(20)는 라이트 인에이블 핀에의 입력 신호를 528회 클럭킹하면서, 각각의 I/O핀에 대하여 528 비트(모든 I/O핀 합계로 528 바이트)의 데이터를 순차적으로 시프트인한다. 데이터의 시프트인이 완료하면, 호스트(20)는, 프로그램 커맨드 10H를 I/O핀1∼8에 입력한다. 이것에 응답하여 메모리 카드는, 그 R/B핀에 로우 레벨의 신호를 출력하고, 메모리 카드가 비지 상태임을 나타낸다. 그 후, 소정 기간 후에 R/B핀에 하이 레벨의 신호를 출력함으로써 메모리 카드가 레디 상태로 되었음을 나타낸다.
그러나, 도 8에서의 R/B핀의 상태는, 어디까지나 호스트(20)에 대하여 메모리 카드(1)가 어떠한 상태인지를 나타내는 것이다. 즉, 도 8에서, 프로그램 커맨드 10H의 입력에 응답하여, R/B핀이 비지 상태(즉 로우 레벨을 출력)를 나타냈다고 해도, 내부에서 NAND형 플래시 메모리(3)에 대한 기입 동작(즉, 페이지 버퍼로부터 메모리셀 어레이에의 데이터 전송)이 실제로 행해지고 있다고는 할 수 없다. 또한, R/B핀이 레디 상태로 복귀했다고 해도, 내부에서 NAND형 플래시 메모리(3)에 대한 기입 동작이 실제로 완료했다고는 할 수 없다.
도 9는, 본 실시 형태의 메모리 카드(1) 내의 NAND형 플래시 메모리(3)에 대하여, 메모리 카드(1) 내의 컨트롤러(4)가 기입을 행할 때의, NAND형 플래시 메모리(3)의 I/O핀과 R/B핀의 신호의 예를 도시하는 타이밍차트이다.
컨트롤러(4)는, NAND형 플래시 메모리(3)는 256kByte의 소거 블록 사이즈를 갖는 불휘발성 메모리라고 인식하고 있다. 예를 들면, NAND형 플래시 메모리(3)에 대한 기입 시에는, 컨트롤러(4)는, 시리얼 데이터 인풋 커맨드 80H(H는 16진을 나타낸다)를 I/O핀1∼8에 입력한다. 다음으로, 컨트롤러(4)는, 컬럼 어드레스 C/A 및 페이지 어드레스 P/A를, I/O핀1∼8에 입력한다. 또한, 여기서 컬럼 어드레스 C/A 및 페이지 어드레스 P/A는, 컨트롤러(4)가 NAND형 플래시 메모리(3)에 대하여 상정하고 있는 실물리 어드레스 공간에서의 컬럼 어드레스 및 페이지 어드레스이다. 따라서, 도 8에서의 컬럼 어드레스 C/A 및 페이지 어드레스 P/A와는 반드시 일치하지는 않는다.
또한, 컨트롤러(4)는, 기입 데이터를, I/O핀1∼8의 각각에 대하여, 2112회 입력한다. 구체적으로 설명하면, 컨트롤러(4)는, 라이트 인에이블 핀에의 입력 신호를 2112회 클럭킹하면서, 각각의 I/O핀에 대하여 2112 비트(모든 I/O핀 합계로 2112 바이트)의 데이터를 순차적으로 시프트인한다. 데이터의 시프트인이 완료하면, 컨트롤러(4)는, 프로그램 커맨드 10H를 I/O핀1∼8에 입력한다. 이것에 응답하여 메모리 카드는, 그 R/B핀에 로우 레벨의 신호를 출력하고, 메모리 카드가 비지 상태임을 나타낸다. 그 후, 소정 기간 후에 R/B핀에 하이 레벨의 신호를 출력함으 로써 메모리 카드가 레디 상태로 되었음을 나타낸다. 도 9에서의 R/B핀의 상태는, 컨트롤러(4)에 대하여 NAND형 플래시 메모리(3)가 실제로 어떠한 상태인지를 나타내는 것이다.
또한, 상기 도 8 및 도 9에서는, 컬럼 어드레스 C/A 및 페이지 어드레스 P/A의 입력을 각각 1개의 사이클로 도시하고 있지만, 메모리 카드(1)의 용량 또는 NAND형 플래시 메모리(3)의 용량에 따라, 적절하게 2 사이클 이상으로 되는 경우도 있다.
상기 도 8 및 도 9로부터 알 수 있듯이, 메모리 카드가 비지 상태로 있을 수 있는 시간에는 제약이 있기 때문에, 그 사이에 데이터 기입을 행하고, 소정 기간 후에는 메모리 카드가 레디 상태로 되었음을 호스트측에 나타내야 한다. 또한, NAND형 플래시 메모리에서는, 임의의 물리 블록 내의 각 페이지에 대하여 데이터를 기입할 때에도, 기입 순서에 관해 제약이 있다. 즉, NAND형 플래시 메모리는, 물리 블록 내의 선두 페이지(도 10에 예시한 선두 워드선 WL0 상의 셀에 상당)로부터 순서대로 데이터를 기입해야 하는 구조로 되어 있다. 본 실시 형태에서는, 후술하는 방법에 의해, 상기한 개개의 제약을 만족시키면서 효율적인 데이터 기입을 실현한다.
다음으로, 도 11 및 도 12를 참조하여, 본 실시 형태에 의한 기본적인 데이터 기입 방법을, 종래 기술에 의한 데이터 기입 방법과 대비시켜서 설명한다.
여기서는, NAND형 플래시 메모리(3) 상에서, 데이터가 이미 기입되어 있는 블록 A 내의 LBA8로 표현되는 9번째의 영역(즉, 도 7에서의 "호스트 관리 블록8"(페이지 8개분으로 구성되는 영역))에 대하여 데이터 기입 요구가 발생한 경우의, 데이터 소거 완료의 블록 B에의 기입 동작을 예로 든다. 또한, 블록 A 내에서는, 상기 9번째의 영역 이외의 영역에 대한 데이터 기입 요구는 발생하지 않은 것으로 한다. 이 경우의 기입 동작은, 본 실시 형태에서는 컨트롤러(4)(도 1, 도 2를 참조)에 의해 제어되고, 구체적으로는 ROM(9)으로부터 RAM(10) 상에 로드된 제어 프로그램을 실행하는 CPU(8)나 메모리 인터페이스부(5)를 통해 제어된다.
도 11에 도시되는 종래 기술에 의한 데이터 기입 방법에서는, 블록 A 내의 9번째의 영역(LBA8)에 대하여 데이터 기입 요구가 발생한 경우, 먼저, 블록 A 내의 1∼8번째의 영역(LBA0∼LBA7)의 데이터를, 블록 B 내의 1∼8번째의 영역에 카피한다(단계 S11).
계속해서, 블록 A 내의 9번째의 영역(LBA8)에 대하여 기입이 요구되고 있는 신 데이터를, 블록 B 내의 9번째의 영역에 기입한다(단계 S12).
마지막으로, 블록 A 내의 10∼16번째의 영역(LBA9∼LBA15)의 데이터를, 블록 B 내의 10∼16번째의 영역에 카피한다(단계 S13).
한편, 도 12에 도시되는 본 실시 형태에 의한 데이터 기입 방법에서는, 블록 A 내의 9번째의 영역(LBA8)에 대하여 데이터 기입 요구가 발생한 경우, 먼저, 상기 9번째의 영역(LBA8)에 대하여 기입이 요구되고 있는 신 데이터를, 블록 B 내의 1번째(선두)의 영역에 기입한다(단계 S21). 이 때, 기입 요구의 대상으로 되어 있는 영역의 어드레스(예를 들면 블록 어드레스 혹은 페이지 어드레스)의 값 n에 관계없이, 기입이 요구되고 있는 신 데이터를 블록 B의 선두 영역에 기입함과 함께, 그 어드레스의 값 n을 공통되는 페이지 상의 용장부에 기입한다.
계속해서, 블록 A 내의 10∼16번째의 영역(LBA9∼LBA15)의 데이터를, 블록 B 내의 선두 영역에 후속하는 2∼8번째의 영역에 카피한다(단계 S22). 이 때, 어드레스의 값 n+1∼m도, 공통되는 페이지 상의 용장부에 각각 기입한다.
마지막으로, 블록 A 내의 1∼8번째의 영역(LBA0∼LBA7)의 데이터를, 블록 B 내의 9∼16번째의 영역에 카피한다(단계 S23). 이 때, 어드레스의 값 0∼n-1도, 공통되는 페이지 상의 용장부에 각각 기입한다.
또한, 블록 B에의 데이터 기입이 종료한 후에는, 블록 A 상의 데이터를 소거한다. 이 소거는, 메모리 카드가 레디 상태로 되었음을 나타낸 후에 행하도록 해도 된다.
상기 단계 S21∼S23에 나타낸 처리를, 데이터 기입 요구가 발생할 때마다 행함으로써, 임의의 기입으로부터 다음의 기입까지의 시간 간격의 증대를 방지할 수 있고, 종래 기술의 부분에서 설명한 시간적 제약의 문제를 해결할 수 있다. 또한, 각 물리 블록 내의 선두 영역으로부터 순서대로 데이터를 기입해야 한다는 제약을 만족시키는 것으로 되어 있다.
한편, 상기 단계 S21∼S23에 도시한 처리를 행한 후, 블록 B 내의 임의의 영역에 대하여 데이터 판독 요구가 발생한 경우에는, 컨트롤러(4)는, 블록 B 내의 선두 영역에 기입되어 있는 어드레스 n에 기초하여, 데이터 판독 대상의 데이터가 기입되어 있는 위치를 구할 수 있다. 이 경우, 어드레스 n과 판독 요구의 어드레스로부터 판독 요구되어 있는 데이터가 블록 B 내의 어느 어드레스에 해당하는지를 산출하면 된다.
다음으로, 도 13 및 도 14를 참조하여, 본 실시 형태에 의한 데이터 기입 방법과 종래 기술에 의한 데이터 기입 방법의 차이가 현저히 나타나는 일례에 대해 설명한다.
여기서는, NAND형 플래시 메모리(3) 상에서, 데이터가 이미 기입되어 있는 블록 C 내의 LBA0로 표현된 선두 영역에 대하여 데이터 기입 요구가 발생하고, 또한, 블록 D 내의 LBA31로 표현된 최종 영역에 대하여 데이터 기입 요구가 발생한 경우의, 데이터 소거 완료의 블록 E 및 블록 F에의 기입 동작을 예로 든다.
도 13에 도시되는 종래 기술에 의한 데이터 기입 방법에서는, 먼저, 블록 C 내의 1번째의 영역(LBA0)에 대하여 기입이 요구되고 있는 신 데이터를, 블록 E 내의 1번째의 영역에 기입한다(단계 S31).
계속해서, 블록 C 내의 2∼16번째의 영역(LBA1∼LBA15)의 데이터를, 블록 E 내의 2∼16번째의 영역에 카피한다(단계 S32).
계속해서, 블록 D 내의 1∼15번째의 영역(LBA16∼LBA30)의 데이터를, 블록 F 내의 1∼15번째의 영역에 카피한다(단계 S33).
마지막으로, 블록 D 내의 32번째의 영역(LBA31)에 대하여 기입이 요구되고 있는 신 데이터를, 블록 F 내의 32번째의 영역에 기입한다(단계 S34).
본 예에서는, 단계 S31의 기입으로부터 단계 S34의 기입까지의 시간 간격이 매우 크기 때문에, 종래 기술의 부분에서 설명했던 바와 같은 시간적 제약을 만족시킬 수 없게 될 우려가 있다.
한편, 도 14에 도시되는 본 실시 형태에 의한 데이터 기입 방법에서는, 먼저, 블록 C 내의 1번째의 영역(LBA0)에 대하여 기입이 요구되고 있는 신 데이터를, 블록 E 내의 1번째(선두)의 영역에 기입한다(단계 S41). 이 때, 기입 요구의 대상으로 되어 있는 영역의 어드레스의 값에 관계없이, 기입이 요구되고 있는 신 데이터를 블록 E의 선두 영역에 기입함과 함께, 그 어드레스의 값(여기서는 도시를 생략)을 공통되는 페이지 상의 용장부에 기입한다.
계속해서, 블록 C 내의 2∼16번째의 영역(LBA1∼LBA15)의 데이터를, 블록 E 내의 2∼16번째의 영역에 카피한다(단계 S42). 이 때, 해당하는 어드레스의 값(여기서는 도시를 생략)도, 공통되는 페이지 상의 용장부에 각각 기입한다.
다음으로, 블록 D 내의 16번째의 영역(LBA31)에 대하여 기입이 요구되고 있는 신 데이터를, 블록 F 내의 1번째(선두)의 영역에 기입한다(단계 S43). 이 때, 기입 요구의 대상으로 되어 있는 영역의 어드레스의 값에 관계없이, 기입이 요구되고 있는 신 데이터를 블록 F의 선두 영역에 기입함과 함께, 그 어드레스의 값(여기서는 도시를 생략)을 공통되는 페이지 상의 용장부에 기입한다.
마지막으로, 블록 D 내의 1∼15번째의 영역(LBA16∼LBA30)의 데이터를, 블록 F 내의 2∼16번째의 영역에 카피한다(단계 S44). 이 때, 해당하는 어드레스의 값(여기서는 도시를 생략)도, 공통되는 페이지 상의 용장부에 각각 기입한다.
또한, 블록 E에의 데이터 기입이 종료한 후에는, 블록 C 상의 데이터를 소거한다. 마찬가지로, 블록 F에의 데이터 기입이 종료한 후에는, 블록 D 상의 데이터를 소거한다. 이들의 소거는, 통합하여 한번에 행하도록 해도 된다. 또한, 이들 의 소거는, 메모리 카드가 레디 상태로 되었음을 나타낸 후에 행하도록 해도 된다.
이 도 14의 예로부터 알 수 있듯이, 도 13의 경우와 달리, 단계 S41의 기입으로부터 단계 S43의 기입까지의 시간 간격을 단축할 수 있기 때문에, 기입에 관한 시간적 제약을 만족할 수 있다.
또한, 위의 설명에서는, 단계 S41∼단계 S42∼단계 S43∼단계 44의 순서로 처리를 진행시키는 예를 설명했지만, 대신에, 단계 S41∼단계 S43∼단계 S42∼단계 44의 순서로 처리를 진행시키도록 해도 된다. 즉, 블록 E의 선두 영역에의 신 데이터의 기입을 행한 후, 블록 F의 선두 영역에의 신 데이터의 기입을 행하고, 그 후에 블록 E의 남은 영역에의 데이터 카피를 행하고, 마지막으로 블록 F의 남은 영역에의 데이터 카피를 행하도록 해도 된다. 이 경우도, 각 물리 블록 내의 선두 영역으로부터 순서대로 데이터를 기입해야 한다고 하는 제약을 만족시키고 있다.
또한, 상기 도 12 및 도 14의 데이터 기입 방법에서는, 대블록 카드를 대상으로 한 예를 도시했지만, 소블록 카드를 대상으로 실시하는 것도 가능하다. 이 경우, 도면 중의 각 LBA를 1개의 페이지로 간주하여 취급하면 된다.
이와 같이 본 실시 형태에 따르면, 임의의 기입으로부터 다음의 기입까지의 시간 간격을 단축할 수 있고, 메모리 카드의 사양 등에 정해져 있는 시간적 제약 등을 만족하는 기입 동작을 실현할 수 있다.
상기 실시 형태의 설명에서는, 실제로 사용하는 반도체 메모리에 대한 데이터 판독·기입의 제어(도 12 및 도 14에 도시한 처리의 제어를 포함함)를 컨트롤러(4)가 행하는 경우를 예로 들었지만, 대신에, 상기 제어를 호스트(20)측의 드라이버 소프트(23) 등이 행하는 것으로 하여 구축해도 된다. 이 경우, 호스트(20)가 상정하고 있는 반도체 메모리에서의 어드레스와 실시에 사용하는 반도체 메모리의 어드레스의 대응 관리 등에 대하여도, 호스트(20)측에서 행하는 것으로 하여 구축해도 된다.
또한, 상기 실시 형태의 설명에서는, 실제로 사용하는 플래시 메모리(3)의 소거 블록 사이즈가, 호스트(20)가 상정하고 있는 플래시 메모리의 소거 블록 사이즈보다도 큰 경우를 설명했지만, 물론, 실제로 사용하는 플래시 메모리(3)의 소거 블록 사이즈가, 호스트(20)가 상정하고 있는 플래시 메모리의 소거 블록 사이즈와 동일해도 된다.
또한, 상기 실시 형태의 설명에서는, 불휘발성 메모리로서 NAND형 플래시 메모리를 예로 들어 설명했지만, 불휘발성 메모리는 NAND형 플래시 메모리에 한정되지 않고, 다른 종류의 메모리를 적용해도 된다.
이상 상술한 바와 같이 본 발명에 따르면, 기입에 관한 시간적 제약을 만족하는 동작을 실현할 수 있다.

Claims (16)

  1. 소정의 소거 블록 사이즈를 갖는 반도체 메모리에서 이미 데이터가 기입되어 있는 제1 블록 내의 임의의 영역에 대하여 데이터 기입 요구가 발생한 경우, 상기 영역의 어드레스의 값에 관계없이, 데이터가 소거 완료인 제2 블록의 선두 영역에 상기 기입 요구의 데이터를 기입하는 컨트롤러를 구비하고,
    상기 컨트롤러는, 상기 제2 블록의 선두 영역에, 상기 기입 요구의 데이터와 함께 상기 어드레스를 기입하는 것을 특징으로 하는 반도체 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 컨트롤러는, 상기 제2 블록 내의 임의의 영역에 대하여 데이터 판독 요구가 발생한 경우, 상기 제2 블록 내의 상기 선두 영역에 기입되어 있는 상기 어드레스에 기초하여, 데이터 판독 대상의 데이터가 기입되어 있는 위치를 구하는 반도체 장치.
  4. 제1항에 있어서,
    상기 컨트롤러는, 상기 제1 블록 내의 다른 영역에 대하여 데이터 기입 요구가 없으면, 상기 기입 요구의 대상으로 된 영역의 데이터를 제외한 상기 제1 블록 내의 데이터를, 상기 제2 블록 내의 선두 영역 이외의 영역에 카피하는 반도체 장치.
  5. 소정의 소거 블록 사이즈를 갖는 불휘발성 반도체 메모리와,
    상기 불휘발성 반도체 메모리에서 이미 데이터가 기입되어 있는 제1 블록 내의 임의의 영역에 대하여 데이터 기입 요구가 발생한 경우, 상기 영역의 어드레스의 값에 관계없이, 데이터가 소거 완료인 제2 블록의 선두 영역에 상기 기입 요구의 데이터와 함께 상기 어드레스를 기입하는 컨트롤러
    를 구비하는 메모리 카드.
  6. 제5항에 있어서,
    상기 컨트롤러는,
    상기 컨트롤러의 동작을 위한 프로그램을 저장하는 ROM과,
    상기 ROM에 저장되어 있는 프로그램을 실행하는 CPU를 포함하는 메모리 카드.
  7. 제5항에 있어서,
    상기 불휘발성 반도체 메모리는, NAND형 플래시 메모리인 메모리 카드.
  8. 제5항에 있어서.
    상기 불휘발성 반도체 메모리의 디자인 룰은 0.1㎛ 미만인 메모리 카드.
  9. 제5항에 있어서,
    상기 불휘발성 반도체 메모리의 기억 용량은 1G 비트 이상인 메모리 카드.
  10. 제1 소거 블록 사이즈를 갖는 반도체 메모리와,
    상기 반도체 메모리에 대하여 액세스를 실행하는 컨트롤러를 구비하고,
    상기 컨트롤러는,
    상기 제1 소거 블록 사이즈를 갖는 반도체 메모리에서 이미 데이터가 기입되어 있는 제1 블록 내의 제2 소거 블록 사이즈에 상당하는 영역에 대하여 데이터 기입 요구가 발생한 경우, 상기 영역의 어드레스의 값에 관계없이, 데이터가 소거 완료인 제2 블록의 선두 영역에 상기 기입 요구의 데이터와 함께 상기 어드레스를 기입함으로써 상기 제1 블록과 상기 제2 블록과의 어드레스의 대응을 관리하는 반도체 장치.
  11. 제10항에 있어서,
    상기 컨트롤러는, 상기 제1 블록 내의 다른 영역에 대하여 데이터 기입 요구가 없으면, 상기 기입 요구의 대상으로 된 영역의 데이터를 제외한 상기 제1 블록 내의 데이터를, 상기 제2 블록에 기입된 데이터에 대하여 논리 블록 어드레스가 연속하도록 상기 제2 블록에 카피하는 반도체 장치.
  12. 소정의 소거 블록 사이즈를 갖는 반도체 메모리의 제어 방법으로서,
    상기 반도체 메모리에서 이미 데이터가 기입되어 있는 제1 블록 내의 임의의 영역에 대한 데이터 기입 요구를 받고,
    상기 영역의 어드레스의 값에 관계없이, 데이터가 소거 완료인 제2 블록의 선두 영역에 상기 기입 요구의 데이터와 함께 상기 어드레스를 기입하는 반도체 메모리의 제어 방법.
  13. 삭제
  14. 제12항에 있어서,
    상기 제2 블록 내의 임의의 영역에 대하여 데이터 판독 요구가 발생한 경우, 상기 제2 블록 내의 상기 선두 영역에 기입되어 있는 상기 어드레스에 기초하여, 데이터 판독 대상의 데이터가 기입되어 있는 위치를 구하는 반도체 메모리의 제어 방법.
  15. 제12항에 있어서,
    상기 제1 블록 내의 다른 영역에 대하여 데이터 기입 요구가 없으면, 상기 기입 요구의 대상으로 된 영역의 데이터를 제외한 상기 제1 블록 내의 데이터를, 상기 제2 블록 내의 선두 영역 이외의 영역에 카피하는 반도체 메모리의 제어 방법.
  16. 제1 소거 블록 사이즈를 갖는 반도체 메모리의 제어 방법으로서,
    상기 제1 소거 블록 사이즈를 갖는 반도체 메모리에서 이미 데이터가 기입되어 있는 제1 블록 내의 제2 소거 블록 사이즈에 상당하는 영역에 대하여 데이터 기입 요구가 발생한 경우, 상기 영역의 어드레스의 값에 관계없이, 데이터가 소거 완료인 제2 블록의 선두 영역에 상기 기입 요구의 데이터와 함께 상기 어드레스를 기입하기 위한 제어를 행함으로써, 상기 제1 블록과 상기 제2 블록의 대응을 관리하는 반도체 메모리의 제어 방법.
KR1020050044374A 2004-05-27 2005-05-26 메모리 카드, 반도체 장치, 및 반도체 메모리의 제어 방법 KR100687151B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00157541 2004-05-27
JP2004157541A JP4253272B2 (ja) 2004-05-27 2004-05-27 メモリカード、半導体装置、及び半導体メモリの制御方法

Publications (2)

Publication Number Publication Date
KR20060046181A KR20060046181A (ko) 2006-05-17
KR100687151B1 true KR100687151B1 (ko) 2007-02-27

Family

ID=35426729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050044374A KR100687151B1 (ko) 2004-05-27 2005-05-26 메모리 카드, 반도체 장치, 및 반도체 메모리의 제어 방법

Country Status (5)

Country Link
US (2) US7278001B2 (ko)
JP (1) JP4253272B2 (ko)
KR (1) KR100687151B1 (ko)
CN (1) CN1702776A (ko)
TW (1) TWI280585B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100784862B1 (ko) 2006-01-09 2007-12-14 삼성전자주식회사 더미 셀을 포함하는 플래시 메모리 장치
JP2007233838A (ja) * 2006-03-02 2007-09-13 Toshiba Corp メモリシステムの制御方法
JP2007249662A (ja) * 2006-03-16 2007-09-27 Toshiba Corp メモリカード及びメモリカードの制御方法
JP5002201B2 (ja) * 2006-06-30 2012-08-15 株式会社東芝 メモリシステム
KR100843135B1 (ko) * 2006-11-20 2008-07-02 삼성전자주식회사 비휘발성 메모리 관리 방법 및 장치
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
TW200935422A (en) 2008-02-05 2009-08-16 Phison Electronics Corp Flash memory data writing method and controller thereof
US8645617B2 (en) * 2008-12-09 2014-02-04 Rambus Inc. Memory device for concurrent and pipelined memory operations
CN101944386B (zh) * 2009-07-03 2013-11-13 群联电子股份有限公司 识别闪速存储器中错误数据的控制电路及存储系统与方法
CN101996140B (zh) * 2009-08-12 2013-08-21 群联电子股份有限公司 用于闪速存储器的数据写入方法及其控制电路与储存系统
TWI399643B (zh) * 2009-12-31 2013-06-21 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與資料寫入方法
TWI409633B (zh) * 2010-02-04 2013-09-21 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與資料寫入方法
JP5010723B2 (ja) * 2010-09-22 2012-08-29 株式会社東芝 半導体記憶制御装置
US10019198B2 (en) 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
US10031845B2 (en) * 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
JP2018092654A (ja) * 2018-02-20 2018-06-14 株式会社ニコン 電子機器
KR20200076403A (ko) * 2018-12-19 2020-06-29 에스케이하이닉스 주식회사 반도체 메모리 장치, 컨트롤러, 이들을 포함하는 저장 장치 및 그들의 동작 방법
CN114207822A (zh) * 2021-11-03 2022-03-18 长江存储科技有限责任公司 用于增强可靠性的三维存储器件和制造方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020092487A (ko) * 2001-06-04 2002-12-12 삼성전자 주식회사 플래시 메모리 관리방법
KR20030070119A (ko) * 2001-01-19 2003-08-27 쌘디스크 코포레이션 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및판독 작동
JP2004062328A (ja) 2002-07-25 2004-02-26 Renesas Technology Corp Nand型フラッシュメモリを搭載したフラッシュストレージメディア
JP2004133677A (ja) 2002-10-10 2004-04-30 Renesas Technology Corp 記憶装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
US6034897A (en) * 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
JP2002133877A (ja) 2001-09-03 2002-05-10 Toshiba Corp 不揮発性半導体記憶装置
US6678785B2 (en) 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US7107389B2 (en) 2002-08-29 2006-09-12 Matsushita Electric Industrial Co., Ltd. Semiconductor memory device and method for writing data into flash memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030070119A (ko) * 2001-01-19 2003-08-27 쌘디스크 코포레이션 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및판독 작동
KR20020092487A (ko) * 2001-06-04 2002-12-12 삼성전자 주식회사 플래시 메모리 관리방법
JP2004062328A (ja) 2002-07-25 2004-02-26 Renesas Technology Corp Nand型フラッシュメモリを搭載したフラッシュストレージメディア
JP2004133677A (ja) 2002-10-10 2004-04-30 Renesas Technology Corp 記憶装置

Also Published As

Publication number Publication date
TW200620305A (en) 2006-06-16
US7814264B2 (en) 2010-10-12
JP2005339231A (ja) 2005-12-08
JP4253272B2 (ja) 2009-04-08
CN1702776A (zh) 2005-11-30
US7278001B2 (en) 2007-10-02
KR20060046181A (ko) 2006-05-17
US20070300011A1 (en) 2007-12-27
US20050268026A1 (en) 2005-12-01
TWI280585B (en) 2007-05-01

Similar Documents

Publication Publication Date Title
KR100687151B1 (ko) 메모리 카드, 반도체 장치, 및 반도체 메모리의 제어 방법
KR100755111B1 (ko) 컨트롤러, 메모리 카드 및 그 제어 방법
JP3892851B2 (ja) メモリカード及び半導体装置
JP4751163B2 (ja) メモリシステム
TWI454906B (zh) 資料讀取方法、快閃記憶體控制器與儲存系統
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
WO2003085676A1 (fr) Dispositif de stockage non volatil
US7245539B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
TW201308081A (zh) 記憶體裝置
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
JP2007109197A (ja) 半導体集積回路装置およびアドレス変換テーブルの生成方法
CN106598479A (zh) 闪速存储器的故障安全擦除的方法和装置
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
JP2007011872A (ja) メモリカードとその制御方法
JP4256307B2 (ja) メモリカード
US20100085810A1 (en) Method of controlling memory system
TWI521346B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
TWI747532B (zh) 記憶體裝置
JP2009265839A (ja) 記憶装置
JP4498341B2 (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
FPAY Annual fee payment

Payment date: 20120130

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee