KR100884429B1 - Memory system with nonvolatile semiconductor memory - Google Patents

Memory system with nonvolatile semiconductor memory Download PDF

Info

Publication number
KR100884429B1
KR100884429B1 KR1020070064437A KR20070064437A KR100884429B1 KR 100884429 B1 KR100884429 B1 KR 100884429B1 KR 1020070064437 A KR1020070064437 A KR 1020070064437A KR 20070064437 A KR20070064437 A KR 20070064437A KR 100884429 B1 KR100884429 B1 KR 100884429B1
Authority
KR
South Korea
Prior art keywords
data
memory
write
row address
command
Prior art date
Application number
KR1020070064437A
Other languages
Korean (ko)
Other versions
KR20080002646A (en
Inventor
히데따까 쯔지
Original Assignee
가부시끼가이샤 도시바
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시끼가이샤 도시바 filed Critical 가부시끼가이샤 도시바
Publication of KR20080002646A publication Critical patent/KR20080002646A/en
Application granted granted Critical
Publication of KR100884429B1 publication Critical patent/KR100884429B1/en

Links

Images

Classifications

    • 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/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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
    • 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/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk

Abstract

본 발명은, 불휘발성 반도체 메모리(11)와 컨트롤러(12)를 구비한다. 불휘발성 반도체 메모리(11)는, 각각이 데이터를 유지 가능한 메모리 셀(MC)을 포함하는 복수의 메모리 블록(BLK0~BLKn)을 구비한다. 각각의 메모리 블록(BLK0~BLKn) 내의 데이터는 일괄하여 소거된다. 각각의 메모리 블록(BLK0~BLKn) 내에서, 데이터는, 복수의 메모리 셀(MC)의 집합인 페이지 단위로 일괄하여 기입된다. 컨트롤러(12)는, 불휘발성 반도체 메모리(11)에 대하여 기입 데이터 및 제1 로우 어드레스를 전송하고, 또한 전송한 상기 제1 로우 어드레스의 변경 명령과, 그 제1 로우 어드레스와는 상이한 제2 로우 어드레스를 발행한다. 불휘발성 반도체 메모리(11)는, 변경 명령이 발행되지 않을 때에는, 제1 로우 어드레스에 대응하는 페이지에 기입 데이터를 기입하고, 변경 명령이 발행되었을 때에는, 제2 로우 어드레스에 대응하는 페이지에 기입 데이터를 기입한다.The present invention includes a nonvolatile semiconductor memory 11 and a controller 12. The nonvolatile semiconductor memory 11 includes a plurality of memory blocks BLK0 to BLKn, each of which includes memory cells MC capable of holding data. The data in each of the memory blocks BLK0 to BLKn is collectively erased. In each of the memory blocks BLK0 to BLKn, data is collectively written in units of pages that are sets of a plurality of memory cells MC. The controller 12 transfers write data and a first row address to the nonvolatile semiconductor memory 11, and a change command of the transferred first row address and a second row different from the first row address. Issue an address. The nonvolatile semiconductor memory 11 writes write data to a page corresponding to the first row address when no change command is issued, and writes data to a page corresponding to the second row address when a change command is issued. Enter.

로우 어드레스, 메모리 블록, 메모리 셀, 연산 처리 장치, 기입 데이터, 플래시 메모리 Row address, memory block, memory cell, arithmetic processing unit, write data, flash memory

Description

불휘발성 반도체 메모리를 구비하는 메모리 시스템{MEMORY SYSTEM WITH NONVOLATILE SEMICONDUCTOR MEMORY}MEMORY SYSTEM WITH NONVOLATILE SEMICONDUCTOR MEMORY}

도 1은 본 발명의 제1 실시 양태에 따른 메모리 시스템의 블록도.1 is a block diagram of a memory system according to the first embodiment of the present invention.

도 2는 본 발명의 제1 실시 양태에 따른 메모리 카드에서의 신호 핀에 대한 신호 할당을 도시하는 다이어그램.2 is a diagram showing signal allocation for signal pins in the memory card according to the first embodiment of the present invention;

도 3은 본 발명의 제1 실시 양태에 따른 메모리 카드가 구비하는 카드 컨트롤러의 블록도.Fig. 3 is a block diagram of a card controller included in the memory card according to the first embodiment of the present invention.

도 4은 본 발명의 제1 실시 양태에 따른 플래시 메모리의 블록도. 4 is a block diagram of a flash memory according to the first embodiment of the present invention.

도 5는 본 발명의 제1 실시 양태에 따른 플래시 메모리의 데이터 기입 방법을 도시하는 플로우차트로서, 카드 컨트롤러에서의 처리를 도시하는 도면.Fig. 5 is a flowchart showing a data writing method of a flash memory according to the first embodiment of the present invention, showing the processing in the card controller.

도 6은 본 발명의 제1 실시 양태에 따른 플래시 메모리의 카드 컨트롤러가 출력하는 신호의 타이밍차트.Fig. 6 is a timing chart of signals output by the card controller of the flash memory according to the first embodiment of the present invention.

도 7은 본 발명의 제1 실시 양태에 따른 플래시 메모리의 데이터 기입 방법을 도시하는 플로우차트로서, NAND형 플래시 메모리에서의 처리를 도시하는 도면.Fig. 7 is a flowchart showing a data writing method of a flash memory according to the first embodiment of the present invention, showing the processing in the NAND type flash memory.

도 8 및 도 9는 본 발명의 제1 실시 양태에 따른 메모리 시스템의 블록도로서, 데이터의 기입 시의 모습을 도시하는 도면.8 and 9 are block diagrams of a memory system according to the first embodiment of the present invention, showing a state when data is written.

도 10은 본 발명의 제2 실시 양태에 따른 플래시 메모리의 데이터 기입 방법 을 도시하는 플로우차트.Fig. 10 is a flowchart showing a data writing method of a flash memory according to the second embodiment of the present invention.

도 11 내지 도 14는 본 발명의 제2 실시 양태에 따른 메모리 시스템의 블록도로서, 데이터의 집약 시의 모습을 도시하는 도면.11 to 14 are block diagrams of a memory system according to a second embodiment of the present invention, showing a state when data is collected.

도 15는 본 발명의 제3 실시 양태에 따른 플래시 메모리의 데이터 집약 방법을 도시하는 플로우차트로서, 카드 컨트롤러에서의 처리를 도시하는 도면.Fig. 15 is a flowchart showing a data aggregation method of a flash memory according to the third embodiment of the present invention, showing the processing in the card controller.

도 16은 본 발명의 제3 실시 양태에 따른 플래시 메모리의 데이터 기입 방법을 도시하는 플로우차트로서, NAND형 플래시 메모리에서의 처리를 도시하는 도면.Fig. 16 is a flowchart showing a data writing method of a flash memory according to the third embodiment of the present invention, showing the processing in the NAND type flash memory.

도 17 내지 도 19는 본 발명의 제3 실시 양태에 따른 메모리 시스템의 블록도로서, 데이터의 집약 시의 모습을 도시하는 도면.17 to 19 are block diagrams of a memory system according to a third embodiment of the present invention, showing a state when data is collected.

도 20은 본 발명의 제2, 제3 실시 양태에 따른 메모리 시스템이 구비하는 NAND형 플래시 메모리의 메모리 공간을 도시하는 개념도.20 is a conceptual diagram showing a memory space of a NAND type flash memory included in the memory system according to the second and third embodiments of the present invention.

도 21은 플래시 메모리의 블록도.21 is a block diagram of a flash memory.

도 22는 플래시 메모리의 블록도로서, 데이터의 집약의 모습을 도시하는 도면.Fig. 22 is a block diagram of a flash memory showing the aggregation of data.

도 23은 본 발명의 제2, 제3 실시 양태의 변형예에 따른 플래시 메모리의 블록도로서, 데이터의 집약의 모습을 도시하는 도면.Fig. 23 is a block diagram of a flash memory according to a modification of the second and third embodiments of the present invention, showing a state of data aggregation.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

1 : 메모리 카드1: memory card

2 : 호스트 기기2: host device

11 : NAND형 플래시 메모리11: NAND Flash Memory

12 : 카드 컨트롤러12: card controller

13 : 신호 핀13: signal pin

14 : 버스 인터페이스14 bus interface

21 : 호스트 인터페이스 모듈21: host interface module

26 : 버퍼26: buffer

23 : 플래시 컨트롤러23: flash controller

[특허 문헌 1] 일본 특개 2006-092169호 공보[Patent Document 1] Japanese Unexamined Patent Publication No. 2006-092169

본 출원은, 일본 특허 출원 제2006-182631호(2006년 6월 30일)에 기초한 것으로서, 그 우선권을 주장하며, 그 전체 내용이 본 명세서에서 참조로서 인용된다.This application is based on Japanese Patent Application No. 2006-182631 (June 30, 2006), and claims the priority thereof, the entire contents of which are incorporated herein by reference.

본 발명은, 메모리 시스템 및 카드 컨트롤러에 관한 것이다. 예를 들면, 불휘발성의 반도체 메모리와, 그 동작을 제어하는 카드 컨트롤러를 구비한 메모리 시스템에 관한 것이다.The present invention relates to a memory system and a card controller. For example, the present invention relates to a memory system having a nonvolatile semiconductor memory and a card controller for controlling the operation thereof.

NAND형 플래시 메모리에서는, 데이터는 복수의 메모리 셀에 대하여 일괄하여 기입된다. 이 일괄 기입의 단위는 페이지라고 불린다. 최근의 NAND형 플래시 메모리의 대용량화에 수반하여, 페이지 사이즈는 커져 오고 있다.In a NAND flash memory, data is collectively written to a plurality of memory cells. The unit of batch writing is called a page. With the recent increase in the capacity of the NAND flash memory, the page size has increased.

그러나, 호스트 기기로부터의 액세스 단위는 반드시 페이지 단위라고는 한정 되지 않는다. 예를 들면 기입 동작의 경우, 기입 데이터의 종단 위치가 페이지 경계가 아닌 경우가 있다. 그리고, 호스트 기기로부터 연속한 어드레스에서 다시 기입 액세스가 이루어질 가능성이 높다. 이것은, 호스트 기기가 큰 데이터를 한번에 플래시 메모리로 보낼 수 없어, 복수회로 분할하여 데이터를 기입하는 등의 이유 때문이다.However, the access unit from the host device is not necessarily limited to a page unit. For example, in the case of a write operation, the end position of the write data may not be a page boundary. There is a high possibility that the write access will be made again from the host device at a continuous address. This is because the host device cannot send a large amount of data to the flash memory at one time, and writes data by dividing the data into a plurality of times.

이 때, 종래의 NAND형 플래시 메모리에서는, 동일한 컬럼 위치에 대하여 2회 기입을 행하는 오버라이트를 하지 않는 한, 동일 페이지에 기입을 행하는 것이 일반적으로는 허가되어 있다. 따라서, 이러한 경우에는 문제는 발생하지 않는다.At this time, in the conventional NAND type flash memory, writing to the same page is generally permitted unless overwriting of writing twice to the same column position is performed. Thus, no problem arises in this case.

그러나, 최근에는 메모리 셀의 미세화나 다치화(multi-level)에 수반하여, 동일 페이지에 복수회의 기입을 행하는 것이 신뢰성 상 문제로 되고, 이러한 동작이 금지되어 있는 NAND형 플래시 메모리도 증가하고 있다.In recent years, however, with the miniaturization and multi-level of memory cells, writing a plurality of times on the same page is a problem in reliability, and NAND-type flash memories, in which such an operation is prohibited, are increasing.

상기한 바와 같은 호스트 기기의 액세스를 예측하여 NAND형 플래시 메모리의 제어 시스템에서는, 연속하는 기입 액세스가 페이지의 종단 위치가 아닌 곳에서 종료하는 경우, 그 페이지의 데이터를 다른 메모리 블록에 기입하는 것이 행해지고 있다. 메모리 블록이란 메모리 셀의 집합으로서, 데이터의 소거 단위로 된다. 이 때, 미리 기입 종료 어드레스가 호스트 기기로부터 통지되지 않는 경우나, 호스트 기기로부터의 데이터 전송이 어떠한 이유에 의해 중단된 경우에는, 페이지 사이즈분의 데이터를 버퍼에 축적해 두는 기술이 알려져 있다. 이러한 기술은, 예를 들면 특허 문헌 1 등에 개시되어 있다. 본 방법의 경우, 최종적으로 데이터 사이즈가 페이지 사이즈에 충족하지 않았던 경우에는, 별도의 메모리 블록에 해당 데이터 를 기입한다. In the control system of the NAND type flash memory in anticipation of the access of the host device as described above, when the continuous write access ends at a position other than the end position of the page, writing the data of the page into another memory block is performed. have. A memory block is a set of memory cells that is a unit of erasing data. At this time, when the write end address is not notified from the host device in advance, or when data transmission from the host device is interrupted for some reason, a technique of accumulating data for a page size in a buffer is known. Such a technique is disclosed in Patent Document 1 and the like, for example. In the case of this method, when the data size does not finally satisfy the page size, the corresponding data is written in a separate memory block.

그러나 본 방법으로는, 최종적으로 데이터 사이즈가 확정될 때까지 데이터의 기입을 행할 수 없어, 시간의 손실이 야기된다고 하는 문제가 있다.However, in this method, there is a problem that data cannot be written until the data size is finally determined, resulting in a loss of time.

본 발명은, 데이터의 기입 속도를 향상할 수 있는 메모리 시스템, 및 카드 컨트롤러를 제공한다. The present invention provides a memory system and a card controller capable of improving the data writing speed.

본 발명의 하나의 양태에 따른 메모리 시스템은, 각각이 데이터를 유지 가능한 메모리 셀을 포함하는 복수의 메모리 블록을 구비한 불휘발성 반도체 메모리 - 각각의 메모리 블록 내의 데이터는 일괄하여 소거되고, 각각의 상기 메모리 블록 내에서, 상기 데이터는, 복수의 상기 메모리 셀의 집합인 페이지 단위로 일괄하여 기입됨 -; 및A memory system according to one aspect of the present invention is a nonvolatile semiconductor memory having a plurality of memory blocks each including memory cells capable of holding data, wherein data in each memory block is collectively erased, and each of the above In a memory block, the data is collectively written in units of pages, which is a collection of a plurality of the memory cells; And

상기 불휘발성 메모리에 대하여 기입 데이터 및 제1 로우 어드레스를 전송하고, 또한 전송한 상기 제1 로우 어드레스의 변경 명령과, 그 제1 로우 어드레스와는 상이한 제2 로우 어드레스를 발행하는 컨트롤러 - 상기 불휘발성 반도체 메모리는, 상기 변경 명령이 발행되지 않을 때에는, 상기 제1 로우 어드레스에 대응하는 상기 메모리 셀에 상기 기입 데이터를 기입하고, 상기 변경 명령이 발행되었을 때에는, 상기 제2 로우 어드레스에 대응하는 상기 메모리 셀에 상기 기입 데이터를 기입함 - 를 구비한다.A controller for transferring write data and a first row address to said nonvolatile memory, and issuing a command for changing said first row address and a second row address different from said first row address-said nonvolatile The semiconductor memory writes the write data to the memory cell corresponding to the first row address when the change command is not issued, and the memory corresponding to the second row address when the change command is issued. Write the write data in a cell.

본 발명의 하나의 양태에 따른 불휘발성 반도체 메모리를 제어하는 카드 컨 트롤러는, 호스트 기기에 접속 가능하게 되고, 상기 호스트 기기로부터 기입 데이터 및 제1 로우 어드레스를 수신하는 호스트 인터페이스와,A card controller for controlling a nonvolatile semiconductor memory according to an aspect of the present invention includes a host interface that is connectable to a host device and receives write data and a first row address from the host device;

각각이 데이터를 유지 가능한 메모리 셀을 포함하는 복수의 메모리 블록을 구비한 상기 불휘발성 반도체 메모리에 대하여, 상기 기입 데이터를 전송하고, 또한 상기 제1 로우 어드레스의 변경 명령과, 그 제1 로우 어드레스와는 상이한 제2 로우 어드레스를 발행하는 연산 처리 장치를 구비하고, 상기 메모리 블록 내의 데이터는 일괄하여 소거되고, 상기 각각의 상기 메모리 블록 내에서, 상기 기입 데이터는, 복수의 상기 메모리 셀의 집합인 페이지 단위로 일괄하여 기입되고, 상기 연산 처리 장치는, 상기 변경 명령에 의해, 상기 불휘발성 반도체 메모리에 대하여 상기 기입 데이터를 상기 제2 로우 어드레스에 대응하는 상기 페이지에 기입하도록 명령한다.For the nonvolatile semiconductor memory having a plurality of memory blocks each including a memory cell capable of holding data, the write data is transferred, the first row address change instruction, the first row address, Has an arithmetic processing unit that issues a different second row address, wherein data in the memory block is erased in a batch, and in each of the memory blocks, the write data is a set of a plurality of the memory cells; The unit is collectively written, and the arithmetic processing unit instructs the nonvolatile semiconductor memory to write the write data to the page corresponding to the second row address by the change command.

