KR100614469B1 - Storage device - Google Patents

Storage device Download PDF

Info

Publication number
KR100614469B1
KR100614469B1 KR1019997006688A KR19997006688A KR100614469B1 KR 100614469 B1 KR100614469 B1 KR 100614469B1 KR 1019997006688 A KR1019997006688 A KR 1019997006688A KR 19997006688 A KR19997006688 A KR 19997006688A KR 100614469 B1 KR100614469 B1 KR 100614469B1
Authority
KR
South Korea
Prior art keywords
data
block
address
empty block
controller
Prior art date
Application number
KR1019997006688A
Other languages
Korean (ko)
Other versions
KR20000070451A (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 KR20000070451A publication Critical patent/KR20000070451A/en
Application granted granted Critical
Publication of KR100614469B1 publication Critical patent/KR100614469B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명은 소용적 및 저소비전력의 블록소거형 기억장치와 그 액세스방법을 제공하는 것으로서, 메모리셀어레이(1)를 액세스하기 위한 논리어드레스와 물리어드레스의 대응관계를 기억하는 어드레스변환테이블과 빈블록의 위치를 나타내는 빈블록테이블을 메모리셀어레이(1) 자신의 임의의 블록에 기억시키고, 메모리셀어레이(1)로부터 데이터를 판독할 때는 메모리셀어레이(1)에 기억되어 있는 어드레스변환테이블을 참조하여 물리어드레스를 구하여 데이터를 판독하며, 또 데이터를 기록할 때는 메모리셀어레이(1)에 격납된 빈블록테이블로부터 빈블록을 판별하고, 그 빈블록에 데이터를 기록하며, 또한 갱신된 어드레스변환테이블과 빈블록테이블을 다른 빈블록에 기록하는 것을 특징으로 한다.SUMMARY OF THE INVENTION The present invention provides a block erasing memory device having a small capacity and low power consumption, and an access method thereof, comprising: an address translation table and an empty block for storing a correspondence relationship between a logical address and a physical address for accessing a memory cell array 1; The empty block table indicating the position of the memory is stored in an arbitrary block of the memory cell array 1 itself, and when reading data from the memory cell array 1, the address conversion table stored in the memory cell array 1 is referred to. To read the data by reading the physical address, and to write the data, the free block is determined from the free block table stored in the memory cell array 1, and the data is written to the free block. And write the empty block table to another empty block.

기억장치, 액세스방법Storage device, access method

Description

기억장치{STORAGE DEVICE}Storage {STORAGE DEVICE}

본 발명은 기억장치 및 액세스방법에 관한 것으로 특히 블록소거형 기억장치와 그 액세스방법에 관한 것이다.TECHNICAL FIELD The present invention relates to a storage device and an access method, and more particularly to a block erasing storage device and an access method thereof.

플래시메모리 등의 블록소거형 기억매체를 구비하고, 중앙처리장치(CPU)나 전용컨트롤러의 제어 하에 정보를 판독· 기록하는 블록소거형 기억장치가 알려져 있다.Background Art A block erasing memory device having a block erasing memory medium such as a flash memory and reading and writing information under control of a central processing unit (CPU) or a dedicated controller is known.

블록소거형 기억매체란, 데이터를 기록하기 위해서는 기록의 대상으로 되는 영역의 기억내용이 미리 소거되어 있지 않으면 안되고, 소거의 처리가 기록처리에 의해 취급되는 최소기억용량의 단위(일반적으로 페이지, 세그먼트 등으로 불린다)에 동등한 크기이거나 또는 보다 큰 단위(일반적으로 블록으로 불린다)로 밖에 실시할 수 없는 기억매체를 가리킨다.In the case of a block erasing storage medium, in order to record data, the storage contents of a region to be recorded must be erased in advance, and the unit of the minimum storage capacity (typically pages or segments) in which the erasing process is handled by the recording process Refers to a storage medium that can be implemented in a unit equal to, or larger than, a block (usually called a block).

블록소거형 기억장치는 외부로부터의 액세스를 관리하기 위해 빈블록의 위치를 나타내는 정보를 격납하는 빈블록테이블이나 논리어드레스와 물리어드레스의 대응관계를 나타내는 정보를 격납하는 어드레스변환테이블을 기억하는 SRAM(스태틱형 랜덤 액세스 메모리)등을 구비하고 있다. The block erasure type storage device includes an SRAM for storing an empty block table for storing information indicating the position of an empty block or an address translation table for storing information indicating a correspondence relationship between a logical address and a physical address in order to manage access from the outside. Static random access memory).

블록소거형 기억장치는 기록요구를 수신하면 빈블록테이블에 등록되어 있는 빈블록을 검색하고, 색출한 블록에 데이터를 기록하며, 그 블록의 물리어드레스와 논리어드레스의 대응관계를 어드레스변환테이블에 추가하고, 또한 그 블록을 빈블록테이블로부터 삭제한다.When the block erase type storage device receives a write request, the block erase type memory device searches for an empty block registered in the empty block table, writes data to the retrieved block, and adds a correspondence between the physical address and the logical address of the block to the address conversion table. Also, the block is deleted from the empty block table.

또 블록소거형 기억장치는 판독요구를 수신하면 판독대상데이터의 논리어드레스를 키로서 어드레스변환테이블을 검색하여 판독대상의 데이터가 기억되어 있는 위치의 물리어드레스를 판별하고, 그 위치로부터 데이터를 판독하고 있다.When the block erasing memory device receives the read request, the block erase type memory device searches the address conversion table using the logical address of the read target data as a key to determine the physical address of the position where the read target data is stored, and reads the data from the position. have.

이와 같은 기억장치에서는 SRAM 등이 차지하는 용적의 분량만큼 기억장치 전체의 용적도 증대한다, 이로 인해 이와 같은 기억장치는 JEIDA / PCMCIA 카드 등 저(低)용적이 요구되는 용도에 이용하는 경우에는 용적을 억제하기 위한 연구가 필요했었다.In such a memory device, the volume of the entire memory device is also increased by the amount of the space occupied by the SRAM. Thus, such a memory device can suppress the volume when it is used for applications requiring low volume such as JEIDA / PCMCIA cards. There was a need for research.

또 SRAM은 소비전력이 크고, 각종 테이블을 격납하기 위해 SRAM을 사용하면 기억장치 전체로서의 소비전력도 증가하여 버리고, JEIDA / PCMCIA 카드 등 저(低)소비전력이 요구되는 용도에 적합하지 않게 되어 버린다고 하는 문제가 있었다.In addition, SRAM consumes a lot of power, and if SRAM is used to store various tables, the power consumption of the entire storage device also increases, making it unsuitable for applications requiring low power consumption such as JEIDA / PCMCIA cards. There was a problem.

본 발명은 상기 실상(實狀)에 감안하여 이루어진 것으로, 소(小)용적 및 저소비전력의 블록소거형 기억장치와 그 액세스방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made in view of the foregoing circumstances, and an object thereof is to provide a block erasing memory device having a small volume and low power consumption, and an access method thereof.

상기 목적을 달성하기 위해 본 발명의 제 1 관점에 관련되는 기억장치는,The memory device according to the first aspect of the present invention for achieving the above object is,

물리어드레스가 할당된 복수의 메모리블록을 포함하는 기억수단(1)과,Storage means (1) comprising a plurality of memory blocks to which physical addresses are assigned;

상기 기억수단의 기억데이터를 메모리블록단위로 일괄하여 소거하는 소거수단(1e)과,Erasing means (1e) for collectively erasing the stored data of said storage means in units of memory blocks;

데이터와 논리어드레스를 입력하고, 해당 데이터의 상기 기억수단 내의 기억위치를 결정하며, 해당 데이터를 해당 기억위치에 기록하는 기록수단(4X, 4B, 5, 20)으로 구성되고, A recording means (4X, 4B, 5, 20) for inputting data and a logical address, determining a storage position of the data in the storage means, and recording the data in the storage position;

상기 기억수단은 상기 논리어드레스와 상기 기억수단의 물리어드레스의 대응관계를 나타내는 정보를 격납하는 어드레스변환테이블을 기억하며,The storage means stores an address conversion table for storing information indicating a correspondence relationship between the logical address and the physical address of the storage means,

상기 기록수단은 상기 데이터를 기록한 위치의 물리어드레스와 입력한 논리어드레스의 대응 지움을 나타내는 정보를 상기 어드레스변환테이블에 추가하고, 또는 상기 어드레스변환테이블을 갱신하는 수단(4X, 4B, 5, 20)을 구비하는 것을 특징으로 한다.The recording means adds (4X, 4B, 5, 20) information to the address conversion table or adds information indicating the correspondence between the physical address of the position at which the data is recorded and the input logical address; It characterized by having a.

이 구성의 기억장치에서는, 어드레스변환테이블은 블록소거형 기억매체인 기억수단에 기억되어 있다. 이로 인해 상기 기억수단 외에 어드레스변환테이블 기억용의 SRAM 등의 기억매체를 배치할 필요가 없다. 따라서 비교적 소용적으로 저소비전력의 블록소거형 기억장치를 제공할 수 있다.In the storage device of this configuration, the address conversion table is stored in the storage means which is a block erasing storage medium. This eliminates the necessity of disposing a storage medium such as an SRAM for address conversion table storage in addition to the storage means. Therefore, it is possible to provide a low power consumption block erasing memory device relatively relatively.

상기 기억장치는,The memory device,

상기 어드레스변환테이블이 기록되어 있는 블록의 물리어드레스를 기억하는 수단(20)과, Means (20) for storing physical addresses of blocks in which the address conversion table is recorded;

상기 어드레스변환테이블이 격납되어 있는 블록을 액세스하고, 판독대상데이터의 논리어드레스에 대응하는 물리어드레스를 판독하는 물리어드레스판독 수단(4X, 4B, 5, 20)과,Physical address reading means (4X, 4B, 5, 20) for accessing the block in which the address conversion table is stored and for reading the physical address corresponding to the logical address of the data to be read;

상기 물리어드레스판독수단에 의해 판독된 물리어드레스에 격납되어 있는 데 이터를 판독하여 출력하는 수단(4X, 4B, 5, 20)으로 구성되는 판독수단(4X, 4B, 5, 20)을 추가로 배치해도 좋다.A read means 4X, 4B, 5, 20, further comprising means 4X, 4B, 5, 20 for reading out and outputting data stored in the physical address read by the physical address reading means; You may also

이 판독수단에 의해 판독대상데이터의 물리어드레스를 기억수단에 격납된 어드레스변환테이블로부터 판별하여 판독할 수 있다.By this reading means, the physical address of the data to be read can be distinguished from the address conversion table stored in the storage means and read out.

상기 기억수단은 데이터를 기억하고 있지 않은 빈블록을 나타내는 정보를 격납하는 빈블록테이블을 기억해도 좋다.The storage means may store an empty block table that stores information indicating empty blocks that do not store data.

이와 같은 구성으로 하면 기억수단 외에 사용하는 SRAM 등의 메모리의 사용량을 또한 저감하고, 소용적화, 저소비전력화를 진행할 수 있다.With such a configuration, the amount of memory used for the SRAM and the like used in addition to the storage means can be further reduced, and the capacity and the power consumption can be reduced.

그리고, 상기 빈블록에 상기 정보가 기록되기 전에 존재한 상기 빈블록의 정보를 격납하는 상기 빈블록테이블은 제거되며, 그리고, 상기 빈블록기록수단에 의해 상기 빈블록에 상기 정보가 기록된 후에 잔존하는 상기 빈블록의 정보를 격납하는 상기 빈블록테이블을 상기 기억수단에 기억시키도록 하면 빈블록테이블에 포함되는 빈블록의 정보는 갱신되고, 수시로 최신의 빈블록정보를 얻을 수 있다. Then, the empty block table for storing information of the empty block existing before the information is recorded in the empty block is removed, and remains after the information is recorded in the empty block by the empty block recording means. When the empty block table for storing the empty block information is stored in the storage means, the empty block information included in the empty block table is updated, and the latest empty block information can be obtained at any time.

또 상기 기억수단은, 예를 들면 복수 칩의 플래시메모리에 의해 구성된 것으로 할 수 있다. 이 경우 상기 어드레스변환테이블(및 상기 빈블록테이블)은 어느 것인가 칩의 플래시메모리의 임의의 1개의 블록에 기억하면 좋다. 그리고, 어드레스변환테이블 및 빈블록테이블이 어느 칩의 어느 블록에 기억되어 있는지를 나타내는 정보를 기억하는 수단을 설치하면 좋다. The storage means can be constituted by, for example, a flash memory of a plurality of chips. In this case, the address conversion table (and the empty block table) may be stored in any one block of the flash memory of the chip. Then, a means for storing information indicating which block of which chip the address conversion table and the empty block table are stored may be provided.

상기 기억수단은, 예를 들면 상기 어드레스변환테이블과 상기 빈블록테이블을 1개의 블록 내에 기억한다. The storage means stores, for example, the address conversion table and the empty block table in one block.

이와 같은 구성으로 하면 어드레스변환테이블과 빈블록테이블의 격납을 위해 사용하는 블록을 1개로 억제하여 기억수단의 기억용량을 유효하게 사용할 수 있다. 또 이들 테이블의 기억위치의 관리 등이 용이하게 된다. With such a configuration, the block used for storing the address conversion table and the empty block table can be suppressed to one, and the storage capacity of the storage means can be effectively used. In addition, it becomes easy to manage the storage positions of these tables.

또 본 발명의 제 2 관점에 관련되는 기억장치는,Moreover, the memory | storage device which concerns on a 2nd viewpoint of this invention is

물리어드레스가 할당된 복수의 메모리블록을 포함하는 기억수단(1)과,Storage means (1) comprising a plurality of memory blocks to which physical addresses are assigned;

상기 기억수단의 기억데이터를 메모리블록단위로 일괄하여 소거하는 소거수단(1e)과,Erasing means (1e) for collectively erasing the stored data of said storage means in units of memory blocks;

기록대상의 데이터와 논리어드레스를 입력하고, 해당 데이터의 상기 기억수단 내의 기억위치를 결정하며, 해당 데이터를 해당 기억위치에 기록하는 기록수단(4X, 4B, 5, 20)으로 구성되고, A recording means (4X, 4B, 5, 20) for inputting data to be recorded and a logical address, determining a storage position of the data in the storage means, and recording the data at the storage position;

상기 기억수단은 상기 데이터를 기억하고 있지 않은 빈블록을 나타내는 빈블록정보를 기억하고 있으며,The storage means stores the free block information indicating the free block which does not store the data.

상기 기록수단은 상기 빈블록정보가 나타내는 빈블록에 상기 데이터를 기록하는 것을 특징으로 한다.And the recording means records the data in the empty block indicated by the empty block information.

이 구성에 따르면 빈블록정보는 블록소거형 기억매체인 기억수단에 기억되어 있다. 이로 인해 상기 기억수단 외에 빈블록정보 기억용의 SRAM 등 외의 기억매체를 배치할 필요가 없다. 따라서 비교적 소용적으로 저소비전력의 블록소거형 기억장치를 제공할 수 있다. According to this configuration, the empty block information is stored in a storage means which is a block erasing storage medium. For this reason, it is not necessary to arrange a storage medium other than the storage means other than the SRAM for free block information storage. Therefore, it is possible to provide a low power consumption block erasing memory device relatively relatively.

또 상기 기록수단은 상기 기억수단에 기억된 상기 빈블록정보를 상기 기록수단에 의해 상기 빈블록에 상기 데이터가 기록된 후에 잔존하는 상기 빈블록의 정보 를 나타내는 상기 빈블록정보에 갱신하는 수단(1e, 4X, 4B, 5, 20)을 추가로 구비하도록 하면 상기 빈블록정보는 갱신되고, 수시로 최신의 빈블록정보를 얻을 수 있다.The recording means further includes means for updating the empty block information stored in the storage means to the empty block information indicating information of the empty block remaining after the data is recorded in the empty block by the recording means (1e). , 4X, 4B, 5, 20), the empty block information is updated, and the latest empty block information can be obtained at any time.

상기 빈블록정보는 각 빈블록의 일부에 기억되고, 다른 1개의 빈블록을 나타내도록 연쇄적으로 등록된 연쇄정보로 구성되는 것으로 할 수 있다. 이 경우 상기 기록수단은 상기 연쇄정보에 따라 빈블록을 판별하고, 해당 빈블록에 상기 데이터를 기록하는 수단(4X, 4B, 5, 20)을 구비하는 것으로 할 수 있다. The empty block information may be constituted by chain information stored in a part of each empty block and registered serially to represent another empty block. In this case, the recording means may be provided with means (4X, 4B, 5, 20) for discriminating the empty block according to the chain information and for recording the data in the empty block.

이 구성에 따르면 빈블록테이블을 격납하기 위해 1개의 블록을 사용할 필요가 없어 기억매체의 사용효율이 높다. 또 빈블록의 연쇄정보에 의거하여 기록대상의 블록을 특정하기 때문에 각 블록의 사용빈도를 균일화할 수 있다,According to this configuration, since one block does not need to be used to store the empty block table, the use efficiency of the storage medium is high. In addition, since the block to be recorded is specified based on the chain information of the free block, the frequency of use of each block can be made uniform.

상기 빈블록정보를 연쇄정보로 구성하는 경우 최초의 빈블록어드레스를 기억하는 선두(先頭)빈블록기억수단(20) 등을 배치하고, 여기에 기억된 물리어드레스가 붙여진 빈블록에 데이터를 기록하며, 선두빈블록기억수단의 내용을 데이터를 기록한 블록에 등록되어 있는 연쇄정보로 갱신해도 좋다.When the empty block information is composed of chain information, the first empty block storage means 20 for storing the first empty block address is arranged, and the data is recorded in the empty block to which the stored physical address is attached. The contents of the first empty block storage means may be updated with the chain information registered in the block in which data is recorded.

기억수단을 플래시메모리 등으로 구성하는 경우, 기억영역은 데이터영역과 리던던트영역으로 구성된다. 이 경우 연쇄정보를 상기 리던던트영역에 격납하여 둘 수 있다.When the storage means is constituted by a flash memory or the like, the storage area is composed of a data area and a redundant area. In this case, chain information may be stored in the redundant area.

이와 같은 기억장치에 있어서는 연쇄정보는 빈블록의 상기 리던던트영역에 기록되고, 상기 데이터는 이미 연쇄정보가 기록되어 있는 빈블록에 덮어 쓰여진다.In such a storage device, concatenated information is recorded in the redundant area of the empty block, and the data is overwritten on the empty block in which the concatenated information is already recorded.

이 때 상기 데이터영역과 상기 리던던트영역은 상기 기억영역 중에서 서로 중복하지 않도록 배치됨으로써 상기 데이터의 덮어쓰기에 의해서도 상기 연쇄정보는 파괴되지 않는다. At this time, the data area and the redundant area are arranged so as not to overlap each other in the storage area, so that the chain information is not destroyed even when the data is overwritten.

또 이 제 2 관점에 관련되는 기억장치에 있어서도 상기 기억수단은, 예를 들면 복수 칩의 플래시메모리에 의해 구성된 것으로 할 수 있다. 이 경우 상기 연쇄정보는 다음의 빈블록이 어느 칩의 어느 블록에 기록되어 있는지를 나타내는 정보에 의해 구성하면 좋다.Also in the storage device according to the second aspect, the storage means may be constituted by, for example, a flash memory of a plurality of chips. In this case, the chain information may be constituted by information indicating which block of which chip the next empty block is recorded.

또 본 발명의 제 3 관점에 관련되는 액세스방법은,In addition, the access method according to the third aspect of the present invention,

블록단위로 데이터의 소거가 가능하고, 미리 데이터가 소거된 빈블록에 데이터의 기록이 가능한 블록소거형의 메모리로의 액세스방법으로,In a method of accessing a block erasure type memory in which data can be erased in units of blocks and data can be written to an empty block from which data has been previously erased.

상기 메모리에 붙여진 물리어드레스와 데이터의 논리어드레스의 대응관계를 나타내는 어드레스변환테이블을 상기 메모리 자신에 기억시키고,Storing in the memory itself an address conversion table indicating a correspondence relationship between a physical address attached to the memory and a logical address of data;

기록대상데이터와 그 논리어드레스가 공급되었을 때는 해당 논리어드레스에 이미 데이터가 기록되어 있는지 없는지를 상기 어드레스변환테이블에 의해 판별하며, 존재한다고 판별했을 때는 상기 빈블록을 판별하여 상기 데이터를 해당 빈블록에 기록하는 동시에 구데이터를 갖는 블록을 소거하고, 존재하지 않는다고 판별했을 때는 상기 빈블록을 판별하여 상기 데이터를 해당 빈블록에 기록하며, 다음에,When the data to be recorded and its logical address are supplied, it is determined by the address conversion table whether or not data has already been recorded in the logical address. When it is determined, the empty block is determined and the data is assigned to the empty block. At the same time, the block having the old data is erased, and when it is determined that the block does not exist, the empty block is determined and the data is recorded in the empty block.

상기 데이터가 기록된 상기 블록의 물리어드레스와 상기 논리어드레스의 대응을 나타내는 정보를 상기 메모리 내의 상기 어드레스변환테이블에 추가하거나, 또는 그 정보를 갱신하고, Add information indicating the correspondence between the physical address of the block in which the data is written and the logical address to the address conversion table in the memory, or update the information;

판독대상데이터의 논리어드레스가 공급되었을 때는 상기 메모리 내의 상기 어드레스변환테이블을 액세스하여 해당 데이터가 격납된 위치의 물리어드레스를 판별하고, 해당 물리어드레스로부터 데이터를 판독하여 출력하는 것을 특징으로 한다.When the logical address of the data to be read is supplied, the address conversion table in the memory is accessed to determine the physical address of the position where the data is stored, and the data is read and output from the physical address.

또 본 발명의 제 4 관점에 관련되는 액세스방법은,Moreover, the access method which concerns on the 4th viewpoint of this invention is

블록단위로 데이터의 소거가 가능하고, 미리 데이터가 소거된 빈블록에 데이터의 기록이 가능한 블록소거형의 메모리로의 액세스방법으로,In a method of accessing a block erasure type memory in which data can be erased in units of blocks and data can be written to an empty block from which data has been previously erased.

상기 메모리에 빈블록을 나타내는 빈블록테이블을 기억시켜 두고, 기록대상데이터가 공급되었을 때에 상기 메모리 내의 빈블록테이블에 의거하여 빈블록을 판별하여 판별한 빈블록에 해당 데이터를 기록하는 것을 특징으로 한다.And storing the empty block table representing the empty block in the memory, and recording the corresponding data in the empty block determined by discriminating the empty block based on the empty block table in the memory when the data to be recorded is supplied. .

제 3 및 제 4 관점에 관련되는 액세스방법에 따르면, 메모리의 일부를 어드레스변환테이블이나 빈블록테이블로서 사용할 수 있고, 이들의 테이블을 격납하기 위한 SRAM 등 외의 메모리를 배치할 필요가 없어 소용량화, 저소비전력화에 기여한다.According to the access method according to the third and fourth aspects, a part of the memory can be used as an address translation table or an empty block table, and it is not necessary to arrange a memory other than an SRAM for storing these tables. Contributes to lower power consumption.

또 본 발명의 제 5 관점에 관련되는 액세스방법은,Moreover, the access method which concerns on the 5th viewpoint of this invention is

블록단위로 데이터의 소거가 가능하고, 미리 데이터가 소거된 빈블록에 데이터의 기록이 가능한 블록소거형 메모리로의 액세스방법으로,In a method of accessing a block erase type memory in which data can be erased in block units and data can be written to an empty block from which data has been previously erased.

상기 메모리가 구비하는 블록에 해당 메모리의 빈블록을 나타내는 빈블록정보를 기억시키고,Free block information indicating a free block of the corresponding memory is stored in a block included in the memory,

기록대상데이터가 공급되었을 때에 상기 빈블록정보에 의거하여 빈블록을 판별하며, 판별한 빈블록에 해당 데이터를 기록하는 동시에 상기 빈블록정보에 의거 하여 빈블록을 새로이 판별하고, 상기 빈블록정보를 기억하는 상기 블록의 기억내용을 소거하는 동시에 새로이 판별한 상기 빈블록에 갱신된 빈블록정보를 기록하는 것을 특징으로 한다.When the data to be recorded is supplied, the free block is discriminated based on the free block information, the corresponding data is recorded in the determined free block, the free block is newly determined based on the free block information, and the free block information is determined. It is characterized by erasing the stored contents of the block to be stored and updating updated free block information in the newly determined free block.

제 5 관점에 관련되는 액세스방법에 따르면 메모리의 일부를 어드레스변환테이블이나 빈블록테이블로서 사용할 수 있어 소용량화, 저소비전력화를 도모할 수 있는 데다 상기 빈블록의 정보가 갱신됨으로써 수시로 최신의 빈블록정보를 얻을 수 있다. According to the access method according to the fifth aspect, a part of the memory can be used as an address translation table or an empty block table, so that a small capacity and low power consumption can be achieved. Can be obtained.

또 본 발명의 제 6 관점에 관련되는 액세스방법은,The access method according to the sixth aspect of the present invention is

블록단위로 데이터의 소거가 가능하고, 미리 데이터가 소거된 빈블록에 데이터의 기록이 가능한 블록소거형 메모리로의 액세스방법으로,In a method of accessing a block erase type memory in which data can be erased in block units and data can be written to an empty block from which data has been previously erased.

상기 메모리의 각 빈블록의 일부에 차례로 다른 빈블록을 나타내는 정보로 이루어지는 빈블록연쇄정보를 격납하고,A part of each free block of the memory stores free block chain information consisting of information representing another free block,

기록대상데이터가 공급되었을 때에 빈블록연쇄정보에 의해 정의되는 빈블록 연쇄의 선두빈블록을 판별하며, 판별한 빈블록에 데이터를 기록하는 것을 특징으로 한다.When the recording target data is supplied, the head empty block of the free block chain defined by the free block chain information is discriminated, and data is recorded in the determined free block.

제 6 관점에 관련되는 액세스방법에 따르면 메모리의 일부를 빈블록테이블로서 사용할 수 있다.According to the access method related to the sixth aspect, a part of the memory can be used as the empty block table.

또 데이터가 기록되는 블록이 연쇄정보에 의해 정의되는 연쇄의 차례대로 되기 때문에 기록빈도를 메모리 전체에서 균일화할 수 있다.In addition, since the blocks in which data is written are in the order of the chains defined by the chain information, the recording frequency can be made uniform throughout the memory.

도 1은 본 발명의 실시형태에 관련되는 기억장치의 기본구성을 나타내는 블록도.1 is a block diagram showing a basic configuration of a storage device according to an embodiment of the present invention.

도 2는 메모리셀어레이의 구성을 나타내는 도면.2 is a diagram illustrating a configuration of a memory cell array.

도 3은 기억영역의 논리적 구조를 나타내는 도면.3 illustrates a logical structure of a storage area.

도 4는 빈블록테이블구성의 한 예를 나타내는 도면.4 is a diagram showing an example of an empty block table configuration.

도 5는 어드레스변환테이블 구성의 한 예를 나타내는 도면.5 is a diagram showing an example of an address conversion table configuration.

도 6은 데이터를 판독하는 처리를 나타내는 흐름도.6 is a flowchart showing a process of reading data;

도 7은 물리어드레스결정의 처리를 나타내는 흐름도.7 is a flowchart showing processing of physical address determination;

도 8은 기록처리를 나타내는 흐름도.8 is a flowchart showing recording processing;

도 9는 구 데이터 소거의 처리를 나타내는 흐름도.9 is a flowchart showing processing of old data erasing.

도 10은 빈블록테이블 및 어드레스변환테이블을 갱신하는 처리를 나타내는 흐름도.10 is a flowchart showing a process of updating an empty block table and an address conversion table.

도 11은 제 2 실시형태의 기억장치에 있어서의 빈블록의 연쇄를 나타내는 개념도.Fig. 11 is a conceptual diagram showing a chain of empty blocks in the storage device of the second embodiment.

도 12는 제 2 실시형태의 기억장치에 있어서의 데이터기록처리의 흐름도.12 is a flowchart of data recording processing in the storage device of the second embodiment.

도 13은 제 2 실시형태의 기억장치에 있어서의 빈블록정보 및 어드레스변환테이블을 갱신하는 처리를 나타내는 흐름도 이다.Fig. 13 is a flowchart showing processing of updating empty block information and an address conversion table in the storage device of the second embodiment.

※도면의 주요 부분에 대한 부호의 설명※ Explanation of code for main part of drawing

1: 메모리셀어레이1: memory cell array

1e: 소거제어회로1e: erase control circuit

2: I/O버퍼2: I / O buffer

3B: 블록어드레스버퍼3B: Block Address Buffer

3X: X어드레스버퍼3X: X address buffer

4B: 블록어드레스디코더4B: Block Address Decoder

4X: X어드레스디코더4X: X address decoder

5: 제어회로5: control circuit

6: 글로벌버퍼6: global buffer

10: 플래시메모리유닛10: flash memory unit

11: 컴퓨터11: computer

12: CPU12: CPU

13: 버스라인13: bus line

20: 컨트롤러20: controller

이하, 본 발명을 실시하기 위한 최선의 형태에 관련되는 기억장치를 설명한다.The storage device according to the best mode for carrying out the present invention will be described below.

(제 1 실시형태)(1st embodiment)

본 실시 형태에 관련되는 기억장치는 어드레스변환테이블 등을 플래시메모리유닛 자신에 기억하는 것이고, 도 1에 나타내는 바와 같이 플래시메모리유닛(10)과 컨트롤러(20)로 구성된다.The storage device according to the present embodiment stores an address conversion table or the like in the flash memory unit itself, and is constituted by the flash memory unit 10 and the controller 20 as shown in FIG.

플래시메모리유닛(10)은 메모리셀어레이(1)와, I/O버퍼(2)와, X어드레스버퍼(3X)와, 블록어드레스버퍼(3B)와, X어드레스디코더(4X)와, 블록어드레스디코더(4B)와, 제어회로(5)와, 글로벌버퍼(6)로 구성된다. The flash memory unit 10 includes a memory cell array 1, an I / O buffer 2, an X address buffer 3X, a block address buffer 3B, an X address decoder 4X, and a block address. The decoder 4B, the control circuit 5, and the global buffer 6 are comprised.

메모리셀어레이(1)는 복수의 셀로 구성되어 있다, 각 메모리셀은, 예를 들면 NAND형의 것으로서 1바이트의 기억용량을 갖는다. 이들의 메모리셀은 논리적으로는 도 2에 나타내는 바와 같이 세로 16,384행, 가로 528열의 매트릭스상으로 배치되어 있다. 따라서 메모리셀어레이(1)는 전체로서는 8. 65메가 바이트의 기억용량을 갖는다. The memory cell array 1 is composed of a plurality of cells. Each memory cell is, for example, a NAND type and has a storage capacity of 1 byte. These memory cells are logically arranged in a matrix of 16,384 rows in length and 528 columns in width as shown in FIG. Therefore, the memory cell array 1 has a storage capacity of 8.65 megabytes as a whole.

메모리셀어레이(1)는 8개의 데이터입출력단(Tdata)과, 대응하는 행의 메모리셀에 공통으로 접속된 16,384개의 행제어입력단(Trowcont)과, 모든 메모리셀에 공통의 판독제어단(Treadcont) 및 기록제어단(Twritecont)과, 데이터 소거용의 소거제어회로(1e)를 구비한다.The memory cell array 1 includes eight data input / output terminals Tdata, 16,384 row control input terminals (Trowcont) commonly connected to memory cells of a corresponding row, and a read control terminal (Treadcont) common to all memory cells. And a write control stage Twritecont and an erase control circuit 1e for erasing data.

메모리셀어레이(1)의 판독제어단(Treadcont)에 제어신호가 입력되어 있을 때, 행제어입력단(Trowcont)에 제어신호가 공급되면 제어신호를 공급받은 행의 메모리셀은 그 기억내용을 선두부터 메모리셀 1개 분량(즉 1바이트)씩 528회에 나누어 데이터출력단(Tdata)에 출력한다.When the control signal is input to the read control terminal Treadcont of the memory cell array 1, if the control signal is supplied to the row control input terminal Rowcont, the memory cells of the row to which the control signal is supplied start from the head of the memory. The memory cell is divided into 528 times of one memory cell (ie, 1 byte) and output to the data output terminal Tdata.

한편 기록제어단(Twritecont)에 제어신호가 입력되어 있을 때는 데이터입출력단(Tdata)으로부터 입력되는 데이터를 1바이트씩 528회에 나누어 선두의 메모리셀부터 기억한다,On the other hand, when a control signal is input to the write control terminal Twritecont, the data inputted from the data input / output terminal Tdata is divided into 528 times for each byte and stored from the first memory cell.

단, 각 메모리셀은 NAND형이기 때문에 데이터의 기록은 기록 값을 「1」에서 「0」으로 하는 방향으로밖에 실시할 수 없으며, 일단 기억 값이 「0」으로 된 메 모리셀은 기억내용이 리셋될 때까지 기억 값이 「0」의 상태를 유지한다. However, since each memory cell is of the NAND type, data can only be written in the direction in which the recording value is set from "1" to "0". The memory value remains "0" until it is reset.

도 2에 나타내는 바와 같이 메모리셀의 매트릭스 각 행은 528바이트의 기억용량을 갖는 페이지를 구성한다, 페이지에는 연속적으로 1에서 16,384까지의 페이지어드레스가 부여되고, 각 페이지에 포함되는 메모리셀에는 연속적으로 1에서 528까지의 번호가 부여되어 있다.As shown in Fig. 2, each row of the matrix of memory cells constitutes a page having a storage capacity of 528 bytes. A page address of 1 to 16,384 is continuously given to the page, and the memory cells included in each page are continuously Numbers 1 through 528 are assigned.

도 2 및 도 3에 나타내는 바와 같이 각 페이지는 선두부터 16페이지 단위로 1개의 블록을 구성한다. 각 블록은 8킬로 바이트의 기억용량을 갖고, 기억영역 전체는 1,024개의 블록으로 구성되어 있다.As shown in Figs. 2 and 3, each page constitutes one block in units of 16 pages from the beginning. Each block has a storage capacity of 8 kilobytes, and the entire storage area consists of 1,024 blocks.

또 각 페이지는 도 3에 나타내는 바와 같이 선두부터 512바이트의 영역을 차지하는 데이터영역과 말미 16바이트를 차지하는 리던던트부로 구성된다. 데이터영역에는 본래의 데이터가 격납되고, 리던던트부에는 에러체크코드 등이 격납된다.As shown in Fig. 3, each page is composed of a data area occupying an area of 512 bytes from the beginning and a redundant part occupying the last 16 bytes. The original data is stored in the data area, and an error check code or the like is stored in the redundant part.

그리고, 데이터소거용의 소거제어회로(1e)에 특정 블록의 데이터를 소거하도록 지시하는 제어신호가 입력되면 해당 블록에 포함되는 모든 메모리셀의 기억내용이 리셋된다(즉 각 메모리셀의 기억 값이 「1」로 된다).When the control signal for instructing data erasure is input to the erasing control circuit 1e for erasing data, the memory contents of all memory cells included in the block are reset (that is, the memory value of each memory cell is reset). It becomes "1").

메모리셀어레이(1)에는 이 메모리셀어레이(1)에 액세스하기 위한 빈블록테이블 및 어드레스변환테이블이 격납되어 있다.The memory cell array 1 contains an empty block table and an address conversion table for accessing the memory cell array 1.

빈블록테이블은 메모리셀어레이(1)의 임의의 블록 선두페이지에 기억되어 있고, 메모리셀어레이(1)의 각 블록의 어느 것인가가 빈블록(즉 리셋된 상태이고, 데이터「0」을 기억한 메모리셀을 포함하지 않은 블록)인가를 나타내는 정보를 격납한다, 빈블록테이블이 격납되어 있는 블록의 정보는 후술하는 바와 같이 제어회로(5)에 기억된다.The empty block table is stored in the first page of any block of the memory cell array 1, and any of the blocks of the memory cell array 1 is an empty block (that is, it is in a reset state and stores data "0"). Information indicating whether a block contains no memory cell) is stored in the control circuit 5 as described later.