<실시예><Example>

<제1 실시 양태><First Embodiment>

본 발명의 제1 실시 양태에 따른 메모리 시스템에 대하여, 도 1을 이용하여 설명한다. 도 1은, 본 실시 양태에 따른 메모리 시스템의 블록도이다.A memory system according to the first embodiment of the present invention will be described with reference to FIG. 1 is a block diagram of a memory system according to the present embodiment.

도시하는 바와 같이 메모리 시스템은, 메모리 카드(1) 및 호스트 기기(2)를 구비하고 있다. 호스트 기기(2)는, 버스 인터페이스(14)를 통하여 접속되는 메모리 카드(1)에 대하여 액세스를 행하기 위한 하드웨어 및 소프트웨어를 구비하고 있다. 메모리 카드(1)는, 호스트 기기(2)에 접속되었을 때에 전원 공급을 받아 동작하고, 호스트 기기(2)로부터의 액세스에 따른 처리를 행한다. As shown, the memory system includes a memory card 1 and a host device 2. The host device 2 includes hardware and software for accessing the memory card 1 connected through the bus interface 14. When the memory card 1 is connected to the host device 2, the memory card 1 operates under power supply, and performs processing in accordance with the access from the host device 2.

메모리 카드(1)는, 호스트 기기(2)와 버스 인터페이스(14)를 통하여 정보의 수수를 행한다. 메모리 카드(1)는, NAND형 플래시 메모리 칩(간단히 NAND형 플래시 메모리, 또는 플래시 메모리라고 부르는 경우가 있음)(11), 플래시 메모리 칩(11)을 제어하는 카드 컨트롤러(12), 및 복수의 신호 핀(제1 핀 내지 제9 핀)(13)을 구비하고 있다. The memory card 1 receives information through the host device 2 and the bus interface 14. The memory card 1 includes a NAND-type flash memory chip (sometimes referred to simply as a NAND-type flash memory or a flash memory) 11, a card controller 12 that controls the flash memory chip 11, and a plurality of Signal pins (first to ninth pins) 13 are provided.

복수의 신호 핀(13)은, 카드 컨트롤러(12)와 전기적으로 접속되어 있다. 복수의 신호 핀(13)에서의 제1 핀 내지 제9 핀에 대한 신호의 할당은, 예를 들면 도 2에 도시하는 바와 같이 되어 있다. 도 2는, 제1 핀 내지 제9 핀과, 그들에 할당된 신호를 나타내는 표이다. The plurality of signal pins 13 are electrically connected to the card controller 12. The assignment of signals to the first to ninth pins in the plurality of signal pins 13 is as shown in FIG. 2, for example. 2 is a table showing the first to ninth pins and the signals assigned to them.

데이터 0 내지 데이터 3은, 제7 핀, 제8 핀, 제9 핀, 및 제1 핀에 각각 할당되어 있다. 제1 핀은, 또한, 카드 검출 신호에 대해서도 할당되어 있다. 또한, 제2 핀은 커맨드에 할당되고, 제3 핀 및 제6 핀은 접지 전위 Vss에, 제4 핀은 전원 전위 Vdd에, 제5 핀은 클럭 신호에 할당되어 있다. Data 0 to data 3 are respectively assigned to the seventh pin, the eighth pin, the ninth pin, and the first pin. The first pin is also assigned to the card detection signal. Further, the second pin is assigned to the command, the third and sixth pins are assigned to the ground potential Vss, the fourth pin is assigned to the power supply potential Vdd, and the fifth pin is assigned to the clock signal.

또한, 메모리 카드(1)는, 호스트 기기(2)에 설치된 슬롯에 대하여 삽입 및 제거 가능하도록 형성되어 있다. 호스트 기기(2)에 설치된 호스트 컨트롤러(도시하지 않음)는, 이들 제1 핀 내지 제9 핀을 통하여 메모리 카드(1) 내의 카드 컨트롤러(12)와 각종 신호 및 데이터를 통신한다. 예를 들면, 메모리 카드(1)에 데이터가 기입될 때에는, 호스트 컨트롤러는, 기입 커맨드를, 제2 핀을 통하여 카드 컨트롤러(12)에 시리얼인 신호로서 송출한다. 이 때, 카드 컨트롤러(12)는, 제5 핀에 공급되어 있는 클럭 신호에 응답하여, 제2 핀에 부여되는 기입 커맨드를 받아들 인다. In addition, the memory card 1 is formed to be inserted into and removed from a slot provided in the host device 2. The host controller (not shown) provided in the host device 2 communicates various signals and data with the card controller 12 in the memory card 1 via these first to ninth pins. For example, when data is written to the memory card 1, the host controller sends a write command to the card controller 12 as a serial signal through the second pin. At this time, the card controller 12 receives a write command given to the second pin in response to the clock signal supplied to the fifth pin.

여기서, 전술한 바와 같이, 기입 커맨드는, 제2 핀만을 이용하여 카드 컨트롤러(12)에 시리얼로 입력된다. 커맨드의 입력에 할당되어 있는 제2 핀은, 도 2에 도시하는 바와 같이, 데이터 3용의 제1 핀과 접지 전위 Vss용의 제3 핀 사이에 배치되어 있다. 복수의 신호 핀(13)과 그에 대한 버스 인터페이스(14)는, 호스트 기기(2) 내의 호스트 컨트롤러와 메모리 카드(1)가 통신하는 데에 사용된다. Here, as described above, the write command is serially input to the card controller 12 using only the second pin. The second pin assigned to the input of the command is disposed between the first pin for data 3 and the third pin for ground potential Vss, as shown in FIG. The plurality of signal pins 13 and the bus interface 14 therefor are used for communication between the host controller in the host device 2 and the memory card 1.

이에 대하여, 플래시 메모리(11)와 카드 컨트롤러(12) 사이의 통신은, NAND형 플래시 메모리용의 인터페이스에 의해 행해진다. 따라서, 여기서는 도시하지 않지만, 플래시 메모리(11)와 카드 컨트롤러(12)는 예를 들면 8비트의 입출력(I/O)선에 의해 접속되어 있다. In contrast, communication between the flash memory 11 and the card controller 12 is performed by an interface for the NAND type flash memory. Therefore, although not shown here, the flash memory 11 and the card controller 12 are connected by 8-bit input / output (I / O) lines, for example.

예를 들면, 카드 컨트롤러(12)가 플래시 메모리(11)에 데이터를 기입할 때에는, 카드 컨트롤러(12)는, 이들 I/O선을 통하여 데이터 입력 커맨드 80H, 컬럼 어드레스, 페이지 어드레스, 데이터, 및 프로그램 커맨드 10H를 플래시 메모리(11)에 순차적으로 입력한다. 여기서, 커맨드 80H의 "H"는 16진수를 나타내는 것으로, 실제로는 "10000000"과 같은 8비트의 신호가, 8비트의 I/O선에 패러렐로 부여된다. 즉, 이 NAND형 플래시 메모리용의 인터페이스에서는, 복수 비트의 커맨드가 패러렐로 부여된다. For example, when the card controller 12 writes data to the flash memory 11, the card controller 12 transmits data input commands 80H, column addresses, page addresses, data, and the like through these I / O lines. The program command 10H is sequentially input to the flash memory 11. Here, "H" of the command 80H represents a hexadecimal number, and in practice, an 8-bit signal such as "10000000" is given in parallel to the 8-bit I / O line. That is, in this NAND type flash memory interface, plural-bit commands are given in parallel.

또한, NAND형 플래시 메모리용의 인터페이스에서는, 플래시 메모리(11)에 대한 커맨드와 데이터가 동일한 I/O선을 공용하여 통신되어 있다. 이와 같이, 호스트 기기(2) 내의 호스트 컨트롤러와 메모리 카드(1)가 통신하는 인터페이스와, 플 래시 메모리(11)와 카드 컨트롤러(12)가 통신하는 인터페이스는 상이하다.In the interface for the NAND flash memory, commands and data for the flash memory 11 share the same I / O line and communicate with each other. In this way, the interface between the host controller and the memory card 1 in the host device 2 and the interface between the flash memory 11 and the card controller 12 are different.

다음으로, 도 1에 도시하는 메모리 카드(1)가 구비하는 카드 컨트롤러의 내부 구성에 대하여 도 3을 이용하여 설명한다. 도 3은 카드 컨트롤러(12)의 블록도이다. Next, the internal structure of the card controller with which the memory card 1 shown in FIG. 1 is equipped is demonstrated using FIG. 3 is a block diagram of the card controller 12.

카드 컨트롤러(12)는, 플래시 메모리(11) 내부의 물리 상태(예를 들면, 어느 곳의 물리 블록 어드레스에, 몇번째의 논리 섹터 어드레스 데이터가 포함되어 있는지, 혹은, 어느곳의 블록이 소거 상태인지)를 관리한다. 카드 컨트롤러(12)는, 호스트 인터페이스 모듈(21), MPU(22), 플래시 컨트롤러(23), ROM(24), RAM(25), 및 버퍼(26)를 갖는다. The card controller 12 determines the physical state of the flash memory 11 (for example, where the physical block address contains the number of logical sector address data or where the block is in the erased state). Cognition). The card controller 12 has a host interface module 21, an MPU 22, a flash controller 23, a ROM 24, a RAM 25, and a buffer 26.

호스트 인터페이스 모듈(21)은, 카드 컨트롤러(12)와 호스트 기기(2) 사이의 인터페이스 처리를 행한다. The host interface module 21 performs an interface process between the card controller 12 and the host device 2.

MPU(22)는, 메모리 카드(1) 전체의 동작을 제어한다. MPU(22)는, 예를 들면 메모리 카드(1)가 전원 공급을 받았을 때에, ROM(24)에 저장되어 있는 펌웨어(제어 프로그램)를 RAM(25) 상에 읽어내서 소정의 처리를 실행함으로써, 각종 테이블을 RAM(25) 상에 작성한다. 또한 MPU(22)는, 호스트 기기(2)로부터 기입 커맨드, 읽어내기 커맨드, 소거 커맨드를 수취하고, 플래시 메모리(11)에 대하여 소정의 처리를 실행하거나, 버퍼(26)를 통한 데이터 전송 처리를 제어하거나 한다. The MPU 22 controls the operation of the entire memory card 1. The MPU 22 reads the firmware (control program) stored in the ROM 24 onto the RAM 25 and executes a predetermined process, for example, when the memory card 1 is supplied with power. Various tables are created on the RAM 25. In addition, the MPU 22 receives a write command, a read command, and an erase command from the host device 2, executes a predetermined process for the flash memory 11, or performs a data transfer process through the buffer 26. To control.

ROM(24)은, MPU(22)에 의해 제어되는 제어 프로그램 등을 저장한다. RAM(25)은, MPU(22)의 작업 에리어로서 사용되고, 제어 프로그램이나 각종 테이블(표)을 기억한다. 플래시 컨트롤러(23)는, 카드 컨트롤러(12)와 플래시 메모 리(11) 사이의 인터페이스 처리를 행한다. The ROM 24 stores a control program and the like controlled by the MPU 22. The RAM 25 is used as a work area of the MPU 22 and stores a control program and various tables (tables). The flash controller 23 performs an interface process between the card controller 12 and the flash memory 11.

버퍼(26)는, 호스트 기기(2)로부터 보내져 오는 데이터를 플래시 메모리(11)에 기입할 때에, 일정량의 데이터(예를 들면, 1페이지분)를 일시적으로 기억하거나, 플래시 메모리(11)로부터 읽어내어지는 데이터를 호스트 기기(2)에 송출할 때에, 일정량의 데이터를 일시적으로 기억하거나 한다. The buffer 26 temporarily stores a certain amount of data (for example, one page) when writing the data sent from the host device 2 to the flash memory 11, or from the flash memory 11. When sending the data read out to the host device 2, a certain amount of data is temporarily stored.

다음으로, NAND형 플래시 메모리(11)의 내부 구성에 대하여 간단히 설명한다. 도 4는 NAND형 플래시 메모리(11)의 블록도이다. 도시하는 바와 같이 NAND형 플래시 메모리(11)는, 메모리 셀 어레이(30) 및 페이지 버퍼(31)를 구비하고 있다.Next, the internal structure of the NAND type flash memory 11 will be briefly described. 4 is a block diagram of the NAND type flash memory 11. As illustrated, the NAND type flash memory 11 includes a memory cell array 30 and a page buffer 31.

메모리 셀 어레이(30)는, 복수의 메모리 셀 블록 BLK0~BLKn(n은 2이상의 자연수)을 포함하고 있다. 또한 이하에서는 메모리 셀 블록 BLK0~BLKn을 단순히 메모리 블록 BLK라고 부르는 경우가 있다. 또한, 데이터의 소거는 메모리 블록 BLK 단위로 행해진다. 즉, 동일 메모리 셀 블록 BLK 내의 데이터는 일괄하여 소거된다. 메모리 셀 블록 BLK의 각각은, 복수의 메모리 셀 MC를 구비하고 있다. 각 메모리 셀은, 전하 축적층(예를 들면 플로팅 게이트와 컨트롤 게이트를 포함하는 적층 게이트를 구비한 MOS 트랜지스터이다. 또한 메모리 셀 블록 BLK 내에는, 복수의 워드선, WLO, WL1, …(이하 워드선 WL이라고 부름)과, 워드선 WL과 직교하는 비트선 BLO, BL1, …(이하 비트선 BL이라고 부름)이 설치되어 있다. 그리고, 동일 행에 있는 메모리 셀 MC는 동일한 워드선에 공통 접속되어 있다. 또한, 동일 열에 있는 메모리 셀 MC는, 복수의 메모리 셀 단위로 비트선 BL에 공통 접속되어 있다. 또한, 데이터의 기입 및 읽어내기는 복수의 메모리 셀의 집합마다 행해지고, 이 메 모리 셀의 집합을 1페이지라고 부른다. 또한, 읽어내기 시 및 기입 시에서, 로우 어드레스에 의해서 어느 하나의 워드선 WL이 선택되고, 컬럼 어드레스에 의해서 어느 하나의 비트선 BL이 선택된다. 도 4의 예이면, 플래시 메모리(11)의 각 페이지는, 2112바이트(512바이트분의 데이터 기억부×4+1O바이트 분의 용장부×4+24바이트 분의 관리 데이터 기억부)를 갖고 있고, 각 메모리 블록 BLK는 예를 들면 128페이지를 포함하고 있다. The memory cell array 30 includes a plurality of memory cell blocks BLK0 to BLKn (n is a natural number of two or more). In addition, hereinafter, memory cell blocks BLK0 to BLKn are sometimes referred to simply as memory blocks BLK. The data is erased in units of the memory block BLK. That is, data in the same memory cell block BLK is erased in a batch. Each of the memory cell blocks BLK includes a plurality of memory cells MC. Each memory cell is a MOS transistor having a charge storage layer (e.g., a stacked gate including a floating gate and a control gate). In the memory cell block BLK, a plurality of word lines, WLO, WL1, ... (hereinafter referred to as word) Line WL) and bit lines BLO, BL1, ... (hereinafter referred to as bit line BL) orthogonal to the word line WL are provided, and memory cells MC in the same row are commonly connected to the same word line. The memory cells MC in the same column are commonly connected to the bit lines BL in units of a plurality of memory cells, and data writing and reading are performed for each of a plurality of sets of memory cells. Is referred to as one page, and at the time of reading and writing, either word line WL is selected by row address, and one bit line BL is selected by column address. In the example of Fig. 4, each page of the flash memory 11 has 2112 bytes (512 bytes of data storage x 4 + 10 bytes of redundant portion x 4 + 24 bytes of management data storage). Each memory block BLK contains, for example, 128 pages.