메모리셀어레이(1)의 블록 총수가 1,024개일 때 빈블록테이블구조의 한 예를 도 4에 나타낸다. 이 빈블록테이블은 특정 블록 선두의 128바이트의 메모리셀(즉 선두부터 1,024비트)로 구성되고. 선두의 비트부터 차례로 블록 1부터 블록 1,024에 1 대 1로 대응하며, 대응하는 블록이 빈블록일 때 「1」, 빈블록이 아닐 때 「0」을 격납한다.An example of the empty block table structure when the total number of blocks of the memory cell array 1 is 1,024 is shown in FIG. This empty block table consists of 128-byte memory cells (i.e., 1,024 bits from the beginning) of the head of a specific block. 1 to 1 correspond to block 1 to block 1,024 sequentially from the first bit, and store "1" when the corresponding block is a free block and "0" when it is not a free block.

어드레스변환테이블은 빈블록테이블이 격납되어 있는 블록의 제 2 페이지 이후에 기억되고, 메모리셀어레이(1)의 각 블록에 할당되어 있는 논리어드레스를 나타내는 정보를 격납한다.The address conversion table is stored after the second page of the block in which the empty block table is stored, and stores information indicating a logical address assigned to each block of the memory cell array 1.

논리어드레스는 이 기억장치가 후술하는 동작에 의해 판독· 기록되었을 때에 후술하는 외부의 컴퓨터(11)가 구비하는 CPU(중앙처리유닛)(12)나 컨트롤러(20) 등에 의해 테이터 판독· 기록의 단위로서 인식되는 단위이다.The logical address is a unit of data reading and writing by the CPU (central processing unit) 12, the controller 20, or the like included in the external computer 11 described later when this storage device is read and written by the operation described later. Is a unit recognized as.

논리어드레스가 할당되어 있는 영역의 총량은 메모리셀어레이(1)의 기억용량보다 작은 소정의 값, 예를 들면 16,000페이지 분량이며, 각 논리어드레스가 차지하는 기억용량은, 예를 들면 1페이지가 차지하는 기억영역에 일치한다.The total amount of the area to which the logical addresses are allocated is a predetermined value smaller than the memory capacity of the memory cell array 1, for example, 16,000 pages, and the memory capacity occupied by each logical address is, for example, one page of memory. Matches the realm.

논리어드레스는 구체적으로는, 예를 들면 메모리셀어레이(1)의 기억용량보다 작은 소정의 값에 상당하는 크기(예를 들면 16,000페이지 분량)의 가상의 기억영역을 512바이트마다의 구획으로 나누고, 각 구획에 0부터 시작하는 연번(連番)을 붙인 경우의 해당 연번, 즉 LBA(Logic Block Address)로 구성되어 있다.Specifically, the logical address is, for example, a virtual storage area of a size (e.g., 16,000 pages) corresponding to a predetermined value smaller than the storage capacity of the memory cell array 1 is divided into 512-byte partitions. Each section consists of the corresponding serial number, that is, the LBA (Logic Block Address) when a serial number starting from 0 is attached.

어드레스변환테이블 구조의 한 예를 도 5에 나타낸다. 어드레스변환테이블 은 복수의 레코드로 이루어지고, 각 레코드의 선두에는 논리어드레스가 격납되며, 이어서 해당 논리어드레스에 대응 지워져있는 영역의 선두페이지가 위치하는 블록의 번호(블록어드레스)와 그 선두페이지의 번호가 격납되어 있다.One example of the address conversion table structure is shown in FIG. The address conversion table is composed of a plurality of records, and the logical address is stored at the head of each record. Subsequently, the block number (block address) where the first page of the area corresponding to the logical address is located and the number of the first page are stored. Is stored.

I/O버퍼(2)는 도 1에 나타내는 바와 같이 글로벌버퍼(6)와 메모리셀어레이(1)의 데이터입출력단(Tdata)과 제어회로(5)에 접속되어 있다.The I / O buffer 2 is connected to the data input / output terminal Tdata and the control circuit 5 of the global buffer 6 and the memory cell array 1 as shown in FIG.

I/O버퍼(2)는 제어회로(5)의 지시에 따라 글로벌버퍼(6)가 기억하는 데이터를 메모리셀어레이(1)의 데이터입출력단(Tdata)에 1바이트씩 출력하는 동작과 데이터입출력단(Tdata)으로부터 출력되는 데이터를 글로벌버퍼(6)에 1바이트씩 출력하는 동작을 실시한다.The I / O buffer 2 outputs the data stored in the global buffer 6 to the data input / output terminal Tdata of the memory cell array 1 by one byte according to the instruction of the control circuit 5 and the data input / output. The data output from the stage Tdata is output to the global buffer 6 one byte at a time.

X어드레스버퍼(3X)는 글로벌버퍼(6)로부터 메모리셀어레이(1)의 행어드레스(즉 페이지어드레스)를 나타내는 행어드레스신호를 입력하여 X어드레스디코더(4X)에 출력한다.The X address buffer 3X inputs a row address signal indicating the row address (that is, page address) of the memory cell array 1 from the global buffer 6 and outputs it to the X address decoder 4X.

X어드레스디코더(4X)는 행어드레스신호가 나타내는 행 또는 제어회로(5)가 지시하는 행의 행제어입력단(Trowcont)에 액티브레벨의 제어신호를 공급한다.The X address decoder 4X supplies an active level control signal to the row control input terminal (Trowcont) of the row indicated by the row address signal or the row indicated by the control circuit 5.

블록어드레스버퍼(3B)는 글로벌버퍼(6)로부터 메모리셀어레이(1)의 각 블록의 어드레스를 나타내는 블록어드레스신호를 입력하여 블록어드레스디코더(4B)에 출력한다. The block address buffer 3B inputs a block address signal indicating the address of each block of the memory cell array 1 from the global buffer 6 and outputs it to the block address decoder 4B.

블록어드레스디코더(4B)는 블록어드레스신호가 나타내는 블록 또는 제어회로(5)가 지시하는 블록의 데이터를 소거하도록 지시하는 신호를 소거제어회로(1e)에 공급한다. The block address decoder 4B supplies a signal indicating to erase data of a block indicated by the block address signal or a block indicated by the control circuit 5 to the erasure control circuit 1e.                 

제어회로(5)는 글로벌버퍼(6)로부터 커맨드를 입력하여 해석하고, 해석 결과에 따라 X어드레스버퍼(3X), X어드레스디코더(4X), 블록어드레스디코더(4B) 및 I/O버퍼(2)를 제어한다.The control circuit 5 analyzes by inputting a command from the global buffer 6, and according to the analysis result, the X address buffer 3X, the X address decoder 4X, the block address decoder 4B and the I / O buffer 2 are analyzed. ).

또 제어회로(5)는 컨트롤러(20)로부터 기록신호(Swrite) 및 래치신호(Slatch)의 공급을 받는다. 그리고 이들의 신호에 따라 메모리셀어레이(1) 및 글로벌버퍼(6)를 후술하는 바와 같이 제어한다. 또 제어회로(5)는 컨트롤러(20)에 후술하는 타이밍으로 비지신호(Sbusy) 및 리디신호(Sready)를 공급한다.In addition, the control circuit 5 receives the write signal Swrite and the latch signal Slatch from the controller 20. According to these signals, the memory cell array 1 and the global buffer 6 are controlled as described later. The control circuit 5 also supplies the busy signal Sbusy and the ready signal Sready to the controller 20 at the timing described later.

또 제어회로(5)는 글로벌버퍼(6)에 격납된 데이터가 후술하는 셋업커맨드나 소거커맨드 등의 소정의 커맨드를 나타낼 때 그 커맨드가 지시하는 처리를 후술하는 바와 같이 실행한다.In addition, when the data stored in the global buffer 6 indicates a predetermined command such as a setup command or an erase command described later, the control circuit 5 executes the processing indicated by the command as described later.

또한 비지신호(Sbusy) 및 리디신호(Sready)는 동일의 신호선을 통해서 전송하도록 해도 좋다. 따라서 예를 들면 제어회로(5)가 소정의 신호선에 2값 논리값“1”을 나타내는 전압을 인가하고 있을 때는 제어회로(5)가 비지신호(Sbusy)를 공급하고 있는 것으로 하고, 2값 논리값“0”을 나타내는 전압을 인가하고 있을 때는 리디신호(Sready)를 공급하고 있는 것으로 해도 좋다. In addition, the busy signal Sbusy and the ready signal Sready may be transmitted through the same signal line. Therefore, for example, when the control circuit 5 is applying a voltage representing the two-value logic value "1" to a predetermined signal line, the control circuit 5 supplies the busy signal Sbusy. When a voltage indicating the value "0" is applied, the read signal Sready may be supplied.

글로벌버퍼(6)는 I/O버퍼(2)와 제어회로(5)와, 컨트롤러(20)에 접속되어 있다. 그리고 제어회로(5)로부터 출력되는 제어신호에 따라 버스라인(13)상의 신호 및 I/O버퍼(2)의 기억내용 중 해당 제어신호가 공급된 시점에서 자기에게 공급되어 있는 것을 기억하고, 기억한 내용을 X어드레스버퍼(3X) 또는 제어회로(5)에 출력한 다.The global buffer 6 is connected to the I / O buffer 2, the control circuit 5, and the controller 20. The memory on the bus line 13 and the contents of the I / O buffer 2 are stored to the self at the time when the corresponding control signal is supplied according to the control signal output from the control circuit 5, and the memory is stored. The contents are output to the X address buffer 3X or the control circuit 5.

컨트롤러(20)는 CPU 등으로 이루어지고, 플래시메모리유닛(10)의 제어회로(5)에 접속되어 있으며, 또 버스라인(13)을 통해서 플래시메모리유닛(10)의 글로벌버퍼(6) 및 컴퓨터(11)의 CPU(12)에 접속되어 있다. 단, 컨트롤러(20)를 구성하는 CPU는 컴퓨터(11)의 CPU(12)와 동일의 것이어도 좋다.The controller 20 is composed of a CPU or the like, is connected to the control circuit 5 of the flash memory unit 10, and is connected to the global buffer 6 and the computer of the flash memory unit 10 through the bus line 13. It is connected to the CPU 12 of (11). However, the CPU constituting the controller 20 may be the same as the CPU 12 of the computer 11.

컨트롤러(20)는 외부의 컴퓨터(11)가 구비하는 CPU(12) 등에 의해 공급되는 커맨드에 따라 후술하는 바와 같이 제어회로(5)에 기록신호(Swrite)나 래치신호(Slatch)를 공급하고, 글로벌버퍼(6)에는 물리어드레스, 기록대상의 데이터, 커맨드 등을 공급하여 플래시메모리유닛(10)을 제어한다.The controller 20 supplies a write signal Swrite or a latch signal Slatch to the control circuit 5 as described later in accordance with a command supplied by the CPU 12 or the like included in the external computer 11, The flash memory unit 10 is controlled by supplying physical addresses, data to be recorded, commands, and the like to the global buffer 6.

또 컨트롤러(20)는 어드레스변환테이블 및 빈블록테이블의 위치와 최후에 기록이 이루어진 블록의 위치를 나타내는 데이터를 기억하고, CPU(12)로부터 공급된 커맨드에 따른 후술의 처리를 실행할 때에 자기가 기억하고 있는 데이터를 참조한다. 또 컨트롤러(20)는 CPU(12)로부터 판독대상의 데이터를 바이트 단위로 나타낸 양(즉 바이트 수)을 공급받으면 이것을 기억하고, 후술하는 처리에 있어서 참조한다.The controller 20 also stores data indicating the positions of the address conversion table and the empty block table and the positions of the blocks that were last written, and stores them when executing the processing described later in accordance with the command supplied from the CPU 12. Refer to the data you are doing. When the controller 20 receives the amount (that is, the number of bytes) of the data to be read in units of bytes from the CPU 12, the controller 20 stores this and references it in the processing described later.

(제 1 실시형태의 동작)(Operation of the First Embodiment)

다음에 본 기억장치에 데이터를 기록하는 처리를 도 6∼도 10을 참조하여 설명한다.Next, a process of writing data into this storage device will be described with reference to FIGS.

도 6은 데이터를 판독하는 처리를 나타내는 흐름도이다.6 is a flowchart showing a process of reading data.

도 7은 물리어드레스 결정의 처리를 나타내는 흐름도이다. 7 is a flowchart showing a process of determining a physical address.                 

도 8은 기록처리를 나타내는 흐름도이다.8 is a flowchart showing recording processing.

도 9는 구데이터 소거의 처리를 나타내는 흐름도이다.9 is a flowchart showing a process of erasing old data.

도 10은 빈블록테이블 및 어드레스변환테이블을 갱신하는 처리를 나타내는 흐름도이다.10 is a flowchart showing a process of updating an empty block table and an address conversion table.

(데이터판독)(Data read)

컴퓨터(11) 내의 CPU(12)는 이 기억장치로부터 데이터를 판독하는 경우, 도 6에 나타내는 데이터판독의 처리를 실행한다.When the CPU 12 in the computer 11 reads data from this storage device, it executes the data reading process shown in FIG.

처리가 개시되면 CPU(12)는 판독대상의 데이터가 격납되어 있는 논리어드레스를 버스라인(13)상에 출력하고, 컨트롤러(20)에 데이터의 판독을 지시하는 커맨드와 판독데이터가 격납되어 있는 기억영역의 페이지 수를 공급한다(도 6, 스텝 S101).When the processing starts, the CPU 12 outputs a logical address on which the data to be read is stored on the bus line 13, and stores a command for instructing the controller 20 to read the data and the read data. The number of pages in the area is supplied (FIG. 6, step S101).

컨트롤러(20)는 CPU(12)로부터의 커맨드에 응답하고, 버스라인(13)을 통해서 공급된 논리어드레스 및 페이지 수를 취득하여 양자를 기억한다(스텝 S102).The controller 20 responds to the command from the CPU 12, acquires the logical address and the number of pages supplied through the bus line 13, and stores both of them (step S102).

그리고 컨트롤러(20)는 어드레스변환테이블 선두페이지의 물리어드레스를 글로벌버퍼(6)에 공급하고, 제어회로(5)에 래치신호(Slatch)를 송출하여 제어회로(5)로부터 리디신호(Sready)가 공급되는 것을 대기한다(스텝 S103).The controller 20 supplies the physical address of the first page of the address conversion table to the global buffer 6, sends a latch signal (Slatch) to the control circuit 5 so that the ready signal (Sready) from the control circuit (5) It waits to be supplied (step S103).

제어회로(5)는 컨트롤러(20)로부터의 래치신호(Slatch)에 응답하고, 컨트롤러(20)에의 비지신호(Sbusy)의 공급을 개시하며, 컨트롤러(20)가 공급하고 있는 물리어드레스를 래치하는 지시를 글로벌버퍼(6)에 보낸다. 이 지시에 응답하여 글로벌버퍼(6)는 컨트롤러(20)가 공급하고 있는 물리어드레스를 래치한다(스텝 S104). 글로벌버퍼(6)에 래치된 물리어드레스 중 블록어드레스에 해당하는 부분은 블록어드레스버퍼(3B)를 통해서 블록어드레스디코더(4B)에 공급되고, 페이지어드레스에 해당하는 부분은 X어드레스버퍼(3X)를 통해서 X어드레스디코더(4X)에 공급된다.The control circuit 5 responds to the latch signal Slatch from the controller 20, initiates the supply of the busy signal Sbusy to the controller 20, and latches the physical address supplied by the controller 20. Send an instruction to the global buffer 6. In response to this instruction, the global buffer 6 latches the physical address supplied by the controller 20 (step S104). The part corresponding to the block address among the physical addresses latched in the global buffer 6 is supplied to the block address decoder 4B through the block address buffer 3B, and the part corresponding to the page address is connected to the X address buffer 3X. Is supplied to the X address decoder 4X.

제어회로(5)는 어드레스변환테이블의 판독을 실시하기 위해 글로벌버퍼(6)로부터 페이지어드레스를 공급받은 X어드레스디코더(4X)에 해당 페이지어드레스가 나타내는 페이지를 선택하도록 지시한다.The control circuit 5 instructs the X address decoder 4X supplied with the page address from the global buffer 6 to select the page indicated by the page address in order to read the address conversion table.

X어드레스디코더(4X)는 제어회로(5)로부터의 지시에 응답하여 어드레스변환테이블이 격납되어 있는 페이지의 행제어입력단(Trowcont)에 액티브레벨의 제어신호를 출력한다. 이에 따라 어드레스변환테이블 중 컨트롤러(20)가 지시하는 페이지가 선택된다.In response to an instruction from the control circuit 5, the X address decoder 4X outputs an active level control signal to the row control input terminal Rowcont of the page in which the address conversion table is stored. Accordingly, the page indicated by the controller 20 is selected from the address conversion table.

다음에 제어회로(5)는 메모리셀어레이(1)의 판독제어단(Treadcont)에 데이터판독의 지시를 보내고, 비지신호(Sbusy)의 공급을 정지하여 컨트롤러(20)에 리디신호(Sready)를 공급한다. 한편 메모리셀어레이(1)는 제어회로(5)로부터 보내진 지시에 응답하여 어드레스변환테이블이 있는 해당 페이지의 기억내용을 I/O버퍼 및 글로벌버퍼(6)를 통해서 컨트롤러(20)에 1바이트씩 차례로 출력한다.Next, the control circuit 5 sends a data read instruction to the read control terminal Treadcont of the memory cell array 1, stops the supply of the busy signal Sbusy, and sends the read signal Sready to the controller 20. FIG. Supply. On the other hand, the memory cell array 1, in response to an instruction sent from the control circuit 5, stores the contents of the corresponding page with the address conversion table one by one in the controller 20 through the I / O buffer and the global buffer 6. Output them in order.

한편 컨트롤러(20)는 글로벌버퍼(6)로부터 공급되는 정보를 차례로 판독함으로써 해당 페이지에 기억되어 있는 각 논리어드레스와 각 논리어드레스에 대응 지워진 물리어드레스를 판독한다(스텝 S105).On the other hand, the controller 20 sequentially reads the information supplied from the global buffer 6 to read each logical address stored in the corresponding page and the physical addresses corresponding to each logical address (step S105).

그리고, 컨트롤러(20)는 어드레스변환테이블로부터 판독한 논리어드레스 중에 스텝 S102에서 CPU(12)로부터 취득한 논리어드레스와 일치하는 것이 있는지 없 는지를 판별한다(스텝 S106).Then, the controller 20 determines whether or not any logical address read from the address conversion table matches the logical address acquired from the CPU 12 in step S102 (step S106).

스텝 S106에 있어서 일치하는 논리어드레스가 없다고 판별했을 때 컨트롤러(20)는 글로벌버퍼(6)에 어드레스변환테이블의 다음 페이지의 물리어드레스를 공급하고, 제어회로(5)에 래치신호(Slatch)를 송출하며(스텝 S107), 이 기억장치는 처리를 스텝 S104로 되돌린다.When it is determined in step S106 that there is no matching logical address, the controller 20 supplies the physical address of the next page of the address conversion table to the global buffer 6 and sends a latch signal (Slatch) to the control circuit 5. (Step S107), the storage returns the processing to Step S104.

한편 스텝 S106에 있어서 일치하는 논리어드레스가 있다고 판별했을 때는 처리를 S108로 옮긴다.On the other hand, when it is determined in step S106 that there is a matching logical address, the process shifts to S108.

스텝 S108에 있어서 컨트롤러(20)는 스텝 S106에서 일치한다고 판별한 논리어드레스가 나타내는 물리어드레스(즉 판독대상의 데이터가 있는 페이지 중 선두페이지의 물리어드레스)의 값을 글로벌버퍼(6)에 공급하고, 제어회로(5)에 래치신호(Slatch)를 송출한다.In step S108, the controller 20 supplies the global buffer 6 with the value of the physical address indicated by the logical address determined to be matched in step S106 (that is, the physical address of the first page among the pages with data to be read). The latch signal (Slatch) is sent to the control circuit 5.

그러면 플래시메모리유닛(10)은 컨트롤러(20)가 스텝 S103에서 공급한 래치신호(Slatch)에 응답한 경우의 처리와 실질적으로 동일의 처리를 실시하고, 컨트롤러(20)가 글로벌버퍼(6)에 공급한 물리어드레스의 기억내용(즉 판독대상의 데이터 중 아직 판독되어 있지 않은 부분의 선두페이지의 내용)을 글로벌버퍼(6)를 통해서 컨트롤러(20)에 1바이트씩 차례로 공급한다(스텝 S109).Then, the flash memory unit 10 performs substantially the same processing as that in the case where the controller 20 responds to the latch signal Slatch supplied in step S103, and the controller 20 applies the global buffer 6 to the global buffer 6. The contents of the stored physical address (that is, the contents of the first page of the part of the data to be read, which have not been read yet) are supplied one by one to the controller 20 via the global buffer 6 (step S109).

한편 컨트롤러(20)는 스텝 S109에서 글로벌버퍼(6)가 공급하는 정보를 차례로 판독함으로써 판독하는 대상의 데이터를 판독하고, 판독한 데이터를 버스라인(13)을 통해서 CPU(12)에 공급한다(스텝 S110).On the other hand, the controller 20 reads the data to be read by sequentially reading the information supplied by the global buffer 6 in step S109, and supplies the read data to the CPU 12 via the bus line 13 ( Step S110).

그리고, 컨트롤러(20)는 스텝 S108의 처리를 개시하여 이후에 판독한 페이지 수가 CPU(12)로부터 공급되어 스텝 S102에서 자기가 기억한 페이지 수에 이르고 있는지 없는지를 판별한다(스텝 S111).Then, the controller 20 starts the process of step S108 and determines whether or not the number of pages read thereafter is supplied from the CPU 12 to reach the number of pages stored in the step S102 (step S111).

그리고, 이르고 있지 않다고 판별했을 때 컨트롤러(20)는 제어회로(5)가 비지신호(Sbusy)의 공급을 정지한 타이밍에서 판독대상의 데이터가 있는 다음의 물리어드레스를 글로벌버퍼(6)에 공급하고, 제어회로(5)에 래치신호(Slatch)를 송출한다(스텝 S112). 그리고, 이 기억장치는 처리를 스텝 S109로 되돌린다.When it is determined that it is not reached, the controller 20 supplies the next physical address with data to be read to the global buffer 6 at the timing when the control circuit 5 stops supplying the busy signal Sbusy. The latch signal Slatch is sent to the control circuit 5 (step S112). The storage device then returns the processing to step S109.

한편 이르고 있다고 판별하면 컨트롤러(20)는, 예를 들면 버스라인(13)을 통해서 CPU(12)에 종료코드를 보내거나, 도시하지 않는 제어신호를 CPU(12)에 출력함으로써 CPU(12)에 판독종료를 통지한다(스텝 S113).On the other hand, if it is determined that it is reached, the controller 20 sends the end code to the CPU 12 via the bus line 13, or outputs a control signal (not shown) to the CPU 12 to the CPU 12, for example. The end of reading is notified (step S113).

CPU(12)는 판독종료를 검지하면(스텝 S114), 데이터판독의 처리를 종료한다.The CPU 12, upon detecting the end of reading (step S114), ends the process of data reading.

스텝 S101∼S114의 처리에 의해 메모리셀어레이(1) 자체에 격납된 어드레스변환테이블을 이용하여 논리어드레스에 대응하는 물리어드레스의 위치가 검색되어 그 위치에 있는 데이터가 차례로 판독된다.By the processing of steps S101 to S114, the position of the physical address corresponding to the logical address is searched using the address conversion table stored in the memory cell array 1 itself, and the data at the position is read out one by one.

판독대상의 논리어드레스가 복수 있을 때는 스텝 S101∼S114의 처리를 판독대상의 논리어드레스의 수만큼 반복하여 실시한다.When there are a plurality of logical addresses to be read, the processes of steps S101 to S114 are repeated by the number of logical addresses to be read.

(데이터기록: 새로운 물리어드레스의 결정)(Data Record: Determination of New Physical Address)

메모리셀어레이(1)에 데이터를 기록하는 경우. 이 기억장치는 우선 도 7에 나타내는 물리어드레스결정의 처리를 실시하고, 데이터기록대상의 물리어드레스를 결정하는 처리를 실행한다.When data is recorded in the memory cell array 1. This storage device first carries out the processing of the physical address determination shown in FIG. 7, and executes the processing of determining the physical address of the data recording target.

CPU(12)는, 예를 들면 우선 기록대상데이터의 크기부터 1페이지의 기억용량 을 512바이트로 하여 기록에 요하는 페이지 수를 산출하고, 기록의 대상으로 하는 논리어드레스를 결정한다.The CPU 12, for example, first calculates the number of pages required for recording by setting the storage capacity of one page to 512 bytes from the size of the data to be recorded, and determines the logical address to be recorded.

그리고, CPU(12)는 기록대상의 논리어드레스 중 가장 번호가 이른 것을 버스라인(13)상에 출력하고, 컨트롤러(20)에 데이터의 기록을 지시하는 커맨드를 보낸다(스텝 S201).Then, the CPU 12 outputs on the bus line 13 the earliest number among the logical addresses to be recorded, and sends a command to the controller 20 to instruct data recording (step S201).

컨트롤러(20)는 스텝 S201에서 CPU(12)로부터 보내진 커맨드에 응답하여 도 6의 처리에 있어서의 스텝 S103∼S107의 처리와 실질적으로 동일의 처리를 실시한다(스텝 S202).The controller 20 performs substantially the same processing as the processing of steps S103 to S107 in the processing of FIG. 6 in response to the command sent from the CPU 12 in step S201 (step S202).

즉 플래시메모리유닛(10)으로부터 어드레스변환테이블의 내용을 판독하고, 판독한 내용 중 스텝 S201에서 CPU(12)로부터 취득한 논리어드레스와 일치하는 것이 있는지 없는지를 차례로 판별함으로써 CPU(12)로부터 취득한 해당 논리어드레스에 대응 지워져있는 물리어드레스를 특정한다.That is, the corresponding logic acquired from the CPU 12 by reading the contents of the address conversion table from the flash memory unit 10 and sequentially determining whether the read contents correspond to the logical addresses acquired from the CPU 12 in step S201. The physical address corresponding to the address is specified.

스텝 S202에서 물리어드레스가 특정되면 컨트롤러(20)는 특정된 물리어드레스를 기억한다(스텝 S203). 그리고, 빈블록테이블을 판독하기 위해 글로벌버퍼(6)에 빈블록테이블의 물리어드레스를 공급하고, 제어회로(5)에 래치신호(Slatch)를 보낸다(스텝 S204).If the physical address is specified in step S202, the controller 20 stores the specified physical address (step S203). Then, the physical address of the empty block table is supplied to the global buffer 6 to read the empty block table, and a latch signal (Slatch) is sent to the control circuit 5 (step S204).

제어회로(5)는 스텝 S103에서 래치신호(Slatch)를 공급받았을 경우와 똑같이 하여 X어드레스디코더(4X)에 빈블록테이블이 있는 페이지를 선택시킨다.The control circuit 5 selects a page with an empty block table in the X address decoder 4X in the same manner as when the latch signal Slatch is supplied in step S103.

그리고, 제어회로(5)는 페이지가 선택되면 메모리셀어레이(1)의 판독제어단(Treadcont)에 데이터 판독의 지시를 보낸다. 메모리셀어레이(1)는 지 시를 받으면 빈블록테이블이 있는 해당 페이지의 기억내용을 I/O버퍼(2) 및 글로벌버퍼(6)를 통해서 컨트롤러(20)에 1바이트씩 차례로 출력한다.When the page is selected, the control circuit 5 sends an instruction to read data to the read control terminal Treadcont of the memory cell array 1. When the memory cell array 1 receives the instruction, the memory cell array 1 sequentially outputs the contents of the corresponding page with the empty block table to the controller 20 one by one through the I / O buffer 2 and the global buffer 6.

그리고, 컨트롤러(20)는 글로벌버퍼(6)로부터 공급되는 정보를 차례로 판독함으로써 빈블록테이블을 취득한다(스텝 S205).Then, the controller 20 acquires the empty block table by sequentially reading the information supplied from the global buffer 6 (step S205).

다음에 컨트롤러(20)는 취득한 빈블록테이블의 내용에 의거하여 임의의 빈블록에 속하는 물리어드레스를 특정하고(스텝 S206), 이후 스텝 S206에서 특정한 물리어드레스를 기록대상의 논리어드레스가 나타내는 물리어드레스인 것으로서 취급하는 것으로 결정한다.Next, the controller 20 specifies a physical address belonging to an arbitrary empty block based on the contents of the obtained empty block table (step S206), and then, in step S206, the physical address indicated by the logical address to be recorded is a physical address. We decide to treat as thing.

단, 스텝 S206에 있어서는 도 7의 처리를 개시하여 이후 이미 스텝 S206에서 특정된 물리어드레스를 재차 특정하지 않도록 하는 것으로 한다.However, in step S206, the processing of FIG. 7 is started so that the physical address already specified in step S206 is not specified again later.

또 스텝 S206에 있어서는 도 7의 처리를 개시하여 이후에 스텝 S206에서 특정된 물리어드레스가 속하는 블록은 해당 물리어드레스에 데이터가 기록된 후에도 빈블록인 것으로서 취급한다.In step S206, the processing shown in Fig. 7 is started, and the block to which the physical address specified in step S206 belongs is treated as an empty block even after data is recorded in the physical address.

또 데이터기록대상의 물리어드레스로서 논리어드레스가 할당되어 있지 않은 물리어드레스가 선택돼도 좋다.As the physical address to be recorded, a physical address to which no logical address is assigned may be selected.

(데이터기록: 플래시메모리로의 기록)(Data recording: Recording to flash memory)

스텝 S206의 처리를 종료하면 컨트롤러(20)는 도 8에 나타내는 기록처리를 실행한다.When the process of step S206 ends, the controller 20 executes the recording process shown in FIG. 8.

즉 컨트롤러(20)는 스텝 S206의 처리에 의해 물리어드레스를 특정하면 글로벌버퍼(6)에 특정한 물리어드레스를 공급하고, 제어회로(5)에 래치신호(Slatch)를 보낸다(스텝 S211).That is, when the controller 20 specifies the physical address by the process of step S206, the controller 20 supplies the physical address to the global buffer 6, and sends a latch signal (Slatch) to the control circuit 5 (step S211).

제어회로(5)는 래치신호(Slatch)에 응답하여 비지신호(Sbusy)의 공급을 정지하고, 컨트롤러(20)에의 리디신호(Sready)의 공급을 개시한다. 그리고, X어드레스디코더(4X)에 스텝 S206에서 특정된 물리어드레스를 선택시킨다.The control circuit 5 stops the supply of the busy signal Sbusy in response to the latch signal Slatch, and starts the supply of the ready signal Sready to the controller 20. Then, the X address decoder 4X selects the physical address specified in step S206.

한편 컨트롤러(20)는 리디신호(Sready)에 응답하여 CPU(12)에 기록대상의 데이터공급을 요구하고(스텝 S212), CPU(12)는 이 요구에 응답하여 기록대상의 데이터 중 선두의 1바이트 분량을 버스라인(13)을 통해서 컨트롤러(20)에 공급한다.On the other hand, the controller 20 requests the CPU 12 to supply the data to be recorded in response to the ready signal Sready (step S212), and the CPU 12 responds to the request to the first 1 of the data to be recorded. The byte amount is supplied to the controller 20 via the bus line 13.

그리고 컨트롤러(20)는 버스라인(13)을 통해서 CPU(12)로부터 공급된 기록대상의 데이터를 기억하여 글로벌버퍼(6)에 공급하고, 제어회로(5)에 기록신호(Swrite)를 보낸다(스텝 S213).The controller 20 stores the data of the recording target supplied from the CPU 12 via the bus line 13, supplies the data to the global buffer 6, and sends a write signal Swrite to the control circuit 5 ( Step S213).

제어회로(5)는 기록신호(Swrite)에 응답하여 글로벌버퍼(6)에 공급된 기록대상의 데이터를 래치하도록 글로벌버퍼(6)에 지시하고, 리디신호(Sready)의 공급을 정지하여 컨트롤러(20)에의 비지신호(Sbusy)의 공급을 재개한다. 글로벌버퍼(6)는 버스라인(13)상의 데이터를 래치하여 I/O버퍼(2)에 격납한다.The control circuit 5 instructs the global buffer 6 to latch the data to be recorded supplied to the global buffer 6 in response to the write signal Swrite, and stops the supply of the ready signal Sready to control the controller ( Supply of busy signal Sbusy to 20 is resumed. The global buffer 6 latches data on the bus line 13 and stores it in the I / O buffer 2.

다음에 제어회로(5)는 I/O버퍼(2)에 I/O버퍼(2)가 격납하고 있는 데이터를 데이터입출력단(Tdata)에 출력하도록 지시한다. 지시에 응답하고, I/O버퍼(2)는 글로벌버퍼(6)에 의해 자기에 격납된 데이터를 데이터입출력단(Tdata)에 출력한다.Next, the control circuit 5 instructs the I / O buffer 2 to output the data stored in the I / O buffer 2 to the data input / output terminal Tdata. In response to the instruction, the I / O buffer 2 outputs the data stored in the self by the global buffer 6 to the data input / output terminal Tdata.

다음에 제어회로(5)는 메모리셀어레이(1)에 데이터입출력단(Tdata)에 현재 입력되어 있는 데이터를 기억시키기 위해 기록제어단(Twritecont)에 액티브레벨의 기록제어신호를 출력한다. 기록제어신호에 응답하여 메모리셀어레이(1)는 데이터 입출력단(Tdata)에 입력되어 있는 데이터를 현재 선택되어 있는 페이지의 선두메모리셀에 기록한다.Next, the control circuit 5 outputs an active level write control signal to the write control stage Twritecont in order to store data currently input to the data input / output terminal Tdata in the memory cell array 1. In response to the write control signal, the memory cell array 1 writes data input to the data input / output terminal Tdata to the head memory cell of the currently selected page.

메모리셀어레이(1)의 기록제어단(Twritecont)에 액티브레벨의 기록제어신호를 출력한 후 제어회로(5)는 비지신호(Sbusy)의 공급을 정지하고, 컨트롤러(20)에의 리디신호(Sready)의 공급을 재개한다. 컨트롤러(20)는 리디신호(Sready)의 공급 재개를 검지하면 스텝 S214로 처리를 옮긴다.After outputting the active level write control signal to the write control terminal Twritecont of the memory cell array 1, the control circuit 5 stops the supply of the busy signal Sbusy and sends the ready signal to the controller 20. ) Resume the supply. The controller 20 transfers the process to step S214 when it detects resumption of the ready signal Sready.

스텝 S214에 있어서 컨트롤러(20)는 후속데이터를 요구하는 신호를 보낸 후 바이트 카운터의 값을 참조하여 현재 선택 중의 페이지에 512바이트의 데이터가 기록되었는지 아닌지를 판별한다.In step S214, after sending a signal for requesting subsequent data, the controller 20 refers to the value of the byte counter to determine whether 512 bytes of data have been written to the page currently being selected.

그리고 512바이트 기록되었다고 판별하면 컨트롤러(20)는 CPU(12)에 다음의 논리어드레스를 보내는 것을 요구한다(스텝 S215).If it is determined that 512 bytes have been recorded, the controller 20 requests the CPU 12 to send the next logical address (step S215).

그리고, CPU(12)가 다음의 논리어드레스를 버스라인(13)상에 송출하고, 컨트롤러(20)가 그 논리어드레스를 취득하면 컨트롤러(20)는 그 논리어드레스를 스텝 S201에서 취득한 것으로서 취급하는 것으로 하고, 처리를 도 7의 처리에 있어서의 스텝 S202로 되돌린다.When the CPU 12 sends the next logical address on the bus line 13, and the controller 20 acquires the logical address, the controller 20 treats the logical address as having been acquired in step S201. Then, the process returns to step S202 in the process of FIG. 7.

한편 512바이트 기록되어 있지 않다고 판별하면 컨트롤러(20)는 CPU(12)에 기록대상의 후속데이터를 요구하는 신호를 보낸다(스텝 S216).On the other hand, if it is determined that 512 bytes are not recorded, the controller 20 sends a signal to the CPU 12 requesting subsequent data to be recorded (step S216).