페이지 버퍼(31)는, 플래시 메모리(11)에의 데이터 입출력을 행하고, 데이터를 일시적으로 유지한다. 페이지 버퍼(31)가 유지 가능한 데이터 사이즈는, 각 메모리 블록 BLK의 페이지 사이즈와 마찬가지로 2112바이트(2048바이트+64바이트)이다. 데이터 기입 등의 시에, 페이지 버퍼(31)는, 플래시 메모리(11)에 대한 데이터 입출력 처리를, 자신의 기억 용량에 상당하는 1페이지분의 단위로 실행한다. 또한, 이하에서는 설명을 간단화하기 위해, 용장부 및 관리 데이터 기억부에 대해서는 생략하고, 1페이지의 데이터 사이즈가 2048바이트인 것으로서 설명을 행한다. The page buffer 31 performs data input / output to the flash memory 11 and temporarily holds data. The data size that the page buffer 31 can hold is 2112 bytes (2048 bytes + 64 bytes) similarly to the page size of each memory block BLK. At the time of data writing or the like, the page buffer 31 executes data input / output processing to the flash memory 11 in units of one page corresponding to its own storage capacity. In addition, below, the redundant part and the management data storage part are abbreviate | omitted in order to simplify description, and it demonstrates as data size of one page is 2048 bytes.

다음으로, 상기 구성의 메모리 시스템에서의 데이터의 기입 방법에 대하여 설명한다. 우선, 도 5를 이용하여 카드 컨트롤러(12)가 주체로 되어 행하는 처리에 대하여 설명한다. 도 5는, 카드 컨트롤러(12)에서의 처리를 도시하는 플로우차트이다. Next, a method of writing data in the memory system having the above configuration will be described. First, the processing performed mainly by the card controller 12 will be described with reference to FIG. 5. 5 is a flowchart showing the processing in the card controller 12.

도시하는 바와 같이, 우선 카드 컨트롤러(12)는 호스트 기기(2)로부터 데이터의 기입 명령과, NAND형 플래시 메모리(11)에서 데이터를 기입할 어드레스를 수 신한다(스텝 S10). 계속해서 카드 컨트롤러(12)는, 호스트 기기(2)로부터 기입 데이터를 수신한다(스텝 S11). 그리고 카드 컨트롤러(12)는, 플래시 메모리(11)에 대하여 제1 기입 명령, 기입 데이터, 및 어드레스를 출력한다. 플래시 메모리(11)는, 제1 기입 명령을 수신함으로써, 기입 동작이 개시되는 것을 인식한다. 단, 실제로 데이터가 메모리 셀 MC에 기입되는 것은, 후술하는 제2 기입 명령이 부여된 시점이다. As shown in the figure, the card controller 12 first receives a data write command from the host device 2 and an address to which data is to be written in the NAND type flash memory 11 (step S10). Subsequently, the card controller 12 receives the write data from the host device 2 (step S11). The card controller 12 outputs a first write command, write data, and an address to the flash memory 11. The flash memory 11 recognizes that a write operation is started by receiving a first write command. However, the data is actually written to the memory cell MC at the time when the second write command described later is given.

다음으로, 카드 컨트롤러(12)의 MCU(22)는, 호스트 기기(2)로부터 기입 액세스의 종료, 또는 중단 명령이 있는지의 여부를 판정한다(스텝 S13). 없는 경우에는(스텝 S13, 아니오), MCU(22)는 제2 기입 명령을 플래시 메모리(11)에 출력한다(스텝 S14). 스텝 S14에서, 플래시 메모리는 카드 컨트롤러(12)로부터 계속된 데이터가 전송되거나, 제2 기입 명령, 혹은, 리세트 명령을 대기한다.Next, the MCU 22 of the card controller 12 determines whether there is an end of write access or a stop command from the host device 2 (step S13). If no (step S13, NO), the MCU 22 outputs the second write command to the flash memory 11 (step S14). In step S14, the flash memory transfers the data continued from the card controller 12, or waits for a second write command or reset command.

스텝 S13에서 종료 명령 또는 중단 명령이 부여되고 있던 경우에는(스텝 S13, 예), 플래시 메모리(11)에 전송된 기입 데이터가, 플래시 메모리(11)에서의 페이지 사이즈를 충족시키고 있는지의 여부를, MCU(22)가 판정한다(스텝 S15). 즉, 기입 데이터의 데이터 사이즈가 2048바이트인지 그 미만인지를 판정한다. 충족시키고 있던 경우, 즉 데이터 사이즈가 2048바이트이었던 경우에는(스텝 S16, 예), MCU(22)는 제2 기입 명령을 플래시 메모리(11)에 출력한다(스텝 S17). 충족시키고 있지 않은 경우, 즉 데이터 사이즈가 2048바이트 미만이었던 경우에는(스텝 S16, 아니오), MCU(22)는 로우 어드레스 변경 명령과, 새로운 로우 어드레스를 발행하여, 이것을 플래시 메모리(11)에 출력한다(스텝 S18). 그리고 스텝 S17의 처리를 행한다. If an end command or a stop command is given in step S13 (step S13, YES), whether or not the write data transferred to the flash memory 11 satisfies the page size in the flash memory 11, The MCU 22 determines (step S15). That is, it is determined whether the data size of the write data is 2048 bytes or less. If it is satisfied, that is, if the data size is 2048 bytes (step S16, YES), the MCU 22 outputs the second write command to the flash memory 11 (step S17). If not satisfied, that is, if the data size is less than 2048 bytes (step S16, NO), the MCU 22 issues a row address change command and a new row address, and outputs it to the flash memory 11. (Step S18). And the process of step S17 is performed.

이상의 처리에서, 카드 컨트롤러(12)로부터 플래시 메모리(11)에 부여되는 신호에 대하여 도 6을 이용하여 설명한다. 도 6은, 카드 컨트롤러(12)가 플래시 메모리(11)에 출력하는 신호의 타이밍 차트로서, 상단은 종료 또는 중단 명령이 없는 경우(스텝 S13, 아니오), 혹은 기입 데이터가 페이지 사이즈를 충족시키고 있던 경우(스텝 S16, 예)에 출력되는 신호이다. 또한 하단에 나타내는 신호는, 기입 데이터가 페이지 사이즈를 충족시키고 있지 않았던 경우(스텝 S16, 아니오)에 출력되는 신호이다. In the above process, the signal applied to the flash memory 11 from the card controller 12 will be described with reference to FIG. 6. Fig. 6 is a timing chart of signals output from the card controller 12 to the flash memory 11, the upper end of which there is no end or stop command (step S13, NO) or the write data satisfying the page size. The signal is output in the case (step S16, YES). The signal shown at the lower end is a signal that is output when the write data does not satisfy the page size (step S16, NO).

도시하는 바와 같이, 어떠한 경우에도 우선 시각 t0에서 제1 기입 명령이 출력되고, 그 후 어드레스(로우 어드레스 및 컬럼 어드레스) 및 기입 데이터가, 각각 시각 t1, t2에서 순차적으로 출력된다. 그 후, 종료 또는 중단 명령이 없는 경우, 혹은 기입 데이터가 페이지 사이즈를 충족시키고 있던 경우에는, 시각 t4에서 제2 기입 명령이 출력되어, 일련의 신호의 흐름은 종료한다. 한편, 기입 데이터가 페이지 사이즈를 충족시키고 있지 않은 경우에는, 페이지 사이즈를 충족시키고 있는 경우에 비하여 데이터량이 적으므로, 시각 t4보다도 빠른 시각 t3에서 데이터의 전송은 종료한다. 그리고 기입 데이터에 이어서, 시각 t3에서 로우 어드레스 변경 명령이 출력되고, 시각 t5에서 새로운 로우 어드레스가 출력된다. 그 후, 시각 t6에서 제2 기입 명령이 출력된다. 후자의 경우, 유효로 되는 로우 어드레스는 시각 t1에서 출력되는 로우 어드레스가 아니라, 시각 t5에서 출력되는 새로운 로우 어드레스이다. 그리고 새로운 로우 어드레스는, 최초의 로우 어드레스가 해당하는 메 모리 블록 BLK와는 상이한 메모리 블록 BLK에 해당하는 어드레스이다. As shown, in any case, first, a first write command is output at time t0, and then addresses (row addresses and column addresses) and write data are sequentially output at times t1 and t2, respectively. Thereafter, when there is no end or stop command or when the write data satisfies the page size, the second write command is output at time t4, and the flow of a series of signals ends. On the other hand, when the write data does not satisfy the page size, the data amount is smaller than when the page size is satisfied. Therefore, the data transfer ends at time t3 earlier than time t4. Then, following the write data, a row address change command is output at time t3, and a new row address is output at time t5. Thereafter, a second write command is output at time t6. In the latter case, the valid row address is not a row address output at time t1, but a new row address output at time t5. The new row address is an address corresponding to a memory block BLK different from the memory block BLK to which the first row address corresponds.

다음으로 도 7을 이용하여 NAND형 플래시 메모리(11)가 주체로 되어 행하는 처리에 대하여 설명한다. 도 7은, 플래시 메모리(11)에서의 처리를 도시하는 플로우차트이다. 도시하는 바와 같이, 우선 플래시 메모리(11)는 카드 컨트롤러(12)로부터 제1 기입 명령, 기입 데이터, 및 어드레스를 수신한다(스텝 S20). 그리고, 로우 어드레스 변경 명령 및 새로운 로우 어드레스를 수신하고 있는지의 여부를 판정한다(스텝 S21). 로우 어드레스 변경 명령 및 새로운 로우 어드레스를 수신하고 있지 않은 경우에는(스텝 S22, 아니오), 카드 컨트롤러(12)로부터 제2 기입 명령을 수신한 후(스텝 S23), 스텝 S20에서 수신한 로우 어드레스와 컬럼 어드레스에서 지정되는 메모리 셀 MC에 데이터를 기입한다(스텝 S24). 스텝 S22에서 로우 어드레스 변경 명령을 수신하고 있던 경우에는(스텝 S22, 예), 제2 기입 명령을 수신한 후(스텝 S25), 스텝 S20에서 수신한 컬럼 어드레스와, 로우 어드레스 변경 명령의 다음에 수신한 새로운 로우 어드레스에서 지정되는 메모리 셀 MC에 데이터를 기입한다(스텝 S26).Next, the processing performed mainly by the NAND type flash memory 11 will be described with reference to FIG. 7 is a flowchart showing processing in the flash memory 11. As shown in the figure, first, the flash memory 11 receives a first write command, write data, and an address from the card controller 12 (step S20). Then, it is determined whether or not a row address change command and a new row address are received (step S21). If the row address change command and the new row address are not received (step S22, NO), the row address and column received in step S20 after receiving the second write command from the card controller 12 (step S23). Data is written into the memory cell MC specified by the address (step S24). If a row address change command has been received in step S22 (step S22), after receiving the second write command (step S25), the column address received in step S20 and the row address change command are received after the row address change command. Data is written into the memory cell MC designated at one new row address (step S26).

상기한 기입 동작의 모양을, 도 8 및 도 9를 이용하여 설명한다. 도 8 및 도 9는 메모리 시스템의 블록도로서, 도 8은 종료 또는 중단 명령이 없는 경우(스텝 S13, 아니오), 혹은 기입 데이터가 페이지 사이즈를 충족시키고 있던 경우(스텝 S16, 예)에 대하여 도시하고 있고, 도 9는 기입 데이터가 페이지 사이즈를 충족시키고 있지 않았던 경우(스텝 S16, 아니오)에 대하여 도시하고 있다. 또한, 도 8 및 도 9에서는, 1페이지의 데이터 사이즈가 2048바이트이고, 카드 컨트롤러(12)는 512바이트 단위의 데이터를 플래시 메모리(11)에 전송하는 경우를 도시하고 있으며, 도면 중에서 사선으로 나타낸 영역은 기입 데이터를 나타낸다.The form of the above-described writing operation will be described with reference to FIGS. 8 and 9. 8 and 9 are block diagrams of a memory system, and Fig. 8 shows a case where there is no end or stop command (step S13, no), or when the write data meets the page size (step S16, yes). 9 shows a case where the write data does not satisfy the page size (step S16, NO). 8 and 9 show a case where the data size of one page is 2048 bytes, and the card controller 12 transfers data in units of 512 bytes to the flash memory 11, which is indicated by diagonal lines in the figure. The area represents the write data.

우선 도 8에 대하여 설명한다. 도시하는 바와 같이, 호스트 기기(2)로부터 부여되는 기입 데이터는 카드 컨트롤러(12)의 버퍼(26)에 저장된다. 또한, 어드레스가 카드 컨트롤러(12)에 부여된다. 그렇게 하면, 카드 컨트롤러(12)는 버퍼(26) 내의 기입 데이터를, 페이지 버퍼(31)에 전송한다. 도 8에서는, 각각이 512바이트의 데이터 사이즈를 갖는 4개의 데이터, 즉 2048바이트의 기입 데이터가 페이지 버퍼(31)에 전송되고 있는 모습을 도시하고 있다. 또한, 카드 컨트롤러(12)는 상기 스텝 S12에서 로우 어드레스를, 플래시 메모리(11) 내의 로우 디코더(32)에 전송한다. 로우 디코더(32)는, 스텝 S12에서 부여된 로우 어드레스에 기초하여, 어느 하나의 워드선 WL을 선택한다. 도 8에서는 메모리 블록 BLK0 내의 워드선 WL이 선택된다. 그리고, 제2 기입 명령에 응답하여, 페이지 버퍼(31) 내의 기입 데이터가, 로우 디코더(32)에 의해 선택된 워드선 WL에 접속되는 메모리 셀 MC에 기입된다. First, FIG. 8 will be described. As shown in the drawing, write data supplied from the host device 2 is stored in the buffer 26 of the card controller 12. In addition, an address is given to the card controller 12. In doing so, the card controller 12 transfers the write data in the buffer 26 to the page buffer 31. In Fig. 8, four data each having a data size of 512 bytes, that is, write data of 2048 bytes are transferred to the page buffer 31. In addition, the card controller 12 transmits the row address to the row decoder 32 in the flash memory 11 in step S12. The row decoder 32 selects any word line WL based on the row address given in step S12. In Fig. 8, the word line WL in the memory block BLK0 is selected. Then, in response to the second write command, write data in the page buffer 31 is written to the memory cell MC connected to the word line WL selected by the row decoder 32.

다음으로 도 9에 대하여 설명한다. 도 9에서는, 각각이 512바이트의 데이터 사이즈를 갖는 4개의 데이터, 즉 2048바이트의 기입 데이터가, 메모리 블록 BLK0의 2페이지에 순차적으로 기입되고, 계속해서, 연속한 어드레스에 대하여 각각이 512바이트의 데이터 사이즈를 갖는 3개의 데이터, 즉, 1536바이트의 기입 데이터가 메모리 블록 BLK0에 기입되도록, 페이지 버퍼(31)에 전송되어 있는 모습을 도시하고 있다. 여기서는 도 8의 경우와 상이한 점에 대해서만 설명한다. 스텝 S12에서 플래시 메모리(11)에 부여된 로우 어드레스는, 메모리 블록 BLK0에서의 워드선 WL에 상당하고 있었다고 가정한다. 카드 컨트롤러(12)의 MCU(22)는, 버퍼(26)(즉 페이지 버퍼(31)) 내의 데이터가 페이지 사이즈 미만(1536바이트<2048바이트)이라고 판정한 후, 로우 어드레스 변경 명령을 플래시 메모리(11)에 출력하고, 다시 새로운 로우 어드레스를 발행하여 로우 디코더(32)에 출력한다. 이 새로운 로우 어드레스는, 메모리, 블록 BLK1 내의 워드선 WL에 상당한다고 가정한다. 그렇게 하면 로우 디코더(32)는, 새로운 로우 어드레스에 기초하여, 메모리 블록 BLK0이 아니라 메모리 블록 BLK1 내의 워드선 WL을 선택한다. 그리고, 제2 기입 명령에 응답하여, 페이지 버퍼(31) 내의 1536바이트의 기입 데이터가, 로우 디코더(32)에 의해 선택된 워드선 WL에 접속되는 메모리 셀 MC에 기입된다.Next, FIG. 9 is demonstrated. In FIG. 9, four pieces of data each having a data size of 512 bytes, that is, 2048 bytes of write data are sequentially written to two pages of the memory block BLK0. Subsequently, each of the 512 bytes of consecutive addresses is written. Three data having a data size, that is, 1536 bytes of write data are transferred to the page buffer 31 so as to be written to the memory block BLK0. Only a different point from the case of FIG. 8 is demonstrated here. It is assumed that the row address given to the flash memory 11 in step S12 corresponds to the word line WL in the memory block BLK0. The MCU 22 of the card controller 12 determines that the data in the buffer 26 (that is, the page buffer 31) is less than the page size (1536 bytes < 2048 bytes), and then issues a row address change command to the flash memory ( 11), a new row address is issued again and output to the row decoder 32. This new row address is assumed to correspond to the word line WL in the memory, block BLK1. The row decoder 32 then selects the word line WL in the memory block BLK1 rather than the memory block BLK0 based on the new row address. Then, in response to the second write command, 1536 bytes of write data in the page buffer 31 are written to the memory cell MC connected to the word line WL selected by the row decoder 32.

상기 구성의 메모리 시스템이면, 하기의 효과가 얻어진다. With the memory system of the above structure, the following effects can be obtained.

(1) 데이터의 기입 속도를 향상할 수 있다. (1) The writing speed of data can be improved.

본 실시 양태에 따른 메모리 시스템이면, 페이지 버퍼(31) 내의 데이터가 페이지 사이즈보다도 작은 경우에는, 지금까지 데이터를 기입하고 있던 메모리 블록 BLK와는 상이한 메모리 블록 BLK에 기입하고 있다. 즉, 페이지 버퍼 내의 데이터가 페이지 사이즈에 도달할 때까지, 기입 동작을 대기할 필요가 없다. 따라서, 기입 속도를 향상할 수 있다. 즉, 기입 로우 어드레스를 변경하기 위해 리세트 명령을 발행하고 데이터를 재입력하여 기입을 행하는 것을 회피하고, 컨트롤러의 버퍼에 페이지 사이즈분의 데이터가 저장되는 것을 대기하고나서 기입한다고 하는 방법을 취하는 경우에 비하면, 로우 어드레스 변경을 이용한 본 방식이라면 페이지 사이즈분의 데이터를 컨트롤러의 버퍼에 저장해 둘 필요가 없어, 곧 NAND형 플래시 메모리에 데이터를 전송할 수 있기 때문에 기입 속도를 향상할 수 있다. In the memory system according to the present embodiment, when the data in the page buffer 31 is smaller than the page size, the data is written in a memory block BLK different from the memory block BLK in which data has been written so far. In other words, it is not necessary to wait for the write operation until the data in the page buffer reaches the page size. Therefore, the writing speed can be improved. That is, when a reset instruction is issued to change the write row address, the data is re-entered, and the write operation is avoided, and the write operation is waited for the page size data to be stored in the controller buffer. In comparison with this method using row address change, there is no need to store data for the page size in the buffer of the controller, and data can be transferred to the NAND type flash memory soon, thereby improving the writing speed.

또한 본 실시 양태에 따른 메모리 시스템이면, 카드 컨트롤러(12)는 로우 어드레스 변경 명령과, 새로운 로우 어드레스를 발행한다. 그리고 플래시 메모리(11)는, 로우 어드레스 변경 명령이 부여되었을 때에는, 새로운 로우 어드레스에 기초하여 메모리 셀 어레이(30)의 로우 방향을 선택한다. 따라서, 페이지 버퍼(31)에 전송한 데이터를 서로 다른 메모리 블록 BLK에 고속으로 기입할 수 있다.In addition, in the memory system according to the present embodiment, the card controller 12 issues a row address change command and a new row address. When the row address change command is given, the flash memory 11 selects the row direction of the memory cell array 30 based on the new row address. Therefore, the data transferred to the page buffer 31 can be written in different memory blocks BLK at high speed.

이 점, 카드 컨트롤러(12)가 로우 어드레스 변경 명령을 갖지 않는 경우에는, 페이지 버퍼(31) 내의 데이터를 상이한 메모리 블록 BLK에 기입하고자 하면, 카드 컨트롤러로부터 페이지 버퍼에의 재차의 데이터의 전송을 해야만 한다. 구체적으로 설명하면, 로우 어드레스를 변경하는 경우에는, 우선 기입 명령을 캔슬하기 위해 카드 컨트롤러는 리세트 명령을 출력한다. 다음으로 제1 기입 명령을 발행하여, 새로운 로우 어드레스를 지정한다. 다음으로 카드 컨트롤러는 페이지 버퍼에 데이터를 재입력한다. 마지막으로 제2 기입 명령을 발행한다. 이와 같이, 페이지 버퍼에의 재차의 전송이 필요로 되어, 이것이 시간의 로스로 된다. 본 실시 양태이면, 데이터의 재전송이 불필요해지기 때문에, 데이터의 기입 속도를 향상할 수 있다.In this regard, when the card controller 12 does not have a row address change command, when data in the page buffer 31 is to be written to a different memory block BLK, data must be transferred again from the card controller to the page buffer. do. Specifically, in the case of changing the row address, the card controller first outputs a reset command in order to cancel the write command. Next, a first write command is issued to designate a new row address. The card controller then rewrites the data into the page buffer. Finally, a second write command is issued. In this way, transmission to the page buffer is required again, which results in a loss of time. In this embodiment, since the data retransmission is unnecessary, the data writing speed can be improved.

<제2 실시 양태>Second Embodiment

다음으로, 본 발명의 제2 실시 양태에 따른 메모리 시스템에 대하여 설명한다. 본 실시 양태는, 상기 제1 실시 양태에 따른 구성에서, 1페이지 미만의 데이터 사이즈를 갖는 복수의 데이터를 집약하여 1페이지를 구성하는(이것을 이하 데이 터의 집약이라고 부름) 방법에 관한 것이다. 도 1O은, 본 실시 양태에 따른 메모리 시스템에서의, 데이터의 집약 방법의 플로우차트이다. 또한, 본 실시 양태에 따른 NAND형 플래시 메모리(11)는, 제1 실시 양태에서 설명한 도 8 및 도 9에 도시하는 구성에서, 데이터 캐시를 더 구비하고 있다. 데이터 캐시는 페이지 버퍼와 마찬가지로 페이지 단위의 데이터를 일시적으로 유지한다.Next, a memory system according to the second embodiment of the present invention will be described. This embodiment relates to a method of forming one page by collecting a plurality of data having a data size of less than one page in the configuration according to the first embodiment (hereinafter, referred to as data aggregation). 10 is a flowchart of a data aggregation method in the memory system according to the present embodiment. The NAND flash memory 11 according to the present embodiment further includes a data cache in the configurations shown in FIGS. 8 and 9 described in the first embodiment. The data cache, like the page buffer, temporarily holds data in units of pages.

도시하는 바와 같이, 우선 카드 컨트롤러(12)의 MCU(22)는 읽어내기 명령을 플래시 메모리(11)에 출력한다(스텝 S30). 이 읽어내기 명령은, 통상의 단순한 데이터를 읽어낸다는 취지의 명령이 아니라, 데이터의 집약 명령의 일부로서의 읽어내기 명령이어도 된다. 읽어내기 명령과 함께, 카드 컨트롤러(12)로부터 어드레스가 플래시 메모리(11)에 부여된다. 다음으로 플래시 메모리(11)는, 스텝 S30에서 부여된 어드레스에 대응하는 페이지를 선택하여, 데이터를 페이지 단위로 데이터 버퍼에 읽어낸다(스텝 S31). 그 후, 페이지 버퍼에 읽어내어진 데이터는 데이터 캐시에 전송된다(스텝 S32). 계속해서 데이터 캐시에 전송된 데이터는 카드 컨트롤러(12)의 버퍼(26)에 전송된다(스텝 S33).As shown in the figure, first, the MCU 22 of the card controller 12 outputs a read command to the flash memory 11 (step S30). This read command may be a read command as part of a data intensive command, not a command for reading normal simple data. The address is given to the flash memory 11 from the card controller 12 together with the read command. Next, the flash memory 11 selects a page corresponding to the address given in step S30, and reads data into the data buffer in units of pages (step S31). Thereafter, the data read into the page buffer is transferred to the data cache (step S32). Subsequently, the data transferred to the data cache is transferred to the buffer 26 of the card controller 12 (step S33).

상기 스텝 S30 내지 S33의 모습을 도 11에 도시한다. 도 11은 카드 컨트롤러(12) 및 플래시 메모리(11)의 블록도이다. 도시하는 바와 같이, 메모리 블록 BLK0에는 2페이지분의 데이터 사이즈, 즉 4096바이트의 데이터 사이즈를 갖는 데이터 D1이 유지되고, 메모리 블록 BLK1에는 페이지 사이즈 미만의 데이터 사이즈, 예를 들면 1536바이트의 데이터 사이즈를 갖는 데이터 D2가 유지되고, 메모리 블록 BLKn에는 페이지 사이즈 미만의 데이터 사이즈, 예를 들면 512바이트의 데이터 사 이즈를 갖는 데이터 D3이 유지된다. 이러한 구성에서, 1536바이트의 데이터 D2와 512바이트의 데이터 D3을 집약하여, 2048바이트, 즉 1페이지의 사이즈를 갖는 데이터로서, 메모리 블록 BLK0에 베껴 쓰는 경우를 예로 설명한다. The state of said step S30-S33 is shown in FIG. 11 is a block diagram of the card controller 12 and the flash memory 11. As shown, data block DLK having a data size of two pages, that is, a data size of 4096 bytes, is held in the memory block BLK0, and a data size smaller than the page size, for example, a data size of 1536 bytes, is stored in the memory block BLK1. Data D2 is held, and data D3 having a data size of less than the page size, for example, a data size of 512 bytes, is held in the memory block BLKn. In this configuration, a case in which 1536 bytes of data D2 and 512 bytes of data D3 are collected and copied to the memory block BLK0 as data having a size of 2048 bytes, that is, one page will be described as an example.

도시하는 바와 같이, 카드 컨트롤러(12)로부터 읽어내기 명령이 부여되면, 로우 디코더(32)는 예를 들면 메모리 블록 BLK1 중 어느 하나의 워드선 WL을 선택한다. 그 결과, 페이지 버퍼(31)에는, 데이터 D2가 포함되는 페이지의 데이터가, 페이지 단위로 읽어내어진다. 페이지 단위로 읽어내어진 데이터를, 이하 페이지 데이터라고 부르는 경우가 있다. 이 시점에서 읽어내어진 페이지 데이터는, 1536바이트의 데이터 D2 이외에, (2048-1536)=512바이트의 불필요한 데이터가 포함된다. 계속해서, 데이터 버퍼에 읽어내어진 페이지 데이터 중의 데이터 D2는, 데이터 캐시(33)에 전송되고, 다시 버퍼(26)에 전송된다.As shown, when a read command is given from the card controller 12, the row decoder 32 selects any word line WL of the memory block BLK1, for example. As a result, the page buffer 31 reads the data of the page containing the data D2 in units of pages. Data read in units of pages may be referred to as page data below. The page data read at this time includes (2048-1536) = 512 bytes of unnecessary data in addition to 1536 bytes of data D2. Subsequently, the data D2 in the page data read into the data buffer is transferred to the data cache 33 and again to the buffer 26.

도 10으로 되돌아가서 설명을 계속한다. 스텝 S33 후, 카드 컨트롤러(12)의 MCU(22)는, 버퍼(26)에 전송된 데이터 D2에 대하여 에러 검출을 행하고, 에러가 검출된 경우에는 에러 정정을 행한다. 또한 플래시 메모리(11)는 카드 컨트롤러(12)가 에러 검출 및 에러 정정을 행하고 있는 동안에, 스텝 S31과는 상이한 데이터를 페이지 단위로 페이지 버퍼(31)에 읽어낸다(스텝 S34).Returning to Fig. 10, the explanation is continued. After step S33, the MCU 22 of the card controller 12 performs error detection on the data D2 transferred to the buffer 26, and performs error correction when an error is detected. In addition, the flash memory 11 reads data different from the step S31 into the page buffer 31 in units of pages while the card controller 12 performs error detection and error correction (step S34).

상기 스텝 S34의 모습을 도 12에 도시한다. 도시하는 바와 같이, 로우 디코더(32)는 예를 들면 메모리 블록 BLKn 중 어느 하나의 워드선 WL을 선택한다. 그 결과, 페이지 버퍼(31)에는, 512바이트의 데이터 D3이 포함되는 페이지의 데이터가, 페이지 단위로 읽어내어진다. 또한, 스텝 S34에서 선택되는 워드선 WL에 대응 하는 로우 어드레스는, 스텝 S30에서 부여되어도 되고, 카드 컨트롤러(12)가 에러 검출 및 에러 정정을 행하기 전의 어느 하나의 시점에서 부여된다. 이 때, 데이터 D2와 집약하여 1페이지분의 데이터 사이즈로 하기 위해, 어느 쪽의 데이터(여기서는 데이터 D3)를 읽어내는 것이 적절할지는, 카드 컨트롤러(12)가 판단한다. 즉, 카드 컨트롤러(12)는 어느 쪽의 영역의 어떠한 데이터가 저장되어 있는지를 테이블로서 유지하고 있으므로, 이 테이블을 참조하여, 적절한 데이터를 선택한다. 또한, 도 12의 예에서는 메모리 블록 BLK0과는 상이한 메모리 블록 BLKn으로부터 데이터를 읽어내고 있지만, 동일한 메모리 블록 BLK0 내의 별도의 페이지로부터 읽어내어도 된다. The state of said step S34 is shown in FIG. As shown, the row decoder 32 selects the word line WL of any one of the memory blocks BLKn, for example. As a result, the page buffer 31 reads the data of the page containing 512 bytes of data D3 in units of pages. The row address corresponding to the word line WL selected in step S34 may be given in step S30, and is given at any point before the card controller 12 performs error detection and error correction. At this time, the card controller 12 determines which data (here, data D3) is appropriate to read in order to make the data size for one page aggregated with the data D2. That is, since the card controller 12 maintains as a table which data of which area is stored, the card controller 12 refers to this table and selects the appropriate data. In the example of FIG. 12, data is read from the memory block BLKn different from the memory block BLK0, but may be read from a separate page in the same memory block BLK0.

도 10으로 되돌아가서 설명을 계속한다. 스텝 S34 후, 플래시 메모리는 스텝 S34에서 페이지 버퍼(31)에 읽어내어진 데이터 중, 필요한 데이터만을 데이터 캐시(33)에 전송한다(스텝 S35). 이 때, 데이터 캐시(33)에는 스텝 S32에서 전송된, 페이지 사이즈 미만의 데이터가 유지되어 있다. 즉, 데이터 캐시(33)에는 빈 영역이 있다. 바꿔 말하면, 스텝 S32에서는 페이지 단위로 데이터가 읽어내어지기 때문에, 필요한 데이터 이외에, 이 데이터와 동일 페이지에 있는 불필요한 데이터도 데이터 캐시(33)에는 유지되어 있다. 마찬가지로 스텝 S34에서도 데이터는 페이지 단위로 읽어내어지므로, 불필요한 데이터도 함께 데이터 버퍼에 읽어내어진다. 따라서 스텝 S35에서는, 스텝 S34에서 읽어내어진 페이지 단위의 데이터 중, 필요한 데이터만을, 데이터 캐시(33)에서 불필요한 데이터가 유지되어 있는 영역에 전송한다. 그 결과, 데이터 캐시(33)에는, 스텝 S32에서 읽어내어진 페이지 사이즈 미만의 데이터와, 스텝 S34에서 읽어내어진 페이지 사이즈 미만의 데이터가 유지되고, 양자를 합쳐서 정확히 1페이지와 동일한 데이터 사이즈로 된다(스텝 S36). 즉, 2개의 데이터가 페이지 사이즈로 집약된다. 그 후, 스텝 S35에서 데이터 캐시(33)에 전송된 데이터가, 카드 컨트롤러(12)의 버퍼(26)에 전송된다(스텝 S37). 그리고 MCU(22)가 에러 검출 및 에러 정정을 행한다(스텝 S38).Returning to Fig. 10, the explanation is continued. After step S34, the flash memory transfers only the necessary data out of the data read into the page buffer 31 in step S34 to the data cache 33 (step S35). At this time, the data cache 33 holds data smaller than the page size transmitted in step S32. That is, the data cache 33 has an empty area. In other words, in step S32, since data is read in units of pages, unnecessary data in the same page as this data is also held in the data cache 33 in addition to the required data. Similarly, in step S34, since data is read in units of pages, unnecessary data is also read in the data buffer. Therefore, in step S35, only the necessary data among the data in the page unit read in step S34 are transferred to the area where unnecessary data is held in the data cache 33. As a result, data less than the page size read in step S32 and data less than the page size read in step S34 are retained in the data cache 33 so that the data cache 33 has the same data size as exactly one page. (Step S36). In other words, two data are aggregated into a page size. Thereafter, the data transferred to the data cache 33 in step S35 is transferred to the buffer 26 of the card controller 12 (step S37). Then, the MCU 22 performs error detection and error correction (step S38).