CPU(12)는 이 신호에 응답하여 기록대상의 후속데이터가 있는지 없는지를 판별하고, 후속데이터가 없다고 판별하면 버스라인(13)에 기록종료를 나타내는 제어코드를 공급한다. 한편 후속데이터가 있다고 판별하면 CPU(12)는 버스라인(13)에 후속의 1바이트의 데이터를 공급한다.In response to this signal, the CPU 12 determines whether there is any subsequent data to be recorded, and if it determines that there is no subsequent data, the CPU 12 supplies a control code indicating the end of recording to the bus line 13. On the other hand, if it is determined that there is subsequent data, the CPU 12 supplies the subsequent one byte of data to the bus line 13.

컨트롤러(20)는 스텝 S216에서 후속데이터를 요구하는 신호를 보낸 후 CPU(12)로부터 후속의 데이터 또는 기록종료를 나타내는 제어코드를 공급받으면 공급된 것이 기록종료를 나타내는 제어코드인지 아닌지를 판별한다(스텝 S217).When the controller 20 sends a signal requesting subsequent data in step S216 and receives a control code indicating subsequent data or recording termination from the CPU 12, it determines whether or not the supplied one is a control code indicating completion of recording ( Step S217).

그리고, 해당 제어코드가 아니라고 판별하면 컨트롤러(20)는 처리를 스텝 S213으로 되돌리고, 해당 제어코드라고 판별하면 도 9에 나타내는 구데이터소거의 처리로 옮긴다.If it is determined that it is not the control code, the controller 20 returns the process to step S213. If it is determined that it is the control code, the controller 20 shifts to the old data erasing process shown in FIG.

또한 CPU(12)가 기록대상의 데이터가 아닌 것을 컨트롤러에 통지하는 수법은 임의이고, 제어코드를 버스라인(13)을 통해서 공급하는 수법에 한하지 않고, 예를 들면 다른 임의의 제어선을 통해서 기록대상의 데이터가 아닌 것을 나타내는 제어신호를 컨트롤러에 송출하도록 해도 좋다.In addition, the method of notifying the controller that the CPU 12 is not data to be recorded is arbitrary, and is not limited to the method of supplying a control code through the bus line 13, for example, through any other control line. The control signal may be sent to the controller indicating that the data is not to be recorded.

(데이터기록: 구데이터의 소거)(Data record: Erase old data)

기록종료의 제어코드를 취득한 컨트롤러(20)는 도 9에 나타내는 구데이터소거의 처리를 실행한다.The controller 20 which has acquired the control code for recording completion performs the old data erasing process shown in FIG.

도 9의 처리를 개시하면 컨트롤러(20)는 우선 이미 판독한 어드레스변환테이블의 내용에 의거하여 스텝 S203에서 자기가 기억한 물리어드레스(즉 스텝 S206에서 새로이 물리어드레스가 대응 지워질 때까지 기록대상의 논리어드레스에 대응 지워져있었던 오래된 물리어드레스)와 동일의 블록에 속하는 물리어드레스를 특정한다(스텝 S221).When the processing of Fig. 9 is started, the controller 20 first starts the logic of the recording target until the physical address stored in the self is stored in step S203 (ie, the new physical address is correspondingly erased in step S206) based on the contents of the address conversion table that has already been read. The physical address belonging to the same block as the old physical address corresponding to the address) is specified (step S221).

그리고, 이 기억장치는 스텝 S221에서 특정한 물리어드레스의 각각을 판독대 상데이터의 선두페이지를 나타내는 것으로 하고, 이들의 물리어드레스의 각각에 붙어 도 6의 스텝 S108∼S114의 처리에 따라 데이터판독을 실시한다(스텝 S222). 그리고, 컨트롤러(20)는 또한 스텝 S204∼S206 처리와 실질적으로 동일의 처리를 실시하고, 스텝 S222에서 판독한 데이터를 격납하는 물리어드레스를 특정한다(스텝 S223).This storage device assumes that each of the physical addresses specified in step S221 represents the first page of the target data for reading, and attaches to each of these physical addresses in accordance with the processing of steps S108 to S114 in FIG. (Step S222). The controller 20 further performs processing substantially the same as the processing in steps S204 to S206, and specifies a physical address for storing data read in step S222 (step S223).

단, 스텝 S223에 있어서는 데이터를 격납하는 물리어드레스로서 판독한 데이터가 격납되어 있었던 블록과 동일의 블록에 속하는 물리어드레스를 특정하지 않도록 한다.However, in step S223, the physical address belonging to the same block as the block in which the read data is stored as the physical address for storing the data is not specified.

다음에 이 기억장치는 스텝 S222에서 판독한 데이터를 스텝 S223에서 특정한 어드레스에 도 8의 처리에 따라 기록한다(스텝 S224).Next, this memory device writes the data read in step S222 to the address specified in step S223 in accordance with the process of Fig. 8 (step S224).

다음에 컨트롤러(20)는 글로벌버퍼(6)에 기억내용을 소거하는 대상의 블록지정을 실시하기 위한 소정의 셋업커맨드를 공급하여 제어회로(5)에 래치신호(Slatch)를 보낸다(스텝 S225).Next, the controller 20 supplies the global buffer 6 with a predetermined setup command for performing block designation for erasing the stored contents, and sends a latch signal (Slatch) to the control circuit 5 (step S225). .

제어회로(5)는 스텝 S225에서 래치신호(Slatch)가 공급되었을 때 글로벌버퍼(6)에 공급된 데이터가 셋업커맨드인 것을 검지하여 다음에 글로벌버퍼(6)에 공급되는 데이터를 소거하는 대상블록의 블록어드레스로서 취급하는 것을 결정한다.The control circuit 5 detects that the data supplied to the global buffer 6 is the setup command when the latch signal Slatch is supplied in step S225, and then erases the data supplied to the global buffer 6 next. It decides to treat as block address of.

다음에 컨트롤러(20)는 글로벌버퍼(6)에 기억내용을 소거하는 대상블록(즉 스텝 S203에서 자기가 기억한 물리어드레스가 속하는 블록)의 블록어드레스를 공급하여 제어회로(5)에 래치신호(Slatch)를 보낸다(스텝 S226). Next, the controller 20 supplies the block address of the target block for erasing the stored contents (that is, the block to which the physical address is stored) to the global buffer 6 to the control circuit 5 to supply a latch signal ( Slatch) (step S226).                 

제어회로(5)는 스텝 S226에서 공급된 래치신호(Slatch)에 응답하여 글로벌버퍼(6)에 지시를 보내고, 컨트롤러(20)가 공급하고 있는 블록어드레스를 글로벌버퍼(6)에 래치시킨다. 글로벌버퍼(6)에 래치된 블록어드레스는 블록어드레스버퍼(3B)를 통해서 블록어드레스디코더(4B)에 공급되고, 이에 따라 기억내용을 소거하는 대상의 블록이 선택된다.The control circuit 5 sends an instruction to the global buffer 6 in response to the latch signal Slatch supplied in step S226, and latches the block address supplied by the controller 20 to the global buffer 6. The block address latched in the global buffer 6 is supplied to the block address decoder 4B via the block address buffer 3B, and thus the block to be erased is selected.

다음에 컨트롤러(20)는 글로벌버퍼(6)에 기억내용을 소거하기 위한 소정의 소거커맨드를 공급하여 제어회로(5)에 래치신호(Slatch)를 보낸다(스텝 S227).Next, the controller 20 supplies a predetermined erase command for erasing the stored contents to the global buffer 6, and sends a latch signal (Slatch) to the control circuit 5 (step S227).

제어회로(5)는 스텝 S227에서 래치신호(Slatch)가 공급되었을 때 글로벌버퍼(6)에 공급된 데이터가 소거커맨드인 것을 검지하여 블록어드레스디코더(4B)에 선택되어 있는 블록의 기억내용을 소거하도록 지시한다.The control circuit 5 detects that the data supplied to the global buffer 6 is the erase command when the latch signal Slatch is supplied in step S227, and erases the contents of the block selected by the block address decoder 4B. Instruct them to.

지시를 받은 블록어드레스디코더(4B)는 소거의 대상으로서 선택되어 있는 블록의 데이터를 소거하도록 지시하는 신호를 소거제어회로(1e)에 보낸다. 이에 따라 해당 블록의 기록내용은 소거된다.The block address decoder 4B which has been instructed sends a signal to the erasure control circuit 1e which instructs to erase the data of the block selected as the object of erasing. As a result, the contents of the block are erased.

스텝 S221∼S227의 처리에 의해 메모리셀어레이(1)에 기록된 데이터는 소거되고, 소거된 데이터와 같은 블록에 기억되어 있던 데이터는 다른 페이지로 퇴피된다.By the processing of steps S221 to S227, the data recorded in the memory cell array 1 is erased, and the data stored in the same block as the erased data is retracted to another page.

또한 구데이터소거의 처리는 기록처리의 후에 실시되는 것일 필요는 없다. 따라서 예를 들면 데이터를 기록대상의 물리어드레스를 결정한 후, 그 물리어드레스에 새로이 대응 지워진 논리어드레스에 대응 지워져있었던 오래된 물리어드레스가 있는 블록의 기억내용을 우선 소거하고, 이어서 데이터를 기록대상의 물리어드 레스에 새로운 데이터를 기록하도록 해도 좋다.In addition, the old data erasing process need not be performed after the recording process. Thus, for example, after determining the physical address of the data to be recorded, the memory contents of the block in which the old physical address corresponding to the newly deleted logical address is deleted in the physical address are first erased, and then the data is stored in the physical address of the recording target. New data may be recorded in the address.

또 데이터의 소거가 실시되는 장면은 상술의 스텝 S221∼S227의 경우와 같은 데이터의 기록처리의 일환으로서 이루어지는 장면에 한정되지 않는다.The scene in which data is erased is not limited to the scene which is performed as part of the data recording process as in the case of steps S221 to S227 described above.

따라서 데이터의 소거는 새로운 데이터의 기록을 동반하지 않고 실시돼도 좋다.Therefore, erasure of data may be performed without accompanying recording of new data.

구체적으로는 예를 들면 우선 CPU(12)가 데이터의 소거를 지시하는 커맨드를 컨트롤러(20)에 보내고, 소거대상의 논리어드레스를 버스라인(13)을 통해서 컨트롤러(20)에 공급한다.Specifically, for example, the CPU 12 first sends a command for instructing data to be erased to the controller 20, and supplies the logical address to be erased to the controller 20 via the bus line 13.

컨트롤러(20)는 커맨드에 응답하여 도 7 처리의 스텝 S201∼S203에 있어서의 처리와 똑같은 처리를 실시하고, 소거대상의 논리어드레스가 나타내는 물리어드레스(즉 소거대상의 물리어드레스)를 특정한다.In response to the command, the controller 20 performs the same processing as that in the steps S201 to S203 of Fig. 7 processing, and specifies the physical address indicated by the logical address to be erased (that is, the physical address to be erased).

그리고, 컨트롤러(20)는 특정된 소거대상의 물리어드레스를 스텝 S203에서 특정된 물리어드레스인 것으로서 취급하고, 상술한 스텝 S221∼S227의 처리를 실시한다. 이에 따라 소거대상의 물리어드레스가 속하는 블록의 기록내용이 소거된다.Then, the controller 20 treats the specified physical address of the erase target as being the physical address specified in step S203, and performs the processes of steps S221 to S227 described above. As a result, the recording contents of the block to which the physical address to be erased belongs are erased.

또한 상술의 데이터기록처리에 있어서 컨트롤러(20)는 새로이 기록대상의 물리어드레스를 지정할 때 데이터가 최후에 데이터가 기록된 빈블록 이후의 블록에 차례로 기록되고 후속의 블록에 빈블록이 없을 때는 선두블록 이후의 빈블록에 차례로 기록되도록 지정해도 좋다.In the above data recording process, when the controller 20 newly designates the physical address of the recording target, the data is sequentially written to the block after the last block in which the data was last written, and the head block when there is no empty block in the subsequent block. It may be specified to be written in succession to the following blank blocks.

이에 따라 빈블록에의 기록은 사이클링으로 이루어지기 때문에 특정 블록만의 데이터갱신의 빈도가 높게 되는 일이 없고, 따라서 특정 블록의 성능이 집중적 으로 열화(劣化)하는 사태가 방지된다.As a result, the writing to the empty block is performed by cycling, so that the frequency of data update of only a specific block does not become high, thereby preventing the intensive deterioration of the performance of the specific block.

(빈블록테이블 및 어드레스변환테이블 갱신)(Update empty block table and address conversion table)

이상의 처리에 의해 데이터소거나 데이터기록이 완료하면 컨트롤러(20)는 빈블록테이블 및 어드레스변환테이블을 갱신하기 위해 도 10에 나타내는 처리를 개시한다,When data writing or data writing is completed by the above processing, the controller 20 starts the processing shown in Fig. 10 to update the empty block table and the address conversion table.

도 10에 나타내는 처리에 있어서 우선 컨트롤러(20)는 빈블록테이블을 갱신하기 위해 도 7의 스텝 S201∼S205의 처리와 실질적으로 동일의 처리를 실시하여 플래시메모리유닛(10)으로부터 빈블록테이블을 취득하고, 그 빈블록테이블을 일시 기억한다(스텝 S301).In the process shown in FIG. 10, the controller 20 first performs a process substantially the same as the process of steps S201 to S205 in FIG. 7 to update the empty block table, and acquires an empty block table from the flash memory unit 10. FIG. The empty block table is temporarily stored (step S301).

다음에 컨트롤러(20)는 일시 기억한 빈블록테이블의 내용에 의거하여 새로이 빈블록테이블 및 어드레스변환테이블을 기록하기 위한 빈블록을 1개 특정하고, 그 블록의 선두페이지를 기억한다(스텝 S302).Next, the controller 20 specifies one empty block for recording the empty block table and the address conversion table newly based on the contents of the temporarily stored empty block table, and stores the first page of the block (step S302). .

그리고, 컨트롤러(20)는 일시 기억한 빈블록테이블 중 데이터의 기록이 이루어진 빈블록 및 스텝 S302에서 특정된 빈블록을 나타내는 비트나 스텝 S206 및 S223에서 특정된 물리어드레스가 속하는 블록을 나타내는 비트를 「1」에서 「0」으로 변환한다.Then, the controller 20 selects a bit indicating a free block in which data is written and a free block specified in step S302 or a bit indicating a block to which the physical address specified in steps S206 and S223 belong to the temporarily stored free block table. "To" 0 ".

또 컨트롤러(20)는 빈블록테이블 및 어드레스변환테이블이 현재 있는 블록을 나타내는 비트나 스텝 S227에서 기록내용이 소거된 블록을 나타내는 비트를 「0」에서 「1」로 변환한다(스텝 S303).The controller 20 also converts the bit indicating the block in which the empty block table and the address conversion table are present or the bit indicating the block whose recording contents have been erased in step S227 from "0" to "1" (step S303).

다음에 컨트롤러(20)는 스텝 S302에서 특정한 빈블록의 선두페이지의 물리어 드레스를 글로벌버퍼(6)에 공급하고, 제어회로(5)에 래치신호(Slatch)를 보낸다(스텝 S304).In step S302, the controller 20 supplies the first address of the first page of the blank block specified to the global buffer 6 and sends a latch signal (Slatch) to the control circuit 5 (step S304).

제어회로(5)는 래치신호(Slatch)에 응답하여 비지신호(Sbusy)의 공급을 정지하고, 컨트롤러(20)에의 리디신호(Sready)의 공급을 개시한다. 그리고, X어드레스디코더(4X)에 컨트롤러(20)로부터 글로벌버퍼(6)에 공급된 물리어드레스를 선택시킨다.The control circuit 5 stops the supply of the busy signal Sbusy in response to the latch signal Slatch, and starts the supply of the ready signal Sready to the controller 20. Then, the X address decoder 4X selects the physical address supplied from the controller 20 to the global buffer 6.

한편 컨트롤러(20)는 리디신호(Sready)에 응답하여 스텝 S303에서 변환완료의 빈블록테이블 중 선두의 1바이트 분량을 글로벌버퍼(6)에 공급하고(스텝 S305), 제어회로(5)에 기록신호(Swrite)를 보낸다(스텝 S306).On the other hand, the controller 20 supplies the first 1-byte portion of the converted empty block table to the global buffer 6 in step S303 in response to the ready signal Sready (step S305) and writes to the control circuit 5. A signal Swrite is sent (step S306).

제어회로(5)는 기록신호(Swrite)에 응답하여 컨트롤러(20)로부터 글로벌버퍼(6)에 공급된 데이터를 글로벌버퍼(6)에 래치시켜 리디신호(Sready)의 공급을 정지하고, 컨트롤러(20)에의 비지신호(Sbusy)의 공급을 재개한다. 글로벌버퍼(6)는 버스라인(13)상의 데이터를 래치하여 I/O버퍼(2)에 격납한다.The control circuit 5 latches data supplied from the controller 20 to the global buffer 6 in the global buffer 6 in response to the write signal Swrite to stop the supply of the ready signal Sready, Supply of busy signal Sbusy to 20 is resumed. The global buffer 6 latches data on the bus line 13 and stores it in the I / O buffer 2.

다음에 제어회로(5)는 I/O버퍼(2)에 I/O버퍼(2)가 격납하고 있는 데이터를 데이터입출력단(Tdata)에 공급시켜 기록제어단(Twritecont)에 액티브레벨의 기록제어신호를 공급하여 데이터입출력단(Tdata)에 공급되어 있는 데이터를 현재 선택되어 있는 페이지의 선두메모리셀에 기록시킨다.Next, the control circuit 5 supplies the data stored in the I / O buffer 2 to the data input / output terminal Tdata in the I / O buffer 2 to control the write of the active level to the write control terminal Twritecont. A signal is supplied to write data supplied to the data input / output terminal Tdata to the head memory cell of the currently selected page.

그리고, 제어회로(5)는 비지신호(Sbusy)의 공급을 정지하고, 컨트롤러(20)에의 리디신호(Sready)의 공급을 재개한다.Then, the control circuit 5 stops the supply of the busy signal Sbusy and resumes the supply of the ready signal Sready to the controller 20.

컨트롤러(20)는 리디신호(Sready)의 공급 재개를 검지하면 자기가 일시 기억 하는 빈블록테이블 중 아직 플래시메모리유닛(10)에 공급하고 있지 않은 부분이 남아있는지 없는지를 판별한다(스텝 S307).When the controller 20 detects the resume of supply of the ready signal Sready, the controller 20 determines whether or not a portion of the empty block table stored temporarily by itself is not yet supplied to the flash memory unit 10 (step S307).

그리고, 남아있다고 판별하면 컨트롤러(20)는 자기가 일시 기억하는 빈블록테이블의 후속의 1바이트를 글로벌버퍼(6)에 공급하여(스텝 S308) 처리를 스텝 S306으로 옮긴다.If it is determined that it remains, the controller 20 supplies the next 1 byte of the empty block table which it temporarily stores to the global buffer 6 (step S308), and transfers the process to step S306.

한편 남아있지 않다고 판별하면 컨트롤러(20)는 어드레스변환테이블을 갱신하기 위해 어드레스변환테이블의 선두페이지의 물리어드레스를 글로벌버퍼(6)에 공급하고, 제어회로(5)에 래치신호(Slatch)를 공급하여 제어회로(5)로부터 리디신호(Sready)가 공급되는 것을 대기한다(스텝 S309).On the other hand, if it is determined that it is not left, the controller 20 supplies the physical address of the first page of the address translation table to the global buffer 6 and supplies the latch signal (Slatch) to the control circuit 5 to update the address translation table. Then, it waits for the ready signal Sready to be supplied from the control circuit 5 (step S309).

그러면 플래시메모리유닛(10)은 스텝 S103에서 래치신호(Slatch)가 공급된 경우와 똑같이 하여 비지신호(Sbusy)의 공급을 정지하여 컨트롤러(20)에 리디신호(Sready)를 공급하고, 어드레스변환테이블 중 컨트롤러(20)가 지시하는 페이지의 기억내용을 컨트롤러(20)에 공급한다.Then, the flash memory unit 10 stops the supply of the busy signal Sbusy in the same manner as the latch signal Slatch is supplied in step S103, and supplies the ready signal Sready to the controller 20, and the address conversion table. The stored contents of the page indicated by the controller 20 are supplied to the controller 20.

한편 컨트롤러(20)는 스텝 S105와 똑같이 하여 플래시메모리유닛(10)으로부터 자기가 공급한 물리어드레스에 해당하는 페이지에 기억되어 있는 각 논리어드레스와 각 논리어드레스에 대응 지워진 물리어드레스를 판독하여 일시 기억한다(스텝 S310).On the other hand, the controller 20 reads and temporarily stores each logical address stored in the page corresponding to the physical address supplied by the flash memory unit 10 and the physical addresses deleted corresponding to each logical address in the same manner as in step S105. (Step S310).

다음에 컨트롤러(20)는 일시 기억한 각 논리어드레스 중에 물리어드레스의 할당이 변경될 대상으로서 자기가 기억하고 있는 논리어드레스와 일치하는 것이 있는지 없는지를 판별한다(스텝 S311). Next, the controller 20 determines whether or not the logical address stored in the temporary address matches the logical address stored as the object to which the physical address is to be changed (step S311).                 

일치하는 것이 없다고 판별했을 때, 컨트롤러(20)는 처리를 스텝 S313으로 옮긴다. 일치하는 것이 있다고 판별했을 때, 컨트롤러(20)는 자기가 일시 기억하고 있는 물리어드레스 중 일치한다고 판별한 논리어드레스에 대응 지워져있는 것을 그 논리어드레스에 새로이 대응 지워질 물리어드레스로 변환하고(스텝 S312). 처리를 스텝 S313으로 옮긴다. When it is determined that there is no match, the controller 20 moves the processing to step S313. When it is determined that there is a match, the controller 20 converts the one corresponding to the logical address determined to be matched among the physical addresses stored temporarily by the controller to a physical address to be newly corresponded to the logical address (step S312). The process moves to step S313.

예를 들면 데이터 기록의 대상으로서 CPU(12)가 컨트롤러(20)에 공급한 논리어드레스는 스텝 S311에 있어서 물리어드레스의 할당이 변경될 대상으로서 컨트롤러(20)가 기억하는 논리어드레스와 일치한다고 판별된다. 그리고, 스텝 S312에서 해당 논리어드레스가 나타내는 물리어드레스는 스텝 S202에서 특정된 오래된 물리어드레스로부터 스텝 S206에서 특정된 새로운 물리어드레스로 변환된다.For example, the logical address supplied to the controller 20 by the CPU 12 as the object of data recording is determined in step S311 that the logical address matches the logical address stored by the controller 20 as the object to which the physical address is to be changed. . The physical address indicated by the logical address in step S312 is converted from the old physical address specified in step S202 to the new physical address specified in step S206.

다음에 이 기억장치는 스텝 S301∼S308의 처리와 실질적으로 동일의 처리를 실시함으로써 메모리셀어레이(1) 중 도 10의 처리를 개시하여 이후에서 최신의 기록이 이루어진 페이지의 다음 페이지에 어드레스변환테이블 중 자기가 일시 기억하는 1페이지 분량의 부분을 기록한다(스텝 S313).Next, the memory device starts the processing shown in Fig. 10 of the memory cell array 1 by performing the processing substantially the same as the processing of steps S301 to S308, and then the address conversion table is placed on the next page of the page where the latest recording is made. One part of the page is temporarily recorded (step S313).

기록이 완료하면 컨트롤러(20)는 스텝 S313에서 기록한 페이지의 수가 어드레스변환테이블의 총 페이지 수에 동등한지 아닌지를 판별함으로써 어드레스변환테이블의 기록을 완료했는지 아닌지를 판별한다(스텝 S314).When writing is completed, the controller 20 determines whether or not writing of the address conversion table has been completed by determining whether the number of pages written in step S313 is equal to the total number of pages of the address conversion table (step S314).

그리고, 완료했다고 판별했을 때는 처리를 스텝 S316으로 옮긴다. 완료하지 않았다고 판별했을 때는 글로벌버퍼(6)에 어드레스변환테이블의 다음 페이지의 물리어드레스를 공급하고, 제어회로(5)에 래치신호(Slatch)를 송출하여(스텝 S315) 처리를 스텝 S310으로 되돌린다.And when it determines with completion, it transfers a process to step S316. When it is determined that it is not completed, the physical address of the next page of the address conversion table is supplied to the global buffer 6, a latch signal (Slatch) is sent to the control circuit 5 (step S315), and the process returns to step S310. .

스텝 S316에 있어서 컨트롤러(20)는 갱신 후의 빈블록테이블 및 어드레스변환테이블의 위치를 기억한다.In step S316, the controller 20 stores the positions of the empty block table and the address conversion table after the update.

그리고, 이 기억장치는 상술한 스텝 S221∼S227과 똑같은 처리에 따라 갱신 전의 빈블록테이블 및 어드레스변환테이블이 있는 논리어드레스의 기억내용을 소거한다(스텝 S317).Then, this memory device erases the contents of the storage of the logical address including the empty block table and the address conversion table before the update in the same processing as in steps S221 to S227 described above (step S317).

또한 이 기억장치에서는 데이터의 기록순서에 그 데이터의 논리어드레스와 물리어드레스의 대응관계를 어드레스변환테이블에 기록하고 있었다. 그리고, 데이터의 판독 때에는 어드레스변환테이블을 차례로 조사하여 논리어드레스와 물리어드레스의 대응관계를 판독하고 있었다. 이에 대해 논리어드레스와 물리어드레스의 대응관계의 판독에 다음과 같은 고속화수법을 이용해도 좋다. In this storage device, the correspondence relationship between the logical address and the physical address of the data is recorded in the address conversion table in the data recording order. In reading the data, the address conversion table was examined in order to read the correspondence relationship between the logical address and the physical address. On the other hand, the following speedup method may be used to read the correspondence relationship between the logical address and the physical address.

예를 들면 컨트롤러(20)는 데이터의 기록 시에 CPU(12)로부터 보내진 논리어드레스로부터 소정의 해시(hash)관계를 사용하여 논리어드레스와 물리어드레스의 대응관계의 어드레스변환테이블 내에서의 기억위치를 구하고, 구한 기억위치에 논리어드레스와 물리어드레스의 대응관계를 기억하도록 플래시메모리유닛(10)을 제어해도 좋다. 그리고, 컨트롤러(20)는 데이터판독 시에도 같은 해시관계를 사용하여 CPU(12)로부터 보내진 논리어드레스로부터 논리어드레스와 물리어드레스의 대응관계의 기억위치를 구하고, 플래시메모리유닛(10) 중 자기가 구한 기억위치로부터 물리어드레스를 판독하면 좋다.For example, the controller 20 uses a predetermined hash relationship from a logical address sent from the CPU 12 at the time of writing the data to store the storage position in the address conversion table of the correspondence relationship between the logical address and the physical address. The flash memory unit 10 may be controlled to store the correspondence relationship between the logical address and the physical address in the obtained storage position. The controller 20 also uses the same hash relationship to read data from the logical addresses sent from the CPU 12 to obtain the storage positions of the correspondence relations between the logical addresses and the physical addresses. The physical address may be read from the storage position.

이 경우 CPU(12)로부터 보내진 논리어드레스로부터 구한 기억위치의 충돌이 일어나는 경우가 발생하는데, 이 때는 구한 기억위치의 다음 기억위치에 논리어드레스와 물리어드레스의 대응관계를 기억해도 충돌한 것을 기억하는 영역을 특별히 설치해도 좋다.In this case, there is a case where a collision of the storage position obtained from the logical address sent from the CPU 12 occurs. In this case, even if the correspondence relation between the logical address and the physical address is stored in the next storage position of the obtained storage position, the collision is stored. You may install especially.

이상 설명한 바와 같이 이 기억장치에서는 메모리셀어레이(1) 자신에 어드레스변환테이블과 빈블록테이블을 격납하고, 또한 이들의 테이블을 이용하여 데이터의 판독 및 기록이 가능하게 된다.As described above, in this memory device, the memory cell array 1 itself stores an address conversion table and an empty block table, and data can be read and written using these tables.

또한 각 블록의 크기는 상술의 크기에 한하지 않는다. 예를 들면 각 블록은 16페이지로 구성될 필요는 없고, 예를 들면 각 페이지 크기의 정수 배이면 좋다.In addition, the size of each block is not limited to the size mentioned above. For example, each block need not consist of 16 pages, for example, an integer multiple of each page size.

또 이 기억장치가 예를 들면 JEIDA/PCMCIA 인터페이스를 구비한 플래시메모리인 경우 각 페이지의 크기는 컴퓨터(11) 상에서 실행되는 OS(오퍼레이팅 시스템)에 의해 결정되는 것이 일반적인데. 반드시 OS에 의해 결정될 필요는 없다.In addition, when the storage device is, for example, a flash memory having a JEIDA / PCMCIA interface, the size of each page is generally determined by an OS (operating system) running on the computer 11. It is not necessarily determined by the operating system.

또 각 블록의 크기는 이 기억장치에 고유의 값인 것이 일반적인데, 이 기억장치에 있어서의 각 블록의 크기는 외부로부터의 제어에 의해 지정할 수 있는 것이어도 좋다.In addition, although the size of each block is a value unique to this storage device, the size of each block in this storage device may be specified by control from the outside.

(제 2 실시형태)(2nd embodiment)

제 1 실시형태의 기억장치에서는 빈블록의 위치를 나타내는 정보가 특정의 영역에 집중하여 격납되어 있었다. 그러나 빈블록의 위치를 나타내는 정보는 집중하여 보존될 필요는 없고, 예를 들면 각 빈블록에 다른 빈블록의 위치를 나타내는 정보를 차례로 격납함으로써 빈블록을 연쇄시키는 형태를 취하여 빈블록의 관리를 실시할 수 있다. In the storage device of the first embodiment, information indicating the position of the empty block is concentrated and stored in a specific area. However, the information indicating the positions of the empty blocks does not need to be concentrated and preserved. For example, the empty blocks are managed by storing information indicating the positions of other empty blocks in sequence, thereby managing the empty blocks. can do.                 

이하 그와 같은 연쇄한 빈블록을 구비하는 제 2 실시형태의 기억장치 및 그 빈블록관리의 처리를 도 11∼도 13을 참조하여 설명한다.Hereinafter, the storage device of the second embodiment having such concatenated free blocks and the processing of the free block management will be described with reference to Figs.

이 실시형태 기억장치의 기본구성은 제 1 실시형태 기억장치의 기본구성과 실질적으로 동일하다. 단 이 실시형태에서는 어드레스변환테이블은 임의의 블록 선두영역에 격납되어 있다.The basic configuration of this embodiment storage device is substantially the same as the basic configuration of the first embodiment storage device. In this embodiment, however, the address conversion table is stored in an arbitrary block head area.

또 각 빈블록의 리던던트부의 소정위치에는 도 11에 나타내는 바와 같이 그 빈블록보다도 논리적으로 뒤에 있는 빈블록 중 가장 가까운 빈블록의 번호를 나타내는 빈블록정보가 기억되어 있다.In the predetermined position of the redundant portion of each free block, as shown in Fig. 11, free block information indicating the number of the closest free block among the free blocks logically behind the free block is stored.

이 빈블록정보에 의해 정의되는 빈블록의 연쇄는 물리적인 빈블록의 배치와는 다른 순번으로 연쇄되어 있다.The concatenation of empty blocks defined by this empty block information is concatenated in a different order from the arrangement of physical empty blocks.

또 제어회로(5)는 빈블록 연쇄 중의 최초 빈블록의 빈블록번호를 기억하고 있다.The control circuit 5 also stores the free block number of the first free block in the free block chain.

이 실시형태의 기억장치에서는 상술과 같이 데이터영역과 리던던트부가 각 페이지 중에 서로 중복하지 않도록 배치되어 있다.In the storage device of this embodiment, as described above, the data area and the redundant part are arranged so as not to overlap each other in each page.

이로 인해 이미 빈블록정보가 기록되어 있는 빈블록에 데이터를 기록하는 처리를, 데이터를 단지 덮어쓰는 것에 의해 실행해도 빈블록의 리던던트부에 기록된 빈블록정보가 파괴되는 일은 없다.For this reason, even if the process of recording data in the empty block in which empty block information has already been recorded is executed by simply overwriting the data, the empty block information recorded in the redundant portion of the empty block is not destroyed.

(제 2 실시형태의 동작)(Operation of the Second Embodiment)

이 기억장치에 데이터를 기록하는 처리는 데이터기록의 처리와 빈블록정보 및 어드레스변환테이블 갱신의 처리를 제하고, 제 1 실시형태의 처리와 동일하다. 그래서 데이터기록처리와 빈블록정보 및 어드레스변환테이블을 갱신하는 처리를 중심으로 도 12∼도 13을 참조하여 이 기억장치의 동작을 설명한다.The process of writing data in this storage device is the same as that of the first embodiment except for the process of writing the data and the process of updating the free block information and the address conversion table. Thus, the operation of this storage device will be described with reference to Figs. 12 to 13, focusing on data writing processing and updating of free block information and address conversion table.

(데이터기록) (Data record)

이 기억장치에 있어서 데이터를 기록할 때는 도 12에 나타내는 스텝 S501부터 처리를 개시한다.When recording data in this storage device, the process starts from step S501 shown in FIG.

스텝 S501에 있어서 CPU(12)는 기록대상의 논리어드레스를 특정한 후 그 논리어드레스 중 가장 번호가 이른 것의 값을 버스라인(13)상에 공급하고, 컨트롤러(20)에 데이터기록을 지시하는 커맨드를 공급한다.In step S501, the CPU 12 specifies the logical address to be recorded, supplies the value of the oldest of the logical addresses on the bus line 13, and instructs the controller 20 to instruct data recording. Supply.

컨트롤러(20)는 스텝 S501에서 공급된 커맨드에 응답하고 버스라인(13)을 통해서 CPU(12)로부터 공급된 논리어드레스를 기록대상의 논리어드레스로서 기억한다(스텝 S502).The controller 20 responds to the command supplied in step S501 and stores the logical address supplied from the CPU 12 via the bus line 13 as the logical address to be recorded (step S502).

이어서 컨트롤러(20)는 앞에 서술한 스텝 S202의 처리와 실질적으로 동일의 처리를 실시함으로써 자기가 기억하는 기록대상의 논리어드레스에 대응 지워져있는 물리어드레스를 특정한다(스텝 S503).Subsequently, the controller 20 specifies the physical address corresponding to the logical address of the recording object to be stored by performing the same processing as that of step S202 described above (step S503).

다음에 컨트롤러(20)는 자기가 기억하는 데이터를 참조하고, 선두빈블록의 선두페이지를 특정한다(스텝 S504). 그리고, 이후 스텝 S503에서 특정한 물리어드레스와 스텝 S504에서 특정한 페이지에 해당하는 물리어드레스를 서로 교체하여 취급하는 것으로 결정한다(스텝 S505). 이에 따라 기록대상의 물리어드레스는 스텝 S504에서 특정된 연쇄의 선두빈블록에 해당하는 물리어드레스로 된다.Next, the controller 20 refers to the data stored by the controller 20 and specifies the first page of the first empty block (step S504). Subsequently, in step S503, it is determined that the specific physical address and the physical address corresponding to the specific page are handled interchangeably (step S505). As a result, the physical address to be recorded is the physical address corresponding to the first empty block of the chain specified in step S504.

다음에 컨트롤러(20)는 글로벌버퍼(6)에 스텝 S505에서 기록대상으로서 결정 된 물리어드레스를 공급하고, 제어회로(5)에 해당 물리어드레스가 나타내는 페이지의 선두부터 513바이트 째 이후를 판독하는 것을 지시한다(스텝 S506).Next, the controller 20 supplies the global buffer 6 with the physical address determined as the recording target in step S505, and reads the 513 bytes or more from the beginning of the page indicated by the physical address to the control circuit 5. Instruction (step S506).

제어회로(5)는 스텝 S504에서 특정된 페이지를 선택하도록 X어드레스디코더(4X)에 지시하고, 이어서 메모리셀어레이(1)의 판독제어단(Tteadcont)에 데이터 판독의 지시를 보낸다. 메모리셀어레이(1)는 해당 페이지의 리던던트부에 기억되어 있는 빈블록정보를 I/O버퍼(2) 및 글로벌버퍼(6)를 통해서 컨트롤러(20)에 1바이트씩 차례로 공급한다.The control circuit 5 instructs the X address decoder 4X to select the page specified in step S504, and then sends an instruction of data reading to the read control terminal Tteadcont of the memory cell array 1. The memory cell array 1 sequentially supplies the empty block information stored in the redundant portion of the page to the controller 20 one by one through the I / O buffer 2 and the global buffer 6.