상기 스텝 S35 내지 S38의 모습을 도 13에 도시한다. 도시하는 바와 같이, 데이터 버퍼(31)에 읽어내어진 데이터 D3을 포함하는 페이지 데이터 중 필요한 데이터 D3만이, 데이터 캐시(33)에 전송된다. 즉, 데이터 캐시(33)에는 1536바이트의 데이터 D3이 유지되어 있기 때문에, 남은 512바이트 분의 빈 영역이 있다. 따라서, 이 빈 영역에, 512바이트의 데이터 D3이 전송된다. 그 결과, 데이터 캐시(33)에는 데이터 D2와 데이터 D3이 유지되고, 데이터 D2와 데이터 D3을 합한 데이터 사이즈는, 정확히 1페이지의 데이터 사이즈 2048바이트로 된다. 그리고, 데이터 캐시(33) 내의 데이터 D3은 버퍼(26)에 전송된다. The state of said step S35-S38 is shown in FIG. As shown in the figure, only the necessary data D3 among the page data including the data D3 read into the data buffer 31 is transferred to the data cache 33. That is, since 1536 bytes of data D3 are held in the data cache 33, there is an empty area for the remaining 512 bytes. Therefore, 512 bytes of data D3 are transferred to this free area. As a result, the data cache 33 holds the data D2 and the data D3, and the data size obtained by adding the data D2 and the data D3 is exactly 2048 bytes of the data size of one page. The data D3 in the data cache 33 is then transferred to the buffer 26.

다시 도 10으로 되돌아가서 설명을 계속한다. 스텝 S38 후, MCU(22)는 어느 하나의 데이터에서 에러를 검출하고, 검출한 에러를 정정한 경우에는(스텝 S39, 예), 정정된 데이터를 데이터 캐시(33)에 전송한다(스텝 S40). 이 때, MCU(22)는 정정된 데이터만을 데이터 캐시(33)에 전송하고, 정정 전의 데이터와 치환한다. 그리고, 플래시 메모리(11)는 데이터 캐시(33)에 유지되는 데이터를, 페이지 단위로 메모리 셀 MC에 기입한다(스텝 S41).Returning to Fig. 10 again, the explanation is continued. After step S38, the MCU 22 detects an error in any one of the data, and when correcting the detected error (step S39, YES), transmits the corrected data to the data cache 33 (step S40). . At this time, the MCU 22 transmits only the corrected data to the data cache 33 and replaces it with the data before the correction. Then, the flash memory 11 writes data held in the data cache 33 into the memory cells MC in units of pages (step S41).

상기 스텝 S39 내지 S41의 모습을 도 14에 도시한다. 도시하는 바와 같이, 데이터의 정정이 있었던 경우에는, 데이터 캐시(33) 내의 데이터가 정정 후의 데이터로 치환된다. 그리고, 데이터 캐시(33) 내의 데이터(데이터 D2와 데이터 D3이 집약된 2048바이트의 데이터)가 데이터 버퍼(31)에 전송되고, 다시 메모리 셀 어레이(30)에 기입된다. 즉, 로우 디코더(32)는, 메모리 블록 BLK0에서, 데이터 D1에 연속한 어드레스에 대응하는 워드선 WL을 선택한다. 이에 의해, 데이터 D2, D3이 메모리 블록 BLK0의 동일 페이지 내에 기입된다. 또한, 로우 디코더(32)가 워드선 WL을 선택하기 위한 로우 어드레스는, 스텝 S41에서 카드 컨트롤러(12)로부터 로우 디코더(32)에 부여되어 있어도 되고, 스텝 S30 또는 스텝 S40에서 부여되어도 된다. The state of said step S39-S41 is shown in FIG. As shown in the figure, when data is corrected, the data in the data cache 33 is replaced with the corrected data. Data in the data cache 33 (2048 bytes of data in which data D2 and data D3 are collected) is transferred to the data buffer 31, and then written to the memory cell array 30 again. That is, the row decoder 32 selects the word line WL corresponding to the address continuous to the data D1 in the memory block BLK0. As a result, the data D2 and D3 are written in the same page of the memory block BLK0. The row address for the row decoder 32 to select the word line WL may be given to the row decoder 32 from the card controller 12 in step S41, or may be given in step S30 or step S40.

상기한 바와 같은 메모리 시스템이면, 하기의 (2)의 효과가 얻어진다. In the memory system as described above, the following effects (2) can be obtained.

(2) 페이지 사이즈 미만의 데이터의 집약을 간편하게 하여, 고속화할 수 있다. (2) Aggregation of data smaller than the page size can be simplified and speeded up.

본 실시 양태에 따른 메모리 시스템에서는, 페이지 버퍼(31)와 데이터 캐시(33) 사이에서, 페이지 단위 미만의 단위로 데이터의 수수를 행하고 있다. 따라서, 데이터의 집약을 간편하게 하여, 데이터의 집약 속도를 고속화할 수 있다. In the memory system according to the present embodiment, data is transferred between the page buffer 31 and the data cache 33 in units of less than a page unit. Therefore, data aggregation can be simplified and data aggregation speed can be increased.

페이지 버퍼와 데이터 캐시 사이의 데이터의 수수는, 페이지 사이즈 단위로 행해지는 것이 일반적이었다. 그러나 이 방법이면, 페이지 사이즈 미만의 데이터를 1페이지로 집약하는 처리는, 카드 컨트롤러(12)에서의 버퍼(26)에서 행할 필요가 있었다. 또한, 예를 들면 2회의 읽어내기 동작으로 읽어내어진 2개의 데이터를 집약하는 경우에는, 데이터 캐시는 나중에 읽어내어진 데이터를 유지하고, 먼저 읽 어내어진 데이터는 유지할 수 없다. 따라서, 읽어낸 데이터에서의 오류의 유무에 관계없이, 집약 후의 데이터는, 카드 컨트롤러(12)의 버퍼(26)로부터 데이터 캐시(33)에 전송되어야 한다. 이 전송이, 집약 처리에서 시간의 로스로 된다. The transfer of data between the page buffer and the data cache is generally done in page size units. In this method, however, the processing of collecting data smaller than the page size into one page had to be performed in the buffer 26 of the card controller 12. For example, in the case of aggregating two pieces of data read in two read operations, the data cache retains the data read later and cannot read the data read first. Therefore, regardless of whether there is an error in the read data, the aggregated data should be transferred from the buffer 26 of the card controller 12 to the data cache 33. This transfer results in a loss of time in the intensive process.

그러나 본 실시 양태이면, 페이지 버퍼(31)와 데이터 캐시(33) 사이에서, 페이지 단위 미만의 단위로 데이터의 수수를 행하고 있다. 즉, 데이터 캐시(33) 상에서 복수의 데이터를 1페이지로 집약할 수 있다. 따라서, 데이터에 오류가 있었던 경우에는, 정정된 데이터를 버퍼(26)로부터 데이터 캐시(33)에 전송할 필요가 있지만, 오류가 없었던 경우에는 전송은 불필요하다. 따라서, 데이터의 집약 처리를 간편하게 하여, 고속화할 수 있다. However, in this embodiment, data is transferred between the page buffer 31 and the data cache 33 in units of less than a page unit. That is, a plurality of data can be aggregated into one page on the data cache 33. Therefore, when there is an error in the data, it is necessary to transfer the corrected data from the buffer 26 to the data cache 33, but when there is no error, the transmission is unnecessary. Therefore, data intensive processing can be simplified and speeded up.

<제3 실시 양태>Third Embodiment

다음으로, 본 발명의 제3 실시 양태에 따른 메모리 시스템에 대하여 설명한다. 본 실시 양태는, 상기 제2 실시 양태에 따른 방법을 데이터의 기입 시에 적용한 것이다. 즉, 데이터의 기입 시에 기입 데이터가 페이지 사이즈 미만의 데이터 사이즈이었던 경우에, 데이터의 집약을 행함으로써 기입할 데이터를 페이지 사이즈로 하는 방법에 관한 것이다. 우선, 도 15를 이용하여 카드 컨트롤러(12)가 주체로 되어 행하는 처리에 대하여 설명한다. 도 15는, 카드 컨트롤러(12)에서의 처리를 도시하는 플로우차트이다. Next, a memory system according to the third embodiment of the present invention will be described. This embodiment applies the method according to the second embodiment when writing data. Namely, the present invention relates to a method of making data to be written into a page size by aggregating data when the write data was a data size less than the page size at the time of data writing. First, the processing performed mainly by the card controller 12 will be described with reference to FIG. 15. 15 is a flowchart showing processing in the card controller 12.

도시하는 바와 같이, 스텝 S10 내지 S17의 처리는 상기 제1 실시 양태와 마찬가지이므로 설명은 생략한다. 스텝 S15의 판정의 결과, 기입 데이터의 데이터 사이즈가 페이지 사이즈 미만이었던 경우(스텝 S16, 아니오), 카드 컨트롤러(12)의 MCU(22)는 기입 캔슬 명령을 플래시 메모리(11)에 출력한다(스텝 S50). 기입 캔슬 명령이란, 플래시 메모리(11)에 대하여 이후의 기입 동작을 중지시키는 명령이다. 계속해서 MCU(22)는, 플래시 메모리(11)에 데이터의 읽어내기 명령을 출력한다(스텝 S51). 읽어내기 명령과 함께, 읽어낼 데이터의 어드레스도, MCU(22)로부터 플래시 메모리(11)에 부여된다. 스텝 S51에서 읽어낼 데이터는, 스텝 S15, S16에서 페이지 사이즈에 충족하지 않았던다고 판정된 기입 데이터와 집약함으로써, 정확히 1페이지 사이즈로 되는 데이터이다. As shown, since the processes of steps S10 to S17 are the same as those of the first embodiment, description thereof is omitted. As a result of the determination in step S15, when the data size of the write data is less than the page size (step S16, NO), the MCU 22 of the card controller 12 outputs a write cancel command to the flash memory 11 (step S50). The write cancel command is a command for stopping the subsequent write operation to the flash memory 11. Subsequently, the MCU 22 outputs a data read command to the flash memory 11 (step S51). Along with the read command, the address of the data to be read is also given from the MCU 22 to the flash memory 11. The data to be read out in step S51 are data that becomes exactly one page size by aggregating with the write data determined that the page size is not satisfied in step S15 and S16.

그리고, 플래시 메모리(11)에서 데이터가 읽어내어지면, 그 읽어낸 데이터에 대하여 MCU(22)는 에러 검출 및 에러 정정을 행한다(스텝 S52). 그 후, 에러 정정을 행하였던 데이터만을 플래시 메모리(11)에 전송하고, 다시 플래시 메모리(11)에 대하여, 데이터 캐시(33) 내의 데이터의 기입을 명령한다(스텝 S53).When data is read from the flash memory 11, the MCU 22 performs error detection and error correction on the read data (step S52). Thereafter, only data that has been subjected to error correction is transferred to the flash memory 11, and the flash memory 11 is then instructed to write data in the data cache 33 (step S53).

다음으로 도 16을 이용하여 NAND형 플래시 메모리(11)가 주체로 되어 행하는 처리에 대하여 설명한다. 본 실시 양태에서는, 상기 스텝 S50에서 기입 캔슬 명령이 출력되었을 때의 동작에 대하여 설명한다. 그 밖의 동작은 제1 실시 양태와 마찬가지이다. 도 16은, 플래시 메모리(11)에서의 처리를 도시하는 플로우차트이다.Next, a process performed mainly by the NAND type flash memory 11 will be described with reference to FIG. In this embodiment, the operation when the write cancel command is output in step S50 will be described. Other operations are the same as in the first embodiment. 16 is a flowchart showing processing in the flash memory 11.

도시하는 바와 같이, 우선 플래시 메모리(11)는 카드 컨트롤러(12)로부터 기입 캔슬 명령을 수신한다(스텝 S60). 기입 캔슬 명령을 수신하면, 플래시 메모리(11)는 데이터의 기입을 중지하고, 데이터 캐시(33) 내의 데이터를 그대로 유지한다(스텝 S61). 그리고, 카드 컨트롤러(12)로부터 스텝 S51에서 부여되는 읽어내기 명령에 기초하여, 데이터를 페이지 단위로 페이지 버퍼(31)에 읽어낸다(스텝 S62). 그리고, 페이지 버퍼(31)에 읽어내어진 데이터 중, 필요한 데이터만을 데이터 캐시(33)에 전송한다(스텝 S35). 그 결과, 데이터 캐시(33)에는, 페이지 사이즈 미만의 기입 데이터와, 스텝 S62에서 읽어내어진 페이지 사이즈 미만의 데이터가 유지되고, 양자를 합쳐서 정확히 1페이지와 동일한 데이터 사이즈로 된다(스텝 S36). 즉, 2개의 데이터가 페이지 사이즈로 집약된다. 그 후, 스텝 S35에서 데이터 캐시(33)에 전송된 데이터가, 카드 컨트롤러(12)의 버퍼(26)에 전송된다(스텝 S37). 스텝 S35 내지 S37의 처리는, 제2 실시 양태에서 설명한 바와 같다.As shown in the figure, the flash memory 11 first receives a write cancel command from the card controller 12 (step S60). Upon receiving the write cancel command, the flash memory 11 stops writing data and keeps the data in the data cache 33 as it is (step S61). Then, data is read from the card controller 12 to the page buffer 31 in units of pages based on the read command given in step S51 (step S62). Of the data read into the page buffer 31, only necessary data is transferred to the data cache 33 (step S35). As a result, the write data smaller than the page size and the data smaller than the page size read out in step S62 are held in the data cache 33, so that the data cache 33 adds up to the same data size as exactly one page (step S36). In other words, two data are aggregated into a page size. Thereafter, the data transferred to the data cache 33 in step S35 is transferred to the buffer 26 of the card controller 12 (step S37). The processing of steps S35 to S37 is as described in the second embodiment.

그 후, 데이터에 관하여 오류 정정이 있는 경우에는, MCU(22)로부터 정정 후의 데이터를 수신(스텝 S63)한 후, 데이터 캐시(33) 내의 데이터를 당초의 로우 어드레스에 대응하는 페이지에 기입한다(스텝 S41).Thereafter, if there is an error correction with respect to the data, after receiving the corrected data from the MCU 22 (step S63), the data in the data cache 33 is written in the page corresponding to the original row address ( Step S41).

상기한 기입 동작의 모습을, 도 17 내지 도 19를 이용하여 설명한다. 도 17은 메모리 시스템의 블록도이며, 도 18 및 도 19는 메모리 카드의 블록도이다. 또한, 도 17 내지 도 19에서는, 1페이지의 데이터 사이즈가 2048바이트로서, 카드 컨트롤러(12)는 512바이트 단위의 데이터를 플래시 메모리(11)에 전송하는 경우를 도시하고 있고, 도면 중에서 사선으로 나타낸 영역은 기입 데이터를 나타낸다. 도 17에 도시하는 바와 같이, 메모리 블록 BLKn에는 페이지 사이즈 미만의 데이터 사이즈, 예를 들면 512바이트의 데이터 사이즈의 데이터 D4가 기입되어 있는 상황에서, 2페이지분의 데이터 사이즈(2048×2=4096바이트)를 갖는 데이터 D5 및 페이지 사이즈 미만의 데이터 사이즈, 예를 들면 1536바이트의 데이터 D6이 순차적으로 메모리 블록 BLK0에 기입되는 경우를 가정한다. 그리고, 데이터 D5는 이미 메모리 블록 BLK0에 기입되고, 데이터 D5에 연속한 어드레스에 데이터 D6이 기입되는 경우를 고려한다.The state of the above-described write operation will be described with reference to FIGS. 17 to 19. 17 is a block diagram of a memory system, and FIGS. 18 and 19 are block diagrams of a memory card. 17 to 19 show a case where the data size of one page is 2048 bytes, and the card controller 12 transfers data in units of 512 bytes to the flash memory 11, which is indicated by diagonal lines in the figure. The area represents the write data. As shown in Fig. 17, in a situation in which data D4 having a data size smaller than the page size, for example, a data size of 512 bytes, is written in the memory block BLKn (2048 x 2 = 4096 bytes) Assume a case where data D5 having a) and a data size smaller than the page size, for example, 1536 bytes of data D6 are sequentially written to the memory block BLK0. Then, consider the case where the data D5 is already written in the memory block BLK0, and the data D6 is written in the address subsequent to the data D5.

우선 도 17에 도시하는 바와 같이, 데이터 D6은 페이지 사이즈 미만이므로, MCU(22)는 기입 캔슬 명령을 플래시 메모리(11)에 출력한다. 그러면, 플래시 메모리(11)의 로우 디코더(32)는 워드선 WL의 비선택으로 하고, 데이터 캐시(33)에 전송된 데이터 D6의 메모리 블록 BLK0에의 기입 동작이 중지된다. First, as shown in FIG. 17, since the data D6 is smaller than the page size, the MCU 22 outputs a write cancel command to the flash memory 11. Then, the row decoder 32 of the flash memory 11 makes the word line WL unselected, and the write operation to the memory block BLK0 of the data D6 transferred to the data cache 33 is stopped.

다음으로 도 18에 도시하는 바와 같이, MCU(22)는 플래시 메모리(11)에 대하여 예를 들면 메모리 블록 BLKn으로부터 데이터 D4의 읽어내기 명령과 어드레스를 출력한다. 이에 응답하여 플래시 메모리(11)는, 메모리 블록 BLKn으로부터 데이터 D4가 포함되는 페이지의 데이터를 페이지 단위로 데이터 버퍼(31)에 읽어낸다. 또한, 데이터 버퍼(31)에 읽어낸 페이지 데이터 중, 512바이트의 데이터 사이즈의 데이터 D4만을 데이터 캐시(33)에 전송한다. 이 때, 데이터 캐시(33)에는 1536바이트의 데이터 D6가 유지되어 있기 때문에, 남은 512바이트 분의 빈 영역이 있다. 따라서, 이 빈 영역에, 512바이트의 데이터 D4가 전송된다. 그 결과, 데이터 캐시(33)에서는 데이터 D6과 데이터 D4가 집약되어, 합쳐서 정확히 1페이지의 데이터 사이즈로 된다. 또한 데이터 캐시(33) 내의 데이터 D4는, 카드 컨트롤러(12)의 버퍼(26)에 전송되어, 오류 검출 및 오류 정정이 행해진다. Next, as shown in FIG. 18, the MCU 22 outputs the read command and the address of the data D4 from the memory block BLKn, for example, to the flash memory 11. In response, the flash memory 11 reads the data of the page including the data D4 from the memory block BLKn into the data buffer 31 in units of pages. In addition, only the data D4 having a data size of 512 bytes among the page data read into the data buffer 31 is transferred to the data cache 33. At this time, since 1536 bytes of data D6 are held in the data cache 33, there is an empty area for the remaining 512 bytes. Therefore, 512 bytes of data D4 are transferred to this free area. As a result, in the data cache 33, the data D6 and the data D4 are aggregated together to have a data size of exactly one page. In addition, the data D4 in the data cache 33 is transferred to the buffer 26 of the card controller 12 to perform error detection and error correction.

그 후 도 19에 도시하는 바와 같이, 오류 정정이 행해진 경우에는 정정된 데이터가 데이터 캐시(33)에 덧씌워져, 데이터 캐시(33)에 유지되는 데이터 D6과 데이터 D4가, 메모리 블록 BLK0에서의 동일 페이지 내에 기입된다. 데이터 D4와 데 이터 D6이 기입되는 페이지는, 당초 데이터 D6이 기입되어야 하였던, 데이터 D5에 연속한 어드레스에 대응하는 영역이다. Subsequently, as shown in FIG. 19, when error correction is performed, the corrected data is overwritten in the data cache 33 so that data D6 and data D4 held in the data cache 33 are the same in the memory block BLK0. It is written in the page. The page in which the data D4 and the data D6 are written is an area corresponding to an address subsequent to the data D5 in which the data D6 was originally to be written.

상기 구성의 메모리 시스템이면, 제2 실시 양태에서 설명한 (2)의 효과 외에, 하기의 (3)의 효과가 얻어진다. In the above-described memory system, in addition to the effects of (2) described in the second embodiment, the following effects (3) can be obtained.

(3) 데이터의 집약 처리를 효율화할 수 있다. (3) The data intensive process can be made efficient.

본 실시 양태에 따른 메모리 시스템이면, 페이지 버퍼(31)와 데이터 캐시(33) 사이에서의 페이지 단위 미만의 단위에서의 데이터의 수수를 이용하여, 데이터의 기입 시에 데이터의 집약을 행하고 있다. 데이터의 집약 처리를 효율적으로 행할 수 있다. In the memory system according to the present embodiment, the data is aggregated at the time of writing data by using the number of data in units less than the page unit between the page buffer 31 and the data cache 33. The data intensive process can be performed efficiently.

상기한 바와 같이, 본 발명의 제1 내지 제3 실시 양태에 따른 구성이면, NAND형 플래시 메모리의 동작 속도를 향상할 수 있다. 또한, 상기 제2, 제3 실시 양태에서 데이터의 집약을 행할 때에, 어느 쪽의 데이터를 읽어내어 집약하면 정확히 1페이지분의 데이터 사이즈로 되는지 등의 정보는, 카드 컨트롤러(12) 자신이 예를 들면 RAM(25) 등에 테이블로서 유지하고 있다. 즉, 카드 컨트롤러(12)는 어느 어드레스에 어떠한 데이터 사이즈의 데이터가 기입되어 있는지를 파악하고 있으므로, 그 중의 어느 쪽인가 적절한 것을 선택하여 읽어내기 명령을 내면 된다. As described above, with the configuration according to the first to third embodiments of the present invention, the operation speed of the NAND type flash memory can be improved. When the data is aggregated in the second and third embodiments, information such as which data is read and aggregated to exactly one page size is used by the card controller 12 itself. For example, the RAM 25 is held as a table. That is, since the card controller 12 knows what data size data is written to which address, it is sufficient to select an appropriate one of them and issue a read command.

또한, 상기 제2, 제3 실시 양태는, 파일 시스템에 응용함으로써 보다 현저한 효과가 얻어진다. 이하, 파일 시스템에 대하여 간단히 설명한다. 파일 시스템이란, 메모리에 기록되어 있는 파일(데이터)을 관리하는 방식의 것이다. 이하에서는 FAT(File Allocation Table) 파일 시스템을 예로 들어 설명한다. 파일 시스템에서 는, 메모리에서의 파일이나 폴더 등의 디렉토리 정보의 작성 방법, 파일이나 폴더 등의 이동 방법이나 삭제 방법, 데이터의 기록 방식, 관리 영역의 장소나 이용 방법 등이 정해진다. 도 20은, 상기 실시 양태에 따른 NAND형 플래시 메모리(11)의 메모리 공간의 개념도이다. Further, the above-mentioned second and third embodiments have a more remarkable effect by applying to a file system. The file system will be briefly described below. The file system is a method of managing a file (data) recorded in a memory. Hereinafter, a file file allocation table (FAT) file system will be described. In the file system, a method of creating directory information such as a file or folder in memory, a method of moving or deleting a file or folder, a data recording method, a location or a use method of a management area, and the like are determined. 20 is a conceptual diagram of a memory space of the NAND type flash memory 11 according to the embodiment.

도시하는 바와 같이 메모리 공간은, 개략적으로는 유저 데이터 영역(40) 및 관리 영역(41)으로 나누어진다. 유저 데이터 영역(40)은, 유저에 의해 기입되는 정미의 데이터를 저장하는 영역이다. As shown, the memory space is roughly divided into a user data area 40 and a management area 41. The user data area 40 is an area for storing net data written by the user.

관리 영역(41)은, 예를 들면 부트 영역(42), 파티션 정보 영역(43), FAT1(44), 및 FAT2(45), 및 루트 디렉토리 엔트리 영역(46)을 포함하고 있다. 부트 영역(42)은, 예를 들면 부트 정보를 기억한다. 파티션 정보 영역(43)은 파티션 정보를 기억한다. FAT1 및 FAT2는, 데이터가 어느 쪽의 어드레스에 기억되어 있는지를 기억한다. 이하, FAT1, FAT2에 대하여 간단히 설명한다. The management area 41 includes, for example, a boot area 42, a partition information area 43, a FAT1 44, a FAT2 45, and a root directory entry area 46. The boot area 42 stores boot information, for example. The partition information area 43 stores partition information. FAT1 and FAT2 store at which address the data is stored. The following will briefly describe FAT1 and FAT2.

유저 데이터 영역(40)은, 클러스터라고 불리는 복수의 영역을 포함하고 있다. 그리고, 기입되는 데이터가 클러스터 사이즈보다 큰 경우, 클러스터 단위로 분할되어 기억된다. 이 때, 데이터가 기입되는 클러스터는 연속하지 않은 경우가 있다. 즉, 1개의 데이터가 장소적으로 떨어진 클러스터에 기입된다. 이 때에, 데이터가 어느 클러스터로 분할되어 기입되었는지를 관리하기 위한 관리 데이터가, FAT1, FAT2에 기억된다. The user data area 40 includes a plurality of areas called clusters. When the data to be written is larger than the cluster size, the data is divided into cluster units and stored. At this time, clusters into which data is written may not be continuous. That is, one piece of data is written to clusters that are separated from each other locally. At this time, management data for managing in which cluster the data is divided and written is stored in FAT1 and FAT2.

루트 디렉토리 엔트리 영역(46)은, 루트 디렉토리 엔트리의 정보를 기억한다. 그리고, 파일명 또는 폴더명, 파일 사이즈, 속성 및 파일의 갱신 일시 등과 함께, FAT1, FAT2로 나타내어진 어느 클러스터가 파일의 선두 클러스터인지를 나타내는 플래그를 기억한다. The root directory entry area 46 stores information of the root directory entry. A flag indicating which cluster represented by FAT1 or FAT2 is the first cluster of the file is stored along with the file name or folder name, file size, attributes, update date and the like of the file.

상기 관리 영역 내의 각 데이터(이하 관리 데이터라고 부름), 특히 FAT1, FAT2는, 빈번하게 갱신이 행해지는 데이터로서, 또한 그 데이터 사이즈는 작아, 1페이지에 미치지 못하는 데이터 사이즈인 것이 통상이다. NAND형 플래시 메모리에서는 데이터의 덧씌우기가 금지되어 있기 때문에, 이와 같이 빈번하게 갱신되는 데이터는, 어느 쪽인가의 소거 메모리 블록(이것을 캐시 블록이라고 부름)에 일시적으로 기입된다. 그리고, 데이터가 갱신될 때마다, 캐시 블록에 순차적으로 기입되어 간다. 그리고 소정의 타이밍에서, 캐시 블록 내의 최신의 데이터가, 별도의 메모리 블록에 베껴 쓰여진다(이것을 캐시의 철수라고 부름). 이 캐시의 철수의 고속화의 관점으로부터도, 상기 실시 양태에 따른 방법을 이용하는 것이 바람직하다. 이 점에 대해, 이하 설명한다. Each data in the management area (hereinafter referred to as management data), in particular FAT1 and FAT2, is data that is frequently updated, and its data size is small and usually less than one page. Since the overwriting of data is prohibited in the NAND type flash memory, the data frequently updated in this manner is temporarily written in any erase memory block (this is called a cache block). Each time data is updated, it is sequentially written to the cache block. At a predetermined timing, the latest data in the cache block is copied to another memory block (this is called withdrawal of the cache). It is also preferable to use the method according to the above embodiment from the viewpoint of speeding up the withdrawal of the cache. This point is demonstrated below.

도 21은 메모리 블록 BLK0의 개념도이다. 도시하는 바와 같이 메모리 블록 BLKO은 128페이지를 구비하고, 각 페이지에서의 512바이트 단위마다 어드레스 "000", "001", "002", … "1FF"가 할당되어 있는 것으로 한다. 이 메모리 블록 BLK0에 대하여, 5회의 기입 A~E가 행해진 경우를 생각한다. 기입 A는, 어드레스 "000"에 대한 512바이트의 데이터의 기입이다. 기입 B는, 어드레스 "005"에 대한 1024바이트의 데이터의 기입이다. 기입 C는, 어드레스 "03F"에 대한 2048바이트의 데이터의 기입이다. 기입 D는, 어드레스 "000"에 대한 1024바이트의 데이터의 기입이다. 기입 E는, 어드레스 "003"에 대한 1024바이트의 데이터의 기입이다. 이 들 기입 데이터는 예를 들면 관리 데이터 등의 빈번하게 갱신이 있는 데이터로서, 우선 캐시 블록에 기입되는 것이라고 가정한다. 21 is a conceptual diagram of a memory block BLK0. As shown, the memory block BLKO has 128 pages, and addresses " 000 ", " 001 ", " 002 " It is assumed that "1FF" is allocated. Consider the case where five writes A to E are performed for this memory block BLK0. Write A is writing of 512 bytes of data to the address "000". Write B is writing of 1024 bytes of data to the address "005". Write C is writing of 2048 bytes of data to the address "03F". The write D is writing of 1024 bytes of data to the address "000". Write E is writing of 1024 bytes of data to the address "003". These write data are, for example, frequently updated data such as management data, and are assumed to be written to the cache block first.

우선, 종래 방법에 의한 캐시의 철수에 대하여 도 22를 이용하여 설명한다. 도 22는 캐시 블록과 메모리 블록 BLK0의 개념도로서, 캐시의 철수의 모습을 도시하고 있다.First, the withdrawal of the cache by the conventional method will be described with reference to FIG. Fig. 22 is a conceptual diagram of the cache block and the memory block BLK0, showing the withdrawal of the cache.

우선, 기입 A가 캐시 블록의 페이지 1에서 행해진다. 다음으로, 기입 B가 캐시 블록의 페이지2에서 행해진다. 다음으로, 기입 C가 캐시 블록의 페이지 3, 4에 걸쳐 행해진다. 계속해서, 기입 D가 캐시 블록의 페이지 6에서 행해진다. First, write A is done on page 1 of the cache block. Next, write B is done in page 2 of the cache block. Next, write C is performed over pages 3 and 4 of the cache block. Subsequently, write D is done on page 6 of the cache block.

그 후, 캐시의 철수가 행해진다. 우선, 어드레스 "000"에 기입될 데이터는, 기입 D에서 기입된 데이터이다. 즉, 기입 A에서 기입된 데이터는 기입 D에서의 데이터에 덧씌우기된 것으로 되어, 불필요하게 된다. 따라서, 우선 캐시 블록의 페이지 5로부터 데이터를 읽어낸다. 다음으로, 메모리 블록 BLK0의 어드레스 "002"에는 갱신이 이루어지지 않았으므로, 원래의 데이터를 그대로 사용하기 위해, 메모리 블록 BLK0의 어드레스 "002"의 데이터를 읽어낸다. 또한, 어드레스 "003"의 데이터는 기입 E에서 기입된 데이터이므로, 캐시 블록의 페이지 6으로부터 데이터를 읽어낸다. 이상의 3회의 데이터의 읽어내기의 결과, 메모리 블록 BLK0의 페이지1에 기입할 데이터가 집약된다. After that, the withdrawal of the cache is performed. First, data to be written at address "000" is data written at write D. In other words, the data written in the write A is overwritten with the data in the write D and becomes unnecessary. Thus, data is first read from page 5 of the cache block. Next, since the update was not made to the address "002" of the memory block BLK0, the data of the address "002" of the memory block BLK0 is read in order to use the original data as it is. Further, since the data at address "003" is the data written at write E, data is read from page 6 of the cache block. As a result of reading the above three times of data, data to be written to page 1 of the memory block BLK0 is collected.

다음으로, 상기 실시 양태를 적용한 경우의 캐시의 철수에 대하여 도 23을 이용하여 설명한다. 도 23은 캐시 블록과 메모리 블록 BLK0의 개념도로서, 캐시의 철수의 모습을 도시하고 있다. Next, the withdrawal of the cache when the above embodiment is applied will be described with reference to FIG. Fig. 23 is a conceptual diagram of the cache block and the memory block BLK0, showing the withdrawal of the cache.

우선, 종래와 마찬가지로, 기입 A가 캐시 블록의 페이지 1에서 행해진다. 다음으로, 기입 B가 캐시 블록의 페이지 2에서 행해진다. 다음으로, 기입 C가 캐시 블록의 페이지 3, 4에 걸쳐 행해진다. 계속해서, 기입 D가 캐시 블록의 페이지6에서 행해진다. 이 기입 동작 시에 종래 방법과 상이한 것은, 캐시 블록에의 기입이, 메모리 블록 BLK0 내의 데이터와 집약된 1페이지 사이즈의 데이터로서 행해지는 점이다.First, as in the prior art, write A is performed on page 1 of the cache block. Next, write B is done on page 2 of the cache block. Next, write C is performed over pages 3 and 4 of the cache block. Subsequently, write D is done in page 6 of the cache block. What is different from the conventional method in this write operation is that writing to the cache block is performed as data of one page size aggregated with data in the memory block BLK0.