컨트롤러(20)는 플래시메모리유닛(10)으로부터 공급된 빈블록정보를 판독하면 그 빈블록정보를 선두의 빈블록의 위치정보로서 기억한다(스텝 S507). 스텝 S507에서 기억된 빈블록정보는 도 12에 나타내는 처리를 거친 후에 새로이 연쇄의 선두로 되는 빈블록을 나타낸다.When the controller 20 reads the free block information supplied from the flash memory unit 10, the controller 20 stores the free block information as position information of the leading free block (step S507). The free block information stored in step S507 represents a free block that is newly at the head of the chain after the processing shown in FIG.

이어서 이 기억장치는 스텝 S505에서 기록대상으로서 결정한 페이지에 해당하는 물리어드레스를 제 1 실시형태에 있어서의 스텝 S206에서 특정된 물리어드레스로서 취급하고, 상술의 스텝 S211∼S217의 처리와 실질적으로 동일의 처리를 실시하여 데이터를 기록한다(스텝 S508).Subsequently, the storage device treats the physical address corresponding to the page determined as the recording target in step S505 as the physical address specified in step S206 in the first embodiment, and is substantially the same as the processing of steps S211 to S217 described above. Processing is performed to record data (step S508).

그리고, 스텝 S508의 처리 중 스텝 S217에 해당하는 처리에 있어서 CPU(12)로부터 기록종료를 나타내는 제어코드가 공급되었다고 판별하면 컨트롤러(20)는 데이터기록의 처리를 종료한다.When the control code indicating the end of recording is supplied from the CPU 12 in the processing corresponding to step S217 among the processing in step S508, the controller 20 ends the data recording processing.

또 스텝 S214에 해당하는 처리에 있어서 현재 선택 중의 페이지에 512바이트의 데이터가 기록되었다고 판별하면 컨트롤러(20)는 CPU(12)에 다음 논리어드레스 의 공급을 요구하는 신호를 보내고, CPU(12)는 이 신호에 응답하여 다음의 논리어드레스를 버스라인(13)상에 송출한다. 그리고 컨트롤러(20)는 버스라인(13)을 통해서 CPU(12)로부터 다음의 논리어드레스를 취득하면 그 논리어드레스를 기록대상의 논리어드레스로서 종전 기억하고 있었던 논리어드레스에 덮어써서 기억하고, 처리를 스텝 S503으로 되돌린다.If it is determined in the processing corresponding to step S214 that 512 bytes of data are recorded on the page currently being selected, the controller 20 sends a signal to the CPU 12 requesting supply of the next logical address, and the CPU 12 In response to this signal, the next logical address is sent out on the bus line 13. When the controller 20 acquires the next logical address from the CPU 12 via the bus line 13, the controller 20 overwrites the logical address previously stored as the logical address as the recording target and stores the processing. Return to S503.

이상 설명한 스텝 S501∼S508의 처리에 의해 기록대상의 논리어드레스가 나타내는 물리어드레스가 빈블록 연쇄의 선두에서 차례로 특정되고, 특정된 빈블록에 데이터의 기록이 실시된다.By the processes of steps S501 to S508 described above, the physical addresses indicated by the logical addresses to be recorded are sequentially specified at the beginning of the free block chain, and data is recorded in the specified free blocks.

(빈블록정보 및 어드레스변환테이블 갱신)(Free block information and address conversion table update)

컨트롤러(20)는 빈블록테이블 및 어드레스변환테이블을 갱신할 때 도 13의 스텝 S601부터 처리를 개시한다.The controller 20 starts the process from step S601 of Fig. 13 when updating the empty block table and the address conversion table.

도 13에 나타내는 처리에 있어서 우선 컨트롤러(20)는 자기가 기억하는 데이터를 참조하고, 선두빈블록의 선두페이지를 특정한다(스텝 S601).In the process shown in FIG. 13, the controller 20 first refers to the data stored by itself, and specifies the first page of the first empty block (step S601).

다음에 컨트롤러(20)는 스텝 S601에서 특정한 페이지의 물리어드레스를 글로벌버퍼(6)에 공급하고, 제어회로(5)에 래치신호(Slatch)를 보낸다(스텝 S602).Next, the controller 20 supplies the physical address of the specified page to the global buffer 6 in step S601, and sends a latch signal (Slatch) to the control circuit 5 (step S602).

제어회로(5)는 래치신호(Slatch)에 응답하고, 글로벌버퍼(6)에 공급된 물리어드레스가 나타내는 페이지를 선택하도록 X어드레스디코더(4X)에 지시하며, 페이지가 선택되면 메모리셀어레이(1)의 판독제어단(Treadcont)에 데이터판독의 지시를 보낸다. 메모리셀어레이(1)는 해당 페이지의 기억내용을 I/O버퍼(2) 및 글로벌버퍼(6)를 통해서 컨트롤러(20)에 1바이트씩 차례로 출력한다. The control circuit 5 responds to the latch signal (Slatch), instructs the X address decoder 4X to select the page indicated by the physical address supplied to the global buffer 6, and when the page is selected, the memory cell array 1 Instructions for reading data are sent to the read control terminal of the control panel. The memory cell array 1 sequentially outputs the contents of the corresponding page to the controller 20 one by one through the I / O buffer 2 and the global buffer 6.                 

그리고, 컨트롤러(20)는 글로벌버퍼(6)로부터 공급되는 해당 기억내용 중 선두부터 513바이트 째 이후를 차례로 판독함으로써 판독된 페이지의 리던던트부에 기억되어 있는 빈블록정보를 취득한다(스텝 S603).The controller 20 then acquires the free block information stored in the redundant portion of the read page by sequentially reading the 513 bytes from the beginning of the corresponding stored contents supplied from the global buffer 6 (step S603).

컨트롤러(20)는 빈블록정보를 판독하면 그 빈블록정보를 스텝 S601에서 특정한 선두빈블록의 선두페이지의 정보에 덮어쓰기 한다. 즉 선두빈블록의 위치정보를 그 다음 빈블록의 위치정보에 갱신한다(스텝 S604).When the controller 20 reads the free block information, the controller 20 overwrites the free block information with the information of the first page of the first free block specified in step S601. That is, the positional information of the first empty block is updated to the positional information of the next empty block (step S604).

다음에 컨트롤러(20)는 앞에 서술한 스텝 S309∼S315의 처리를 실행하여 어드레스변환테이블의 위치를 기억한다(스텝 S606).Next, the controller 20 executes the processes of steps S309 to S315 described above to store the position of the address conversion table (step S606).

단 갱신 후의 어드레스변환테이블은 스텝 S601에서 특정되어 현재 선택되어 있는 페이지에 해당하는 논리어드레스에 기록한다. 또 갱신될 정보에는 논리어드레스가 새로이 할당된 물리블록정보 외, 앞에서 서술한 스텝 S505에 있어서의 물리어드레스의 변환결과의 정보가 포함된다.However, the updated address conversion table is recorded in the logical address corresponding to the page currently specified in step S601 and currently selected. The information to be updated includes, in addition to the physical block information newly assigned the logical address, the information of the conversion result of the physical address in step S505 described above.

다음에 컨트롤러(20)는 빈블록정보를 추가하기 위해 자기가 기억하는 데이터를 참조하고, 선두빈블록의 선두페이지를 특정한다(스텝 S607).Next, the controller 20 refers to the data stored by the controller 20 to add the free block information, and specifies the first page of the first free block (step S607).

다음에 컨트롤러(20)는 자기가 현재 특정하고 있는 페이지의 물리어드레스를 글로벌버퍼(6)에 공급하고, 제어회로(5)에는 래치신호(Slatch)를 보낸다(스텝 S608).Next, the controller 20 supplies the physical address of the page currently specified by the controller to the global buffer 6, and sends a latch signal (Slatch) to the control circuit 5 (step S608).

제어회로(5)는 래치신호(Slatch)에 응답하고, 글로벌버퍼(6)에 공급된 물리어드레스가 나타내는 페이지를 X어드레스디코더(4X)에 선택시켜 메모리셀어레이(1)의 판독제어단(Treadcont)에 데이터판독의 지시를 보내어 메모리셀어레이(1)에 해 당 페이지의 기억내용을 I/O버퍼(2) 및 글로벌버퍼(6)를 통해서 컨트롤러(20)에 차례로 공급시킨다.The control circuit 5 responds to the latch signal (Slatch), selects the page indicated by the physical address supplied to the global buffer 6 to the X address decoder 4X, and reads the read control stage (Treadcont) of the memory cell array 1. The data read command is sent to the memory cell array 1, and the memory cell array 1 supplies the stored contents of the page to the controller 20 through the I / O buffer 2 and the global buffer 6 in order.

그리고, 컨트롤러(20)는 글로벌버퍼(6)로부터 공급되는 정보 중 선두부터 513바이트 째 이후를 차례로 판독함으로써 해당 페이지의 리던던트부에 기억되어 있는 정보를 취득한다(스텝 S609).Then, the controller 20 sequentially reads the 513 bytes from the head of the information supplied from the global buffer 6 to acquire information stored in the redundant portion of the page (step S609).

다음에 컨트롤러(20)는 스텝 S609에서 판독한 정보 중에 빈블록정보가 있는지 없는지를 판별한다(스텝 S610).Next, the controller 20 determines whether there is empty block information in the information read in step S609 (step S610).

빈블록정보가 있을 때 컨트롤러(20)는 그 빈블록정보가 나타내는 다음 빈블록의 선두페이지를 특정하고(스텝 S611), 처리를 스텝 S608로 되돌린다.When there is free block information, the controller 20 specifies the first page of the next free block indicated by the free block information (step S611), and returns the process to step S608.

빈블록정보가 없을 때 현재 특정되어 있는 페이지는 말미 빈블록의 선두페이지이다.When there is no free block information, the currently specified page is the first page of the last free block.

이 때 컨트롤러(20)는 상술의 스텝 S301∼S308의 처리와 실질적으로 똑같은 처리를 실시하고, 선두의 512바이트가 공백으로 513바이트 째 이후에 빈블록정보로서 갱신 전의 오래된 어드레스변환테이블이 현재 격납되어 있는 블록의 정보를 포함하고 있는 데이터를 현재 특정되어 있는 페이지에 기록시키도록 플래시메모리유닛(10)을 제어한다(스텝 S612).At this time, the controller 20 performs substantially the same processing as the above-described steps S301 to S308, and the old address conversion table before updating as free block information is now stored after the first 512 bytes are empty and after the 513 bytes. The flash memory unit 10 is controlled so that the data including the information of the existing block is recorded in the currently specified page (step S612).

이에 따라 오래된 어드레스변환블록이 현재 격납되어 있는 블록은 빈블록연쇄의 말미에 편입된다.Accordingly, the block in which the old address translation block is currently stored is incorporated at the end of the free block chain.

다음에 이 기억장치는 상술한 스텝 S221∼S227과 똑같은 처리에 따라 갱신 전의 어드레스변환테이블이 있는 블록의 기억내용을 소거한다(스텝 S613). 이에 따라 오래된 어드레스변환블록이 격납되어 있던 블록은 빈블록으로 된다.Next, the memory device deletes the contents of the block in which the address conversion table before updating is performed in the same processing as in steps S221 to S227 described above (step S613). As a result, the block in which the old address translation block is stored becomes an empty block.

이상 설명한 스텝 S601∼S613의 처리에 의해 빈블록정보 및 어드레스변환테이블은 갱신된다.The free block information and the address conversion table are updated by the processing of steps S601 to S613 described above.

또한 메모리셀어레이(1)를 초기화하는 경우 컨트롤러(20)는 일단 메모리셀어레이(1)의 전체 블록의 내용을 소거한 후 각 블록의 리던던트부에 빈블록연쇄정보를 기록하도록 플래시메모리유닛(10)을 제어한다.When the memory cell array 1 is initialized, the controller 20 erases the contents of all the blocks of the memory cell array 1 and writes the blank block chain information to the redundant portion of each block. ).

이 때 컨트롤러(20)는 도 11에 나타내는 바와 같이 빈블록이 띄엄띄엄 연쇄되도록 연쇄정보를 기록한다. 연쇄정보를 이와 같은 구성으로 하여 데이터의 기록위치를 분산시키면 일부의 영역에만 반복하여 데이터가 기록되는 사태를 방지할 수 있다.At this time, the controller 20 records the chain information so that the empty blocks are sparsely concatenated as shown in FIG. By dispersing the recording positions of the data in such a manner that the chain information is configured as such, it is possible to prevent the situation in which data is repeatedly recorded in only a part of the area.

또한 본 발명은 상기 실시형태에 한정되지 않고 여러 종류의 변형 및 응용이 가능하다.In addition, this invention is not limited to the said embodiment, A various kind of deformation | transformation and application are possible.

예를 들면 상기 실시형태에서는 이해를 용이하게 하기 위해 CPU(12)와 기억장치 사이의 데이터의 수수를 1바이트 단위로 실시했는데, 2바이트, 4바이트 단위로 실시하는 등 데이터의 전송단위는 임의이다. 똑같이 메모리셀의 용량도 1바이트에 한정되지 않고 2바이트 등이어도 좋다.For example, in the above embodiment, in order to facilitate understanding, the data transfer unit between the CPU 12 and the storage device is carried out in units of 1 byte, but the unit of transfer of data is performed in units of 2 bytes and 4 bytes. . Similarly, the capacity of the memory cell is not limited to 1 byte but may be 2 bytes or the like.

또 상기 실시형태의 기억장치에 사용되고 있는 메모리셀어레이(1)는 1개 칩뿐이었다. 그러나 복수 칩의 플래시메모리를 갖는 기억장치에 본 발명을 적용하는 것도 가능하다. 이 경우 어드레스변환테이블(및 빈블록테이블)을 어느 것인가 1개 칩의 플래시메모리의 어느 것인가 1개의 블록 내에 기억하고, 또한 컨트롤러(20)가 어드레스변환테이블(및 빈블록테이블)을 기억하는 칩의 정보를 기억하면 좋다. 또 상기의 제 2 실시형태와 같이 빈블록정보를 연쇄정보에 의해 구성하는 경우에는 다음의 빈블록이 있는 칩과 블록번호를 나타내는 연쇄정보를 리던던트영역에 기록하면 좋다.The memory cell array 1 used in the storage device of the above embodiment had only one chip. However, it is also possible to apply the present invention to a memory device having a flash memory of multiple chips. In this case, the address conversion table (and the empty block table) is stored in one block of any of the flash memories of one chip, and the controller 20 stores the address conversion table (and the empty block table). Remember the information. When the free block information is constituted by the chain information as in the second embodiment, the chain information indicating the chip having the next free block and the block number may be recorded in the redundant area.

또한 상기 실시형태에서는 메모리셀어레이(1)는 NAND형의 것에 의해 구성되어 있었는데, NOR형의 것에 의해 구성할 수도 있다.In the above embodiment, the memory cell array 1 is constituted by the NAND type, but can also be configured by the NOR type.

또 상기 실시형태에서는 기억장치 내에 제어회로(5)를 배치했는데, 제어회로(5)가 실행하는 동작을 컨트롤러(20)나 CPU(12)에 실시시킴으로써 제어회로(5)를 사용하지 않고 메모리셀어레이(1)로의 액세스를 제어하는 것도 가능하다. 또 컨트롤러(20)가 실행하는 동작을 CPU(12)에 실시시킴으로써 컨트롤러(20)를 사용하지 않고 메모리셀어레이(1)로의 액세스를 제어하는 것도 가능하다.In the above embodiment, the control circuit 5 is arranged in the storage device, but the controller 20 or the CPU 12 performs an operation performed by the control circuit 5 without using the control circuit 5. It is also possible to control access to the array 1. In addition, by performing the operation performed by the controller 20 to the CPU 12, it is also possible to control access to the memory cell array 1 without using the controller 20.

제어회로(5)나 컨트롤러(20)의 동작을 CPU(12)가 실행하는 경우 상술의 제어 동작을 실행하기 위한 프로그램을 격납한 매체(플로피디스크, CD-ROM 등)로부터 해당 프로그램을 컴퓨터(11)에 인스톨하고, OS(오퍼레이팅 시스템) 상에서 동작시킴으로써 상술의 처리를 실행시킨다.When the CPU 12 executes the operation of the control circuit 5 or the controller 20, the computer 11 is stored from a medium (floppy disk, CD-ROM, etc.) containing a program for executing the above-described control operation. ), And the above-mentioned processing is executed by operating on an OS (operating system).

이상 설명한 바와 같이 본 발명에 따르면 빈블록의 위치를 나타내는 정보나 논리어드레스와 물리어드레스의 대응관계를 나타내는 정보 등이 블록소거형 기억매체에 기억된다. 이로 인해 빈블록의 위치를 나타내는 정보나 논리어드레스나 물리어드레스의 대응관계를 나타내는 정보 등을 기억하는 기억매체를 별도로 준비할 필 요가 없다.As described above, according to the present invention, information indicating the position of the empty block, information indicating the correspondence relationship between the logical address and the physical address, and the like are stored in the block erasing storage medium. Therefore, it is not necessary to separately prepare a storage medium for storing information indicating the position of the empty block or information indicating the correspondence relationship between logical addresses and physical addresses.

Claims (24)

물리 어드레스가 할당된 복수의 메모리 블록을 포함하는 기억수단(1);Storage means (1) including a plurality of memory blocks to which physical addresses are assigned; 컨트롤러(20); 및Controller 20; And 엑세스수단(4X, 4B, 5)을 포함하며;Access means 4X, 4B, 5; 상기 기억수단에 저장된 데이터는 메모리 블록 단위로만 소거될 수 있으며;Data stored in the storage means can be erased only in units of memory blocks; 상기 엑세스수단은 상기 기억수단으로부터 기억 데이터를 메모리 블록 단위로 일괄하여 소거하는 소거수단(1e)을 포함하며;The access means includes erasing means (1e) for collectively erasing stored data from the storage means in units of memory blocks; 데이터와 논리 어드레스가 입력되는 상기 컨트롤러는, 상기 기억수단에 상기 데이터가 기억되는 위치를 임의적으로 결정하고, 상기 엑세스수단으로 하여금 상기 위치에 상기 데이터를 기록하도록 제어하며;The controller into which data and a logical address are input, arbitrarily determines a position at which the data is stored in the storage means, and controls the access means to write the data at the position; 상기 기억수단은 상기 논리 어드레스와 물리 어드레스의 대응관계를 나타내는 정보를 격납하는 어드레스 변환 테이블을 기억하며;The storage means stores an address conversion table that stores information indicating a correspondence relationship between the logical address and the physical address; 상기 컨트롤러는, 상기 엑세스수단으로 하여금, 상기 데이터가 기록된 위치의 물리 어드레스와 입력된 논리 어드레스의 대응관계를 나타내는 정보를 상기 어드레스 변환 테이블에 추가하거나, 상기 어드레스 변환 테이블을 갱신하도록 제어하며;The controller controls the access means to add information indicating a correspondence relation between the physical address of the position at which the data is recorded and the input logical address to the address translation table or to update the address translation table; 상기 컨트롤러는 상기 어드레스 변환 테이블이 기록된 블록의 물리 어드레스를 격납하며;The controller stores the physical address of the block in which the address translation table is written; 상기 컨트롤러는, 상기 엑세스수단으로 하여금, 상기 어드레스 변환 테이블이 격납되어 있는 블록에 액세스하고, 판독대상 데이터의 논리 어드레스에 대응하는 물리 어드레스를 판독하도록 제어하며; The controller controls the access means to access a block in which the address conversion table is stored and to read a physical address corresponding to a logical address of the data to be read; 상기 컨트롤러는, 상기 엑세스수단으로 하여금, 상기 엑세스수단에 의해 판독된 물리 어드레스에 격납되어 있는 데이터를 판독하여 출력하도록 제어하며;The controller controls the access means to read and output data stored in the physical address read by the access means; 상기 기억수단은 데이터를 기억하고 있지 않은 빈 블록을 나타내는 정보를 격납하는 빈 블록 테이블을 기억하고;The storage means stores an empty block table for storing information indicating an empty block not storing data; 상기 어드레스 변환 테이블 및/또는 상기 빈 블록 테이블은 상기 기억수단에만 저장이 되며;The address translation table and / or the empty block table are stored only in the storage means; 상기 컨트롤러는, 상기 빈 블록 테이블이 기억되어 있는 블록을 엑세스하고, 상기 빈 블록 테이블에 등록되어 있는 빈 블록 중에서 기록 대상 블록을 선택하며, 상기 엑세스수단으로 하여금 기록 대상의 데이터를 상기 선택된 빈 블록에 기록하도록 제어하며;The controller accesses a block in which the empty block table is stored, selects a block to be recorded from among free blocks registered in the empty block table, and causes the access means to transfer data to be recorded to the selected empty block. Control to record; 상기 컨트롤러는, 상기 엑세스 수단으로 하여금, 상기 엑세스 수단이 상기 빈 블록에 상기 데이터를 기록하기 전까지 존재한 상기 빈 블록을 나타내는 정보를 격납하는 상기 빈 블록 테이블을 제거하도록 제어하며; 그리고,The controller controls the access means to remove the empty block table containing information indicative of the empty block that existed before the access means recorded the data in the empty block; And, 상기 컨트롤러는, 상기 엑세스수단으로 하여금, 상기 엑세스 수단이 상기 빈 블록에 상기 데이터를 기록한 후에 잔존하는 빈 블록을 나타내는 정보를 격납하는 상기 빈 블록 테이블을 상기 기억수단에 기억시키도록 제어하는 것을 특징으로 하는 기억장치.And the controller controls the access means to store the empty block table in the storage means, which stores information indicating empty blocks remaining after the access means writes the data in the empty block. Memory to play. 제 1 항에 있어서, The method of claim 1, 상기 기억수단은 상기 어드레스 변환 테이블과 상기 빈 블록 테이블을 하나의 블록 내에 기억하는 것을 특징으로 하는 기억장치.And the storage means stores the address translation table and the empty block table in one block. 삭제delete 삭제delete 삭제delete 삭제delete 물리 어드레스가 할당된 복수의 메모리 블록을 포함하는 기억수단(1);Storage means (1) including a plurality of memory blocks to which physical addresses are assigned; 컨트롤러(20); 및Controller 20; And 엑세스수단(4X, 4B, 5)을 포함하며;Access means 4X, 4B, 5; 상기 기억수단에 저장된 데이터는 메모리 블록 단위로만 소거될 수 있으며;Data stored in the storage means can be erased only in units of memory blocks; 상기 엑세스수단은 상기 기억수단으로부터 기억 데이터를 메모리 블록 단위로 일괄하여 소거하는 소거수단(1e)을 포함하며;The access means includes erasing means (1e) for collectively erasing stored data from the storage means in units of memory blocks; 데이터와 논리 어드레스가 입력되는 상기 컨트롤러는, 상기 기억수단에 상기 데이터가 기억되는 위치를 임의적으로 결정하고, 상기 엑세스수단으로 하여금 상기 위치에 상기 데이터를 기록하도록 제어하며;The controller into which data and a logical address are input, arbitrarily determines a position at which the data is stored in the storage means, and controls the access means to write the data at the position; 상기 기억수단은 상기 논리 어드레스와 물리 어드레스의 대응관계를 나타내는 정보를 격납하는 어드레스 변환 테이블을 기억하며;The storage means stores an address conversion table that stores information indicating a correspondence relationship between the logical address and the physical address; 상기 컨트롤러는, 상기 엑세스수단으로 하여금, 상기 데이터가 기록된 위치의 물리 어드레스와 입력된 논리 어드레스의 대응관계를 나타내는 정보를 상기 어드레스 변환 테이블에 추가하거나, 상기 어드레스 변환 테이블을 갱신하도록 제어하며;The controller controls the access means to add information indicating a correspondence relation between the physical address of the position at which the data is recorded and the input logical address to the address translation table or to update the address translation table; 상기 컨트롤러는 상기 어드레스 변환 테이블이 기록된 블록의 물리 어드레스를 격납하며;The controller stores the physical address of the block in which the address translation table is written; 상기 컨트롤러는, 상기 엑세스수단으로 하여금, 상기 어드레스 변환 테이블이 격납되어 있는 블록에 액세스하고, 판독대상 데이터의 논리 어드레스에 대응하는 물리 어드레스를 판독하도록 제어하며; The controller controls the access means to access a block in which the address conversion table is stored and to read a physical address corresponding to a logical address of the data to be read; 상기 컨트롤러는, 상기 엑세스수단으로 하여금, 상기 엑세스수단에 의해 판독된 물리 어드레스에 격납되어 있는 데이터를 판독하여 출력하도록 제어하며;The controller controls the access means to read and output data stored in the physical address read by the access means; 상기 기억수단은 상기 데이터가 기억되지 않은 빈 블록을 나타내는 빈 블록 정보를 기억하고;The storage means stores empty block information indicating an empty block in which the data is not stored; 상기 어드레스 변환 테이블 및/또는 상기 빈 블록 테이블은 상기 기억수단에만 저장이 되며;The address translation table and / or the empty block table are stored only in the storage means; 상기 컨트롤러는, 상기 엑세스 수단으로 하여금, 상기 빈 블록 정보에 의해 나타내어지는 빈 블록에 상기 데이터를 기록하도록 제어하고;The controller controls the access means to write the data to an empty block represented by the empty block information; 상기 컨트롤러는, 상기 엑세스 수단으로 하여금, 상기 기억수단에 기억된 상기 빈 블록 정보를, 상기 엑세스 수단에 의해 상기 빈 블록에 상기 데이터가 기록된 후에 잔존하는 상기 빈블록의 정보를 나타내는 상기 빈 블록 정보로 변경시키도록 제어하며;The controller causes the access means to display the empty block information stored in the storage means and indicates the empty block information remaining after the data is recorded in the empty block by the access means. Control to change to; 상기 빈 블록 정보는 각 빈 블록의 일부에 기억되고, 다른 빈 블록을 나타내도록 연쇄적으로 등록된 연쇄정보를 포함하며,The empty block information is stored in a part of each empty block and includes chain information registered in series to represent another empty block, 상기 컨트롤러는, 상기 엑세스 수단으로 하여금, 상기 연쇄정보에 따라 선두 빈 블록을 판별하고, 상기 빈 블록에 상기 데이터를 기록하도록 제어하며; 그리고,The controller controls the access means to determine a leading empty block according to the chain information and to write the data in the empty block; And, 상기 컨트롤러는, 상기 엑세스 수단으로 하여금, 가장 최근의 소거처리가 행해진 빈 블록을 나타내는 연쇄정보가 상기 빈 블록 정보의 연쇄말단에 편입되는 식으로 상기 빈 블록 정보를 갱신하도록 제어하는 것을 특징으로 하는 기억장치.And the controller controls the access means to update the empty block information in such a manner that chain information indicating the empty block on which the most recent erase processing has been performed is incorporated at the chain end of the empty block information. Device. 제 7 항에 있어서, The method of claim 7, wherein 상기 기억수단은 데이터 영역과 리던던트 영역을 갖고, 상기 연쇄정보는 상기 리던던트 영역에 기억되는 것을 특징으로 하는 기억장치.And the storage means has a data area and a redundant area, and the chain information is stored in the redundant area. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1019997006688A 1997-12-05 1998-12-02 Storage device KR100614469B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP97-335596 1997-12-05
JP33559697 1997-12-05
PCT/JP1998/005441 WO1999030239A1 (en) 1997-12-05 1998-12-02 Memory and access method

Publications (2)

Publication Number Publication Date
KR20000070451A KR20000070451A (en) 2000-11-25
KR100614469B1 true KR100614469B1 (en) 2006-08-25

Family

ID=18290361

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997006688A KR100614469B1 (en) 1997-12-05 1998-12-02 Storage device

Country Status (6)

Country Link
US (1) US6477632B1 (en)
EP (1) EP0973097A4 (en)
JP (1) JP3680142B2 (en)
KR (1) KR100614469B1 (en)
TW (1) TW400476B (en)
WO (1) WO1999030239A1 (en)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000311469A (en) * 1999-02-26 2000-11-07 Matsushita Electric Ind Co Ltd Disk controller and disk device using the same
JP3443093B2 (en) * 2000-12-27 2003-09-02 株式会社東芝 Digital recording and playback device
JP4772214B2 (en) * 2001-06-08 2011-09-14 ルネサスエレクトロニクス株式会社 Nonvolatile memory device and rewrite control method thereof
KR100437609B1 (en) * 2001-09-20 2004-06-30 주식회사 하이닉스반도체 Method for address translation of semiconductor memory device and apparatus the same
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
EP1523711A1 (en) * 2002-06-19 2005-04-20 Tokyo Electron Device Limited Memory device, memory managing method and program
US7120068B2 (en) * 2002-07-29 2006-10-10 Micron Technology, Inc. Column/row redundancy architecture using latches programmed from a look up table
JP3694501B2 (en) * 2002-10-30 2005-09-14 松下電器産業株式会社 Storage device
US20050050285A1 (en) * 2003-08-26 2005-03-03 Haas William Robert Memory control system and method for installing new memory
JP2005092678A (en) * 2003-09-19 2005-04-07 Matsushita Electric Ind Co Ltd Semiconductor memory card and method for deleting data in nonvolatile memory
JP2005285191A (en) * 2004-03-29 2005-10-13 Nec Electronics Corp Nonvolatile semiconductor memory device and its driving method
US7237062B2 (en) * 2004-04-02 2007-06-26 Seagate Technology Llc Storage media data structure system and method
JP4157501B2 (en) * 2004-06-30 2008-10-01 株式会社東芝 Storage device
JP4637524B2 (en) * 2004-07-27 2011-02-23 ルネサスエレクトロニクス株式会社 Memory card
KR100622349B1 (en) * 2004-08-04 2006-09-14 삼성전자주식회사 Flash Memory for performing Bad Block Management and Method for performing Bad Block Management of Flash Memory
EP1630657A1 (en) * 2004-08-30 2006-03-01 STMicroelectronics S.r.l. Embedded storage device with integrated data-management functions and storage system incorporating it
JP4806183B2 (en) * 2004-12-24 2011-11-02 富士通セミコンダクター株式会社 File information writing processing method and program
KR100630735B1 (en) 2005-01-14 2006-10-02 삼성전자주식회사 Method for providing selective access to plural devices and apparatus thereof
US8072987B1 (en) * 2005-09-30 2011-12-06 Emc Corporation Full array non-disruptive data migration
US8107467B1 (en) 2005-09-30 2012-01-31 Emc Corporation Full array non-disruptive failover
US8589504B1 (en) 2006-06-29 2013-11-19 Emc Corporation Full array non-disruptive management data migration
US7769945B2 (en) * 2007-01-18 2010-08-03 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
WO2008087634A1 (en) * 2007-01-18 2008-07-24 Sandisk Il Ltd. A method and system for facilitating fast wake-up of a flash memory system
US9098211B1 (en) 2007-06-29 2015-08-04 Emc Corporation System and method of non-disruptive data migration between a full storage array and one or more virtual arrays
US9063895B1 (en) 2007-06-29 2015-06-23 Emc Corporation System and method of non-disruptive data migration between heterogeneous storage arrays
WO2009090692A1 (en) * 2008-01-16 2009-07-23 Panasonic Corporation Semiconductor memory device and semiconductor memory system
TWI415134B (en) * 2008-04-10 2013-11-11 Phison Electronics Corp Data accessing method, controller and system using the same
TWI381393B (en) * 2008-10-06 2013-01-01 Phison Electronics Corp Block management and replacement method, flash memory storage system and controller using the same
TWI427476B (en) * 2009-02-24 2014-02-21 Silicon Motion Inc Flash memory device and method for accessing a flash memory
CN101556556B (en) * 2009-05-22 2012-02-22 炬力集成电路设计有限公司 Data storage method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930020469A (en) * 1992-03-31 1993-10-19 사또 후미오 Nonvolatile Semiconductor Memory Device
JPH06187205A (en) * 1992-12-18 1994-07-08 Nikon Corp Method for accessing eeprom and surveying equipment
WO1994020906A1 (en) * 1993-03-08 1994-09-15 M-Systems Ltd. Flash file system
JPH07134674A (en) * 1993-11-10 1995-05-23 Matsushita Graphic Commun Syst Inc Memory managing device and facsimile equipment using the same
JPH08249225A (en) * 1995-03-10 1996-09-27 Nec Corp Memory management device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61245253A (en) * 1985-04-24 1986-10-31 Hitachi Ltd Input and output control system for virtual computer
JPS6319051A (en) * 1986-07-11 1988-01-26 Fujitsu Ltd Memory acquiring system
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JP2582487B2 (en) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション External storage system using semiconductor memory and control method thereof
JP3178909B2 (en) * 1992-01-10 2001-06-25 株式会社東芝 Semiconductor memory device
US5375222A (en) * 1992-03-31 1994-12-20 Intel Corporation Flash memory card with a ready/busy mask register
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
DE4410060B4 (en) * 1993-04-08 2006-02-09 Hewlett-Packard Development Co., L.P., Houston Translating device for converting a virtual memory address into a physical memory address
JP2971302B2 (en) * 1993-06-30 1999-11-02 シャープ株式会社 Recording device using EEPROM
JPH08137634A (en) * 1994-11-09 1996-05-31 Mitsubishi Electric Corp Flash disk card
JP3464836B2 (en) * 1995-01-19 2003-11-10 富士通株式会社 Memory management device for storage device
US5978808A (en) * 1995-12-27 1999-11-02 Intel Corporation Virtual small block file manager for flash memory array
JPH09198195A (en) * 1996-01-19 1997-07-31 Nec Corp Disk device capable of rearranging data
JP3321587B2 (en) * 1996-02-01 2002-09-03 東京エレクトロンデバイス株式会社 Data rewriting method and memory control device in flash memory system
JPH09212411A (en) * 1996-02-06 1997-08-15 Tokyo Electron Ltd Memory system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930020469A (en) * 1992-03-31 1993-10-19 사또 후미오 Nonvolatile Semiconductor Memory Device
JPH06187205A (en) * 1992-12-18 1994-07-08 Nikon Corp Method for accessing eeprom and surveying equipment
WO1994020906A1 (en) * 1993-03-08 1994-09-15 M-Systems Ltd. Flash file system
JPH07134674A (en) * 1993-11-10 1995-05-23 Matsushita Graphic Commun Syst Inc Memory managing device and facsimile equipment using the same
JPH08249225A (en) * 1995-03-10 1996-09-27 Nec Corp Memory management device

Also Published As

Publication number Publication date
EP0973097A1 (en) 2000-01-19
JP3680142B2 (en) 2005-08-10
EP0973097A4 (en) 2000-04-12
KR20000070451A (en) 2000-11-25
TW400476B (en) 2000-08-01
WO1999030239A1 (en) 1999-06-17
US6477632B1 (en) 2002-11-05

Similar Documents

Publication Publication Date Title
KR100614469B1 (en) Storage device
KR100375533B1 (en) Data processing system, block erasing type memory device and memory medium storing program for controlling memory device
EP0712067B1 (en) Flash disk card
EP1729304B1 (en) Space management for managing high capacity nonvolatile memory
EP1739683B1 (en) Space management for managing high capacity nonvolatile memory
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US6202138B1 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6757800B1 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US7424593B2 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
EP1242868B1 (en) Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
US5946714A (en) Semiconductor storage device utilizing address management tables and table state maps for managing data storage and retrieval
EP1323165B1 (en) Flash memory architecture with separate storage of overhead and user data
US6459644B2 (en) Semiconductor memory device with block alignment function
US20050055493A1 (en) [method for accessing large block flash memory]
KR20040023643A (en) Flash memory apparatus and method for merging data stored in the same
JP3421581B2 (en) Storage device using nonvolatile semiconductor memory
US20080209161A1 (en) Storage device and method of mapping a nonvolatile memory based on a map history
US20090125668A1 (en) Management of erased blocks in flash memories
US20040255076A1 (en) Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory
JPH05150913A (en) Silicon disk with flash memory as storage medium
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
KR100490603B1 (en) Control method and apparatus for operations of flash memory system
KR20210149444A (en) Memory and operation method of memory

Legal Events

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