즉, 페이지 1에의 기입 시에는, 기입 A에서 부여되는 512바이트의 데이터와, 메모리 블록 BLK0으로부터 어드레스 "001"~"003"의 1536바이트의 데이터가 집약되어, 페이지 1에 기입된다. 페이지 2 이후에의 기입 시에도 마찬가지이다. 페이지 6에의 기입 시에는, 기입 E에서 부여되는 512바이트의 데이터와, 캐시 블록으로부터의 데이터 D와 어드레스 "002"의 데이터가 집약된다. That is, at the time of writing to page 1, 512 bytes of data provided by write A and 1536 bytes of addresses "001" to "003" from memory block BLK0 are collected and written to page 1. The same applies to writing after page 2. At the time of writing to page 6, 512 bytes of data provided in write E, data D from the cache block, and data at address " 002 " are collected.

그 후, 캐시의 철수가 행해진다. 메모리 블록 BLK0의 페이지 1에 대응하는 데이터는, 캐시 블록의 페이지 1, 5, 6에 유지되어 있다. 이 중, 최신의 데이터를 유지하고 있는 페이지 6이 읽어내어지고, 메모리 블록 BLK0의 페이지 1에 기입된다. 또한, 캐시 블록의 페이지 2의 데이터가, 메모리 블록 BLK0의 페이지 2에 베껴 쓰여진다. After that, the withdrawal of the cache is performed. Data corresponding to page 1 of memory block BLK0 is held on pages 1, 5, and 6 of cache block. Of these, page 6 holding the latest data is read out and written to page 1 of the memory block BLK0. The data of page 2 of the cache block is also copied to page 2 of the memory block BLK0.

즉, 본 실시 양태를 이용한 경우에는, 캐시 블록에 데이터를 기입하는 시점에서, 기입 데이터와, 원래의 메모리 블록 내의 다른 데이터를 집약하여 1페이지 사이즈의 데이터로 하고, 이 데이터를 캐시 블록에 기입하고 있다. 따라서, 캐시의 철수 시에는, 페이지 단위로 데이터가 갱신된다. 따라서, 캐시의 철수 시에서 의 읽어내기 동작은, 1페이지당 1회이면 되어, 캐시의 철수를 고속화할 수 있다. That is, in the case of using the present embodiment, at the time of writing data into the cache block, the write data and other data in the original memory block are aggregated into one page size data, and the data is written into the cache block. have. Therefore, when the cache is withdrawn, data is updated in units of pages. Therefore, the read operation during the withdrawal of the cache only needs to be performed once per page, so that the withdrawal of the cache can be speeded up.

또한, 메모리 블록 BLK0과 캐시 블록과의 대응은, 도 22의 경우에는 512바이트의 영역마다 대응을 취해야만 하여, 그 정보량은 방대하다. 그러나 상기 실시 양태를 적용한 도 23의 경우에는 페이지 단위로 대응을 취하면 되어, 대응 정보를 적게 할 수 있다. Incidentally, in the case of Fig. 22, the correspondence between the memory block BLK0 and the cache block must be taken for each 512-byte area, and the information amount is enormous. However, in the case of Fig. 23 to which the above embodiment is applied, the correspondence can be reduced in units of pages, so that corresponding information can be reduced.

또한, 상기 캐시의 철수나 대응 관계의 점뿐만 아니라, 호스트 기기로부터의 읽어내기의 관점으로부터도, 상기 방법이 바람직하다. 즉, FAT의 갱신 등, 파일 시스템의 조작을 효율적으로 행하기 위해서는, 호스트 기기에서는, 데이터를 어느 정도 통합하여 미리 읽어들여 두는 것이 일반적으로 행해지고 있다. 즉, 플래시 메모리에서는 FAT 영역 등에서, 데이터 사이즈가 작은 랜덤한 기입이 발생함과 함께, 이들을 통합하여 일정한 큰 데이터량에서의 읽어내기가 발생하는 경우가 있다. 이러한 경우에서도, 본 실시 양태에 따른 방법이면, 데이터 사이즈가 작은 데이터가 페이지 단위로 통합되어 있기 때문에, 읽어내기 동작은 1페이지당 1회이면 되어, 동작 속도를 향상시킬 수 있다. The above method is preferable not only from the point of withdrawal of the cache and the correspondence relationship, but also from the viewpoint of reading from the host device. In other words, in order to efficiently perform file system operations, such as updating FAT, the host device generally performs data integration to some extent and reads it in advance. In other words, in a flash memory, random writing with a small data size occurs in the FAT area or the like, and there is a case where readings are generated at a constant large data amount by combining them. Even in such a case, in the method according to the present embodiment, since data having a small data size is integrated in units of pages, the read operation only needs to be performed once per page, so that the operation speed can be improved.

당 분야의 업자라면 부가적인 장점 및 변경들을 용이하게 생각해 낼 것이다. 따라서, 광의의 관점에서의 본 발명은 본 명세서에 예시되고 기술된 상세한 설명 및 대표 실시예들에 한정되는 것은 아니다. 따라서, 첨부된 청구 범위들 및 그 등가물들에 의해 정의된 바와 같은 일반적인 발명적 개념의 정신 또는 범위로부터 벗어나지 않고 다양한 변경이 가능하다.Those skilled in the art will readily come up with additional advantages and modifications. Accordingly, the invention in its broadest sense is not limited to the description and representative embodiments illustrated and described herein. Accordingly, various modifications are possible without departing from the spirit or scope of the general inventive concept as defined by the appended claims and their equivalents.

본 발명에 따르면, 데이터의 기입 속도를 향상할 수 있고, 페이지 사이즈 미만의 데이터의 집약을 간편하게 하여, 고속화할 수 있으며, 데이터의 집약 처리를 효율화할 수 있다.According to the present invention, the writing speed of data can be improved, the aggregation of data smaller than the page size can be simplified, the speed can be increased, and the data aggregation process can be made efficient.

Claims (16)

각각이 데이터를 유지 가능한 메모리 셀을 포함하는 복수의 메모리 블록을 구비한 불휘발성 반도체 메모리 - 각각의 메모리 블록 내의 데이터는 일괄하여 소거되고, 각각의 상기 메모리 블록 내에서, 상기 데이터는, 복수의 상기 메모리 셀의 집합인 페이지 단위로 일괄하여 기입됨 -; 및A nonvolatile semiconductor memory having a plurality of memory blocks each including memory cells capable of holding data, wherein data in each memory block is collectively erased, and in each of the memory blocks, the data is a plurality of the Collectively written in units of pages that are sets of memory cells; And 상기 불휘발성 메모리에 대하여 기입 데이터 및 제1 로우 어드레스를 전송하고, 또한 전송한 상기 제1 로우 어드레스의 변경 명령과, 그 제1 로우 어드레스와는 상이한 제2 로우 어드레스를 발행하는 컨트롤러 - 상기 불휘발성 반도체 메모리는, 상기 변경 명령이 발행되지 않을 때에는, 상기 제1 로우 어드레스에 대응하는 상기 메모리 셀에 상기 기입 데이터를 기입하고, 상기 변경 명령이 발행되었을 때에는, 상기 제2 로우 어드레스에 대응하는 상기 메모리 셀에 상기 기입 데이터를 기입함 -A controller for transferring write data and a first row address to said nonvolatile memory, and issuing a command for changing said first row address and a second row address different from said first row address-said nonvolatile The semiconductor memory writes the write data to the memory cell corresponding to the first row address when the change command is not issued, and the memory corresponding to the second row address when the change command is issued. Write the write data in a cell − 를 구비하는 메모리 시스템. Memory system having a. 제1항에 있어서,The method of claim 1, 상기 컨트롤러는, 상기 기입 데이터의 데이터 사이즈가 페이지 사이즈 미만인 경우에, 상기 변경 명령 및 상기 제2 로우 어드레스를 발행하고,The controller issues the change command and the second row address if the data size of the write data is less than a page size; 상기 제2 로우 어드레스는, 상기 제1 로우 어드레스에 대응하는 상기 메모리 블록과 상이한 상기 메모리 블록에 대응하는 메모리 시스템. And the second row address corresponds to the memory block different from the memory block corresponding to the first row address. 제1항에 있어서,The method of claim 1, 상기 컨트롤러는, 상기 불휘발성 반도체 메모리에 대하여, 제1 기입 명령, 상기 제1 로우 어드레스, 상기 기입 데이터, 및 제2 기입 명령을 순차적으로 출력하고, The controller sequentially outputs a first write command, the first row address, the write data, and a second write command to the nonvolatile semiconductor memory. 상기 변경 명령을 발행할 때에는, 상기 기입 데이터를 상기 불휘발성 반도체 메모리에 출력한 후, 상기 변경 명령 및 상기 제2 로우 어드레스를 순차적으로, 상기 불휘발성 반도체 메모리에 출력하고, When issuing the change command, after outputting the write data to the nonvolatile semiconductor memory, the change command and the second row address are sequentially output to the nonvolatile semiconductor memory, 상기 제2 기입 명령은, 상기 제2 로우 어드레스가 출력된 후에, 상기 불휘발성 반도체 메모리에 출력되고, The second write command is output to the nonvolatile semiconductor memory after the second row address is output, 상기 제1 기입 명령은, 상기 불휘발성 반도체 메모리에 대하여, 데이터의 기입 동작이 개시되는 것을 인식시키는 명령이며, The first write command is a command for recognizing that a data write operation is started for the nonvolatile semiconductor memory. 상기 제2 기입 명령은, 상기 불휘발성 반도체 메모리에 대하여 상기 기입 데이터를 상기 메모리 셀 블록에 기입시키는 명령인 메모리 시스템. And the second write command is a command for writing the write data to the memory cell block with respect to the nonvolatile semiconductor memory. 제1항에 있어서,The method of claim 1, 상기 컨트롤러는, 호스트 기기로부터 상기 데이터의 기입 액세스의 종료 또는 중단 명령을 수신하였을 때에, 상기 데이터의 데이터 사이즈가 페이지 사이즈 미만인지의 여부를 판정하는 메모리 시스템. And the controller determines whether or not a data size of the data is less than a page size when receiving a command to end or stop writing of the data from a host device. 제1항에 있어서,The method of claim 1, 상기 기입 데이터는, FAT 파일 시스템에서의 관리 데이터인 메모리 시스템.And the write data are management data in a FAT file system. 각각이 데이터를 유지 가능한 메모리 셀을 포함하는 복수의 메모리 블록을 구비한 상기 불휘발성 반도체 메모리 - 각각의 메모리 블록 내의 데이터는 일괄하여 소거되고, 각각의 상기 메모리 블록 내에서, 상기 데이터는, 복수의 상기 메모리 셀의 집합인 페이지 단위로 일괄하여 기입됨 -; 및Said nonvolatile semiconductor memory having a plurality of memory blocks each including a memory cell capable of holding data, wherein data in each memory block is collectively erased, and in each of said memory blocks, said data includes a plurality of Collectively written in units of pages that are sets of memory cells; And 상기 불휘발성 반도체 메모리의 동작을 제어하는 컨트롤러A controller to control an operation of the nonvolatile semiconductor memory 를 구비하고,And 상기 불휘발성 반도체 메모리는,The nonvolatile semiconductor memory, 상기 메모리 블록;The memory block; 상기 메모리 블록과의 사이에서 상기 페이지 단위에 의해 데이터를 수수하고, 1페이지분의 데이터를 유지 가능한 제1 버퍼 회로; 및A first buffer circuit which receives data by the page unit between the memory block and can hold one page of data; And 상기 제1 버퍼 회로 및 상기 컨트롤러 사이에서 1페이지분의 데이터 사이즈 이하의 데이터 단위에 의해 데이터를 수수하고, 1페이지분의 데이터를 유지 가능한 제2 버퍼 회로를 포함하는 메모리 시스템.And a second buffer circuit between the first buffer circuit and the controller for receiving data by a data unit equal to or less than a data size of one page and holding data for one page. 제6항에 있어서,The method of claim 6, 상기 컨트롤러는, 상기 불휘발성 반도체 메모리에 대하여 데이터의 읽어내기 명령 및 제1 로우 어드레스 및 제2 로우 어드레스를 발행하고,The controller issues a read command of data and a first row address and a second row address to the nonvolatile semiconductor memory. 상기 불휘발성 반도체 메모리는, 상기 제1 로우 어드레스에 대응하고, 또한 상기 페이지 사이즈 미만의 제1 데이터를 포함하는 제1 페이지 데이터를 상기 제2 버퍼 회로에 읽어내고, 또한 상기 제2 로우 어드레스에 대응하며, 또한 상기 페이지 사이즈 미만의 제2 데이터를 포함하는 제2 페이지 데이터를 상기 제1 버퍼 회로에 읽어내고, The nonvolatile semiconductor memory reads first page data corresponding to the first row address and includes first data smaller than the page size to the second buffer circuit, and also corresponds to the second row address. And read second page data including second data less than the page size into the first buffer circuit, 상기 제1 버퍼 회로는, 상기 제2 페이지 데이터 중의 상기 제2 데이터만을, 상기 제2 버퍼 회로에서 상기 제1 데이터 이외를 유지하는 영역에 전송하는 메모리 시스템. And the first buffer circuit transfers only the second data in the second page data to an area in the second buffer circuit that holds only the first data. 제7항에 있어서, The method of claim 7, wherein 상기 제2 버퍼 회로는, 상기 제1 데이터와 상기 제2 데이터를 상기 컨트롤러에 전송하고, The second buffer circuit transmits the first data and the second data to the controller, 상기 컨트롤러는, 전송된 상기 제1 데이터 및 제2 데이터에 대해, 에러의 검출을 행하고, 상기 에러가 검출된 경우에 에러 정정을 행하여, 상기 에러 정정이 행해진 적어도 상기 제1, 제2 데이터 중 어느 하나를 상기 제2 버퍼 회로에 전송하고,The controller detects an error on the transmitted first data and the second data, performs error correction when the error is detected, and selects at least one of the at least first and second data on which the error correction is performed. Transfer one to the second buffer circuit, 상기 컨트롤러에서 상기 에러 정정이 행해진 경우, 에러 정정된 상기 적어도 제1, 제2 데이터 중 어느 하나가 상기 불휘발성 반도체 메모리에 기입되는 메모리 시스템. And when the error correction is performed in the controller, any one of the error corrected at least first and second data is written to the nonvolatile semiconductor memory. 제8항에 있어서,The method of claim 8, 상기 에러의 검출의 결과, 상기 에러가 검출되지 않은 경우에는, 상기 컨트롤러는 상기 제2 버퍼 회로에 상기 제2 데이터를 전송하지 않고, If the error is not detected as a result of the detection of the error, the controller does not transmit the second data to the second buffer circuit, 상기 제2 버퍼 회로에 유지되는 상기 제1, 제2 데이터가, 상기 불휘발성 반도체 메모리에 기입되는 메모리 시스템. And the first and second data held in the second buffer circuit are written to the nonvolatile semiconductor memory. 제6항에 있어서,The method of claim 6, 상기 컨트롤러는, 데이터의 기입 시에 제1 로우 어드레스를 발행함과 함께, 상기 제2 버퍼 회로에 대하여 제1 데이터를 전송하고,The controller issues a first row address when data is written, and transfers first data to the second buffer circuit. 상기 컨트롤러는, 상기 제2 버퍼 회로에 전송한 상기 제1 데이터의 데이터 사이즈가 페이지 사이즈 미만인 경우에, 기입 중지 명령, 데이터의 읽어내기 명령, 및 제2 로우 어드레스를 발행하고, The controller issues a write stop command, a read command of data, and a second row address when the data size of the first data transferred to the second buffer circuit is less than a page size; 상기 불휘발성 반도체 메모리는, 상기 기입 중지 명령에 응답하여 상기 제1 데이터를 상기 제2 버퍼 회로에 유지하면서 기입 동작을 중단하고, 상기 읽어내기 명령에 응답하여, 상기 제2 로우 어드레스에 대응하고 또한 상기 페이지 사이즈 미만의 제2 데이터를 포함하는 페이지 데이터를 상기 제1 버퍼 회로에 읽어내고, The nonvolatile semiconductor memory stops a write operation while maintaining the first data in the second buffer circuit in response to the write stop command, and corresponds to the second row address in response to the read command. Read page data including second data less than the page size into the first buffer circuit, 상기 제1 버퍼 회로는, 상기 페이지 데이터 중의 상기 제2 데이터만을, 상기 제2 버퍼 회로에서 상기 제1 데이터 이외를 유지하는 영역에 전송하고, The first buffer circuit transmits only the second data in the page data to a region in which the second buffer circuit holds other than the first data, 상기 제2 버퍼 회로는 상기 제1, 제2 데이터를, 상기 제1 로우 어드레스에 대응하는 페이지에 일괄하여 기입하는 메모리 시스템. And the second buffer circuit writes the first and second data collectively in a page corresponding to the first row address. 제10항에 있어서,The method of claim 10, 상기 제2 버퍼 회로는, 상기 제1 버퍼 회로로부터 전송된 상기 제2 데이터를 상기 컨트롤러에 전송하고, The second buffer circuit transmits the second data transmitted from the first buffer circuit to the controller, 상기 컨트롤러는, 전송된 상기 제2 데이터에 대해 에러의 검출을 행하고, 상기 에러가 검출된 경우에 에러 정정을 행하여, 상기 에러 정정이 행해진 상기 제2 데이터를 상기 제2 버퍼 회로에 전송하고, The controller detects an error on the transmitted second data, performs error correction when the error is detected, and transmits the second data on which the error correction is performed to the second buffer circuit, 상기 제2 버퍼 회로에 유지된 상기 제1 데이터와, 상기 컨트롤러로부터 상기 제2 버퍼 회로에 전송된 상기 제2 데이터가 상기 불휘발성 반도체 메모리에 기입되는 메모리 시스템.And the first data held in the second buffer circuit and the second data transferred from the controller to the second buffer circuit are written to the nonvolatile semiconductor memory. 제11항에 있어서,The method of claim 11, 상기 에러의 검출의 결과, 상기 에러가 검출되지 않은 경우에는, 상기 컨트롤러는 상기 제2 버퍼 회로에 상기 제2 데이터를 전송하지 않고, If the error is not detected as a result of the detection of the error, the controller does not transmit the second data to the second buffer circuit, 상기 제2 버퍼 회로에 유지되는 상기 제1, 제2 데이터가, 상기 불휘발성 반도체 메모리에 기입되는 메모리 시스템. And the first and second data held in the second buffer circuit are written to the nonvolatile semiconductor memory. 호스트 기기에 접속 가능하게 되고, 상기 호스트 기기로부터 기입 데이터 및 제1 로우 어드레스를 수신하는 호스트 인터페이스; 및A host interface connectable to a host device, the host interface receiving write data and a first row address from the host device; And 각각이 데이터를 유지 가능한 메모리 셀을 포함하는 복수의 메모리 블록을 구비한 상기 불휘발성 반도체 메모리에 대하여, 상기 기입 데이터를 전송하고, 또한 상기 제1 로우 어드레스의 변경 명령과, 그 제1 로우 어드레스와는 상이한 제2 로우 어드레스를 발행하는 연산 처리 장치For the nonvolatile semiconductor memory having a plurality of memory blocks each including a memory cell capable of holding data, the write data is transferred, the first row address change instruction, the first row address, Is an arithmetic processing unit that issues a different second row address 를 구비하고,And 상기 메모리 블록 내의 데이터는 일괄하여 소거되고, 각각의 상기 메모리 블록 내에서, 상기 기입 데이터는, 복수의 상기 메모리 셀의 집합인 페이지 단위로 일괄하여 기입되고, 상기 연산 처리 장치는, 상기 변경 명령에 의해, 상기 불휘발성 반도체 메모리에 대하여 상기 기입 데이터를 상기 제2 로우 어드레스에 대응하는 상기 페이지에 기입하도록 명령하는 불휘발성 반도체 메모리를 제어하는 카드 컨트롤러. The data in the memory block is erased in a batch, and in each of the memory blocks, the write data is collectively written in units of pages that are sets of a plurality of the memory cells, and the arithmetic processing unit is adapted to the change instruction. And control the nonvolatile semiconductor memory to instruct the nonvolatile semiconductor memory to write the write data to the page corresponding to the second row address. 제13항에 있어서,The method of claim 13, 상기 연산 처리 장치는, 상기 기입 데이터의 데이터 사이즈가 페이지 사이즈 미만인 경우에, 상기 변경 명령 및 상기 제2 로우 어드레스를 발행하고,The arithmetic processing unit issues the change instruction and the second row address when the data size of the write data is less than a page size; 상기 제2 로우 어드레스는, 상기 제1 로우 어드레스에 대응하는 상기 메모리 블록과 상이한 상기 메모리 블록에 대응하는 불휘발성 반도체 메모리를 제어하는 카드 컨트롤러. And the second row address controls a nonvolatile semiconductor memory corresponding to the memory block different from the memory block corresponding to the first row address. 제13항에 있어서,The method of claim 13, 상기 연산 처리 장치는, 상기 불휘발성 반도체 메모리에 대하여, 제1 기입 명령, 상기 제1 로우 어드레스, 상기 기입 데이터, 및 제2 기입 명령을 순차적으로 출력하고, The arithmetic processing unit sequentially outputs a first write command, the first row address, the write data, and a second write command to the nonvolatile semiconductor memory, 상기 변경 명령을 발행할 때에는, 상기 기입 데이터를 상기 불휘발성 반도체 메모리에 출력한 후, 상기 변경 명령 및 상기 제2 로우 어드레스를 순차적으로, 상기 불휘발성 반도체 메모리에 출력하고, When issuing the change command, after outputting the write data to the nonvolatile semiconductor memory, the change command and the second row address are sequentially output to the nonvolatile semiconductor memory, 상기 제2 기입 명령은, 상기 제2 로우 어드레스가 출력된 후에, 상기 불휘발성 반도체 메모리에 출력되고, The second write command is output to the nonvolatile semiconductor memory after the second row address is output, 상기 제1 기입 명령은, 상기 불휘발성 반도체 메모리에 대하여, 데이터의 기입 동작이 개시되는 것을 인식시키는 명령이고, The first write command is a command for recognizing that a write operation of data is started for the nonvolatile semiconductor memory, 상기 제2 기입 명령은, 상기 불휘발성 반도체 메모리에 대하여 상기 기입 데이터를 상기 메모리 셀 블록에 기입시키는 명령인 불휘발성 반도체 메모리를 제어하는 카드 컨트롤러.And the second write command is a command for writing the write data to the memory cell block with respect to the nonvolatile semiconductor memory. 제13항에 있어서,The method of claim 13, 상기 연산 처리 장치는, 상기 호스트 기기로부터 상기 데이터의 기입 액세스의 종료 또는 중단 명령을 수신하였을 때에, 상기 데이터의 데이터 사이즈가 페이지 사이즈 미만인지의 여부를 판정하는 불휘발성 반도체 메모리를 제어하는 카드 컨트롤러.And the arithmetic processing unit controls a nonvolatile semiconductor memory that determines whether a data size of the data is less than a page size when receiving a command to end or stop writing of the data from the host device.
KR1020070064437A 2006-06-30 2007-06-28 Memory system with nonvolatile semiconductor memory KR100884429B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00182631 2006-06-30
JP2006182631A JP5002201B2 (en) 2006-06-30 2006-06-30 Memory system

Publications (2)

Publication Number Publication Date
KR20080002646A KR20080002646A (en) 2008-01-04
KR100884429B1 true KR100884429B1 (en) 2009-02-19

Family

ID=39011388

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070064437A KR100884429B1 (en) 2006-06-30 2007-06-28 Memory system with nonvolatile semiconductor memory

Country Status (5)

Country Link
US (2) US7937523B2 (en)
JP (1) JP5002201B2 (en)
KR (1) KR100884429B1 (en)
CN (1) CN101097543B (en)
TW (1) TWI358020B (en)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI103329B1 (en) * 1997-12-22 1999-06-15 Nordberg Lokomo Oy Ways to attach a wear jaw to a jaw crusher and jaw crusher
US20100318723A1 (en) * 2007-02-23 2010-12-16 Masahiro Nakanishi Memory controller, nonvolatile memory device, and nonvolatile memory system
JP5032155B2 (en) * 2007-03-02 2012-09-26 株式会社東芝 Nonvolatile semiconductor memory device and nonvolatile semiconductor memory system
US7962683B2 (en) * 2007-08-15 2011-06-14 Silicon Motion, Inc. Flash memory, and method for operating a flash memory
US8185685B2 (en) 2007-12-14 2012-05-22 Hitachi Global Storage Technologies Netherlands B.V. NAND flash module replacement for DRAM module
KR101067457B1 (en) 2008-03-01 2011-09-27 가부시끼가이샤 도시바 Memory system
JP4653817B2 (en) * 2008-03-01 2011-03-16 株式会社東芝 Memory system
JP4592774B2 (en) * 2008-03-01 2010-12-08 株式会社東芝 Memory system
TWI385519B (en) * 2008-04-18 2013-02-11 Phison Electronics Corp Data writing method, and flash storage system and controller using the same
JP4649503B2 (en) * 2008-08-13 2011-03-09 株式会社東芝 Semiconductor device
TWI413984B (en) * 2008-10-16 2013-11-01 Silicon Motion Inc Flash memory apparatus and updating method
US8549209B2 (en) * 2008-11-04 2013-10-01 Mosaid Technologies Incorporated Bridging device having a configurable virtual page size
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
CN101859605B (en) * 2009-04-10 2013-05-01 国民技术股份有限公司 Method using flaw flash memory
TWI435215B (en) * 2009-08-26 2014-04-21 Phison Electronics Corp Method for giving read commands and reading data, and controller and storage system using the same
JP5657242B2 (en) 2009-12-09 2015-01-21 株式会社東芝 Semiconductor device and memory system
TWI416331B (en) * 2009-12-23 2013-11-21 Phison Electronics Corp Data writing method for flash memory, and controller and storage apparatus using the same
JP5708216B2 (en) * 2011-05-09 2015-04-30 ソニー株式会社 Flash memory device, memory control device, memory control method, and storage system
JP5768654B2 (en) * 2011-10-25 2015-08-26 ソニー株式会社 Storage control device, storage device, information processing system, and storage control method
CN103680610A (en) * 2012-09-03 2014-03-26 北京兆易创新科技股份有限公司 Method and device for write operation of NAND Flash storage device with differential storage
KR102133573B1 (en) 2013-02-26 2020-07-21 삼성전자주식회사 Semiconductor memory and memory system including semiconductor memory
EP3333853A1 (en) * 2013-03-07 2018-06-13 Charles I. Peddle High speed flash controllers
US9069660B2 (en) * 2013-03-15 2015-06-30 Apple Inc. Systems and methods for writing to high-capacity memory
US20150095551A1 (en) 2013-09-30 2015-04-02 Micron Technology, Inc. Volatile memory architecutre in non-volatile memory devices and related controllers
JP6107625B2 (en) * 2013-12-02 2017-04-05 ソニー株式会社 Storage control device, storage device, information processing system, and storage control method thereof
US9460019B2 (en) * 2014-06-26 2016-10-04 Intel Corporation Sending packets using optimized PIO write sequences without SFENCEs
JP2016028319A (en) * 2014-07-08 2016-02-25 富士通株式会社 Access control program, access control device, and access control method
KR20170008339A (en) * 2015-07-13 2017-01-24 에스케이하이닉스 주식회사 Memory system and operating method of memory system
US11809727B1 (en) * 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
CN109582235B (en) * 2018-11-27 2021-12-21 杭州宏杉科技股份有限公司 Management metadata storage method and device
CN109815711B (en) * 2018-12-21 2020-12-25 航天信息股份有限公司 Storage device, data storage method and data reading method
KR20210142974A (en) * 2020-05-19 2021-11-26 에스케이하이닉스 주식회사 Storage device and operating method thereof
JP2022047855A (en) 2020-09-14 2022-03-25 キオクシア株式会社 Memory system
CN113409849A (en) * 2021-05-21 2021-09-17 芯天下技术股份有限公司 Method, device, storage medium and terminal for reducing programming power consumption
CN113409852A (en) * 2021-06-17 2021-09-17 芯天下技术股份有限公司 Method, device, storage medium and terminal for improving flash memory programming efficiency
CN113409850A (en) * 2021-06-17 2021-09-17 芯天下技术股份有限公司 Method, device, storage medium and terminal for improving programming efficiency

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11224492A (en) 1997-11-06 1999-08-17 Toshiba Corp Semiconductor memory, non-volatile semiconductor memory, and flash memory
JP2005063038A (en) 2003-08-08 2005-03-10 Sony Corp Data processing device, method thereof, program thereof, and recording medium
WO2005050453A1 (en) 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. File recording device
JP2005332125A (en) 2004-05-19 2005-12-02 Victor Co Of Japan Ltd Memory controller and shared memory system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680647A (en) * 1983-09-26 1987-07-14 Pioneer Electronic Corporation Method for recording and reproducing video format signal
US5371885A (en) * 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
FR2710445B1 (en) * 1993-09-20 1995-11-03 Sgs Thomson Microelectronics Dynamic redundancy circuit for integrated circuit memory.
GB2285524B (en) 1994-01-11 1998-02-04 Advanced Risc Mach Ltd Data memory and processor bus
US6047352A (en) * 1996-10-29 2000-04-04 Micron Technology, Inc. Memory system, method and predecoding circuit operable in different modes for selectively accessing multiple blocks of memory cells for simultaneous writing or erasure
JPH11242630A (en) * 1997-12-26 1999-09-07 Mitsubishi Electric Corp Base band ic
JP2000067582A (en) * 1998-08-14 2000-03-03 Texas Instr Inc <Ti> Memory system and operating method for electronic device
US6449193B1 (en) * 2000-12-28 2002-09-10 Texas Instruments Incorporated Burst access memory system
JP3979486B2 (en) 2001-09-12 2007-09-19 株式会社ルネサステクノロジ Nonvolatile storage device and data storage method
US6850438B2 (en) * 2002-07-05 2005-02-01 Aplus Flash Technology, Inc. Combination nonvolatile memory using unified technology with byte, page and block write and simultaneous read and write operations
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
CN100349138C (en) 2003-08-08 2007-11-14 倚天资讯股份有限公司 Non-volatility memory access system and its cycling usage method of access space
JP4253272B2 (en) * 2004-05-27 2009-04-08 株式会社東芝 Memory card, semiconductor device, and control method of semiconductor memory
KR100568115B1 (en) * 2004-06-30 2006-04-05 삼성전자주식회사 Incremental merge method and memory system using the same
JP4713867B2 (en) * 2004-09-22 2011-06-29 株式会社東芝 Memory controller, memory device, and memory controller control method
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
JP4738038B2 (en) 2005-03-25 2011-08-03 株式会社東芝 Memory card
KR100634457B1 (en) * 2005-07-04 2006-10-16 삼성전자주식회사 Flash memory device capable of performing multi-bit and single-bit program operations with a single page buffer structure

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11224492A (en) 1997-11-06 1999-08-17 Toshiba Corp Semiconductor memory, non-volatile semiconductor memory, and flash memory
JP2005063038A (en) 2003-08-08 2005-03-10 Sony Corp Data processing device, method thereof, program thereof, and recording medium
WO2005050453A1 (en) 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. File recording device
JP2005332125A (en) 2004-05-19 2005-12-02 Victor Co Of Japan Ltd Memory controller and shared memory system

Also Published As

Publication number Publication date
KR20080002646A (en) 2008-01-04
US7937523B2 (en) 2011-05-03
TW200819976A (en) 2008-05-01
US20110185225A1 (en) 2011-07-28
CN101097543B (en) 2010-06-23
US20080046639A1 (en) 2008-02-21
TWI358020B (en) 2012-02-11
JP2008009942A (en) 2008-01-17
CN101097543A (en) 2008-01-02
JP5002201B2 (en) 2012-08-15

Similar Documents

Publication Publication Date Title
KR100884429B1 (en) Memory system with nonvolatile semiconductor memory
US10997065B2 (en) Memory system and operating method thereof
KR101165429B1 (en) Semiconductor memory device and access method and memory control system for same
KR100874998B1 (en) Data writing method of semiconductor integrated circuit device
US8356134B2 (en) Memory device with non-volatile memory buffer
US9025376B2 (en) Nonvolatile memory device and related method of operation
US7814264B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
US10466908B2 (en) Memory system that buffers data before writing to nonvolatile memory
JP4373943B2 (en) Memory controller, flash memory system, and flash memory control method
US8098523B2 (en) Semiconductor memory device with memory cell having charge accumulation layer and control gate and memory system
JP2008009919A (en) Card controller
US11803223B2 (en) Open channel solid state drive, nonvolatile memory system including the same and method of power loss protection of open channel solid state drive
JP5329689B2 (en) Memory controller and nonvolatile storage device
US8271721B2 (en) Data writing method and data storage device
US20090240868A1 (en) Management method, management apparatus, and controller for memory data access
JP2008084184A (en) Memory controller
US20050204115A1 (en) Semiconductor memory device, memory controller and data recording method
US8180951B2 (en) Memory system and method of controlling the memory system
US20080109588A1 (en) Memory Card and Method of Driving the Same
US11966327B2 (en) Memory system

Legal Events

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

Payment date: 20120119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130118

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee