KR20030009250A - Control method and apparatus for operations of flash memory system - Google Patents

Control method and apparatus for operations of flash memory system Download PDF

Info

Publication number
KR20030009250A
KR20030009250A KR1020020077392A KR20020077392A KR20030009250A KR 20030009250 A KR20030009250 A KR 20030009250A KR 1020020077392 A KR1020020077392 A KR 1020020077392A KR 20020077392 A KR20020077392 A KR 20020077392A KR 20030009250 A KR20030009250 A KR 20030009250A
Authority
KR
South Korea
Prior art keywords
block
data
storage location
flash memory
linked
Prior art date
Application number
KR1020020077392A
Other languages
Korean (ko)
Other versions
KR100490603B1 (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 김희성
Priority to KR10-2002-0077392A priority Critical patent/KR100490603B1/en
Publication of KR20030009250A publication Critical patent/KR20030009250A/en
Priority to US10/727,311 priority patent/US7136986B2/en
Application granted granted Critical
Publication of KR100490603B1 publication Critical patent/KR100490603B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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

Abstract

PURPOSE: A method and device for controlling operation of flash memory are provided to be capable of improving an operating speed of a flash memory device and elongating the life of the flash memory device. CONSTITUTION: A logic address is received from a host computer, and the received logic address is converted into a physical address. Data from the host computer is written at a location of a flash memory device appointed by the physical address. When the appointed location is linked, a linked location is previously written by valid data, and a frequency of use of the linked location is higher than a reference voltage, the valid data of the appointed location is shifted into the linked location(134,150,152,154). When a frequency of use of the linked location is lower than a reference voltage, the valid data of the linked location is shifted into another linked location(134,136,142,148).

Description

플래시 메모리 동작 제어 방법 및 장치 {Control method and apparatus for operations of flash memory system}Method and apparatus for controlling flash memory operation {Control method and apparatus for operations of flash memory system}

본 발명은 메모리 반도체 기술에 관한 것이며, 좀 더 구체적으로는 플래시 메모리의 동작 속도를 개선할 수 있는 플래시 메모리 동작 제어 방법과 제어 장치에 관한 것이다.The present invention relates to a memory semiconductor technology, and more particularly to a flash memory operation control method and a control device that can improve the operation speed of the flash memory.

플래시 메모리(Flash memory)의 장점으로는 전원이 나간 후에도 데이터가 유지되고, 하드 디스크에 비해 데이터를 읽는 속도가 빠르며 진동에 강하고, SRAM에 비해 가격이 싸다는 것 등이 있다. 한편, 플래시 메모리의 특징은 메모리 셀 블록에 데이터를 기록(write 또는 program)하는 경우 그것이 블록의 일부 페이지 또는 섹터인 경우에도, 해당 블록을 모두 소거(erase)한 다음 기록을 해야 한다는 것과, 소거하는 단위의 크기와 프로그램(또는 기록)하는 단위의 크기가 서로 다르다는 점이다. 따라서 플래시 메모리에 데이터를 기록하는 데에는 많은 시간이 걸리고, 기록을 하기 전에 소거 동작이 선행되어야 하기 때문에 기록 동작의 횟수가 많아질수록 플래시 메모리의 수명이 짧아진다는 문제가 있다. 플래시 메모리의 종래 소거 동작은 여러 가지 방법으로 이루어져 왔는데, 플래시 메모리를 블록이나 섹터(이것들은 개별적으로 소거가 가능하지만 한번에 하나만 소거가 가능함)로 구분한 다음, 원하는 블록을 선정하고 이 블록의 데이터를 RAM과 같은 임시 저장 장치에 옮긴 후, 상기 선정된 블록에서 일정 부분의 블록에 데이터를 기록하고 나머지 블록에 대해서는 임시 저장 장치에 보관했던 데이터를 원래 블록으로 복원하는 것이 일반적이다. 이 보다 조금 더 개량된 종래 기술에서는, 플래시 메모리를 섹터로 구분하고 각각의 섹터에 있는 모든 셀들이 한꺼번에 소거되도록 하면서도 소거 동작을 위한 각각의 섹터 선택과 번지지정(addressing)이 별도로 이루어지도록 하는 것이다. 이렇게 하면, 소거를 동시에 할 섹터들의 조합을 임의로 선정할 수 있으므로 소거 동작에 필요한 시간을 줄일 수 있다.Advantages of flash memory include data retention even after a power outage, faster data reads and vibrations than hard disks, and lower cost than SRAM. On the other hand, a feature of flash memory is that when data is written (written or programmed) to a memory cell block, even if it is some pages or sectors of the block, all the blocks must be erased and then written. The size of the unit is different from that of the program (or recording). Therefore, it takes a long time to write data to the flash memory, and there is a problem that the life of the flash memory becomes shorter as the number of write operations increases as the erase operation must be preceded before writing. The conventional erasing operation of flash memory has been performed in various ways. The flash memory is divided into blocks or sectors (they can be erased individually but only one at a time), and then the desired block is selected and the data of the block is selected. After moving to a temporary storage device such as RAM, it is common to write data in a predetermined portion of the block in the selected block and restore the data stored in the temporary storage device to the original block for the remaining blocks. In the more advanced prior art, the flash memory is divided into sectors and all the cells in each sector are erased at once, while each sector selection and addressing are separately performed for the erase operation. In this way, a combination of sectors to be erased simultaneously can be arbitrarily selected, thereby reducing the time required for the erase operation.

그러나 이러한 종래 소거 방법에 따르면, 불필요한 부가 동작이 여전히 존재하기 때문에 메모리 시스템의 전체 성능 저하와 동작 시간 지연의 문제가 남아 있다. 예컨대, 도 1과 같은 종래 플래시 메모리 시스템에서 기록 동작은 다음과 같이 이루어진다.However, according to this conventional erasing method, since unnecessary additional operations still exist, problems of overall performance degradation and operation time delay of the memory system remain. For example, in the conventional flash memory system as shown in FIG. 1, the write operation is performed as follows.

(1) 호스트(10)로부터 데이터를 기록할 장소를 지정하는 논리 어드레스(LA; Logical Address)를 플래시 메모리 제어기(20)가 전달받는다.(1) The flash memory controller 20 receives a logical address (LA) designating a place to write data from the host 10.

(2) 메모리 제어기(20)는 논리 어드레스를 물리 어드레스(PA; Physical Address)로 변환한다.(2) The memory controller 20 converts a logical address into a physical address (PA).

(3) 변환된 물리 어드레스가 포함되는 메모리 블록에서 기록을 할 부분의 데이터를 제외한 나머지 부분을 버퍼로 백업한다. 예컨대, 도 1의 메모리 어레이(30)에서 복수의 메모리 유닛 또는 뱅크(30A, 30B, …, 30N) 각각은 복수의 메모리 블록(30A1, 30A2, …, 30AM; 301B, 30B2, …, 30BM; …; 30N1, 30N2, 30NM)으로 각각 구성되어 있고, 각각의 메모리 블록은 복수의 페이지 또는 섹터(32)로 구성된다. 만약, 데이터를 기록할 물리 어드레스가 제1 메모리(30A)의 제1 메모리 블록(30A1)에 포함된 페이지(36A)를 포함함과 동시에, 제2 메모리(30B)의 제2 메모리 블록(30B2)에 포함된 페이지(36B)를 포함한다고 가정하면, 이 페이지(36A, 36B)에 데이터를 기록하기 전에 데이터가 기록되지 않을 페이지 즉, 34A, 34B에 있는 데이터를 메모리 제어기(20) 내에 있는 데이터 버퍼로 옮겨서 데이터를 백업한다.(3) In the memory block including the converted physical address, the rest of the data except for the portion to be written is backed up to the buffer. For example, in the memory array 30 of FIG. 1, each of the plurality of memory units or banks 30A, 30B,..., 30N is a plurality of memory blocks 30A1, 30A2..., 30AM; 301B, 30B2,..., 30BM; 30N1, 30N2, 30NM, and each memory block is composed of a plurality of pages or sectors 32; If the physical address to which data is to be written includes the page 36A included in the first memory block 30A1 of the first memory 30A, the second memory block 30B2 of the second memory 30B may be used. Suppose you include the page 36B contained in the data buffer in the memory controller 20. The data in the memory controller 20 is stored in pages 34A and 34B where data is not written before writing data to the pages 36A and 36B. Back up your data by moving to.

(4) 논리 어드레스에 의해 지정된 페이지가 포함된 블록(위 예에서는 블록 30A1와 30B2)을 소거한다.(4) The block containing the page designated by the logical address (blocks 30A1 and 30B2 in the above example) is erased.

(5) 메모리 제어기(20)는 호스트(10)로부터 기록할 데이터를 전달받는다.(5) The memory controller 20 receives data to be written from the host 10.

(6) 메모리 제어기(20)는 호스트(10)로부터 전달받은 데이터를 논리 어드레스로 지정된 위치(위 예에서는 페이지 36A, 36B)에 프로그램한다.(6) The memory controller 20 programs the data received from the host 10 to a location designated as a logical address (pages 36A and 36B in the above example).

(7) 앞의 단계 (3)에서 백업한 데이터를 메모리 제어기(20)의 데이터 버퍼에서 가져와서 원래의 위치(예컨대, 페이지 34A, 34B)로 복원한다.(7) The data backed up in the previous step (3) is taken from the data buffer of the memory controller 20 and restored to its original position (e.g., pages 34A and 34B).

이러한 종래 시스템에서는 해당 블록 전체를 소거하고, 지정된 위치에 데이터를 프로그램하는 동작은 필수적인 것이지만, 데이터를 백업하고 이를 복원하는 동작은 플래시 메모리의 특성에 따른 일종의 불필요한 부가 동작이다. 따라서, 예컨대 프로그램을 위한 단위의 크기와 소거를 위한 단위(즉, 메모리 블록)의 크기가 서로 다른 경우에는 이러한 부가 동작을 위해 필요한 백업이나 기록 동작에 많은 시간이 필요하다. 또한, 데이터를 백업하기 위해서는 데이터 판독(또는 읽기) 동작이 수반되기 때문에, 부가 동작을 위한 시간은 더 늘어나게 된다.In such a conventional system, an operation of erasing the entire block and programming data at a designated location is essential, but an operation of backing up and restoring data is a kind of unnecessary additional operation according to the characteristics of the flash memory. Thus, for example, when the size of a unit for a program and a size of a unit (ie, a memory block) for erasing are different from each other, a lot of time is required for a backup or write operation required for such an additional operation. In addition, since a data read (or read) operation is involved in backing up the data, the time for the additional operation is further increased.

본 발명은 이러한 종래 플래시 메모리 시스템의 단점을 극복하기 위한 것으로서, 플래시 메모리의 동작 속도를 개선하고 플래시 메모리의 수명을 연장하는 것이다.The present invention is to overcome the disadvantages of such a conventional flash memory system, to improve the operating speed of the flash memory and to extend the life of the flash memory.

도 1은 종래 기술에 따른 플래시 메모리 시스템의 기록 동작을 나타내는 블록 회로도.1 is a block circuit diagram showing a write operation of a flash memory system according to the prior art.

도 2는 본 발명에 따른 데이터 기록 동작을 나타내는 흐름도.2 is a flowchart showing a data recording operation according to the present invention;

도 3은 본 발명에 따른 데이터 기록 동작에서 링크된 블록이 프리 블록이 아닌 경우의 동작을 나타내는 상세 흐름도.Fig. 3 is a detailed flowchart showing the operation when the linked block is not a free block in the data write operation according to the present invention.

도 4는 본 발명에 따른 BiT/링크 테이블 갱신 동작을 나타내는 흐름도.4 is a flow chart illustrating a BiT / link table update operation in accordance with the present invention.

도 5는 BiT 정보와 링크 정보의 구조를 나타내는 데이터 구조도.5 is a data structure diagram showing a structure of BiT information and link information.

도 6은 ST 테이블의 구조를 나타내는 데이터 구조도.6 is a data structure diagram showing a structure of an ST table.

도 7은 본 발명이 적용될 수 있는 플래시 메모리 제어 시스템의 전체 구조를 나타내는 블록 회로도.7 is a block circuit diagram showing the overall structure of a flash memory control system to which the present invention can be applied.

도 8은 플래시 메모리의 저장 구조와 플래시 메모리의 동작 과정을 설명하기 위한 블록 회로도.8 is a block circuit diagram illustrating a storage structure of a flash memory and an operation process of the flash memory.

도 9는 본 발명이 적용될 수 있는 메모리 블록의 정보 구조를 나타내는 블록도.9 is a block diagram showing an information structure of a memory block to which the present invention can be applied.

도 10은 플래시 메모리의 데이터 읽기 동작을 나타내는 흐름도.10 is a flowchart showing a data read operation of a flash memory;

도 11은 본 발명에 따른 무효 데이터가 기록된 블록(Dirty Block)의 소거 동작을 나타내는 흐름도.Fig. 11 is a flowchart showing an erase operation of a block in which invalid data is recorded according to the present invention.

도 12는 본 발명에 따라 서로 다른 블록 사이에서 데이터를 이동하는 과정을 나타내는 흐름도.12 is a flowchart illustrating a process of moving data between different blocks in accordance with the present invention.

<도면의 주요 부호에 대한 설명><Description of Major Symbols in Drawing>

10, 300: 호스트 시스템20, 310: 플래시 메모리 제어기10, 300: host system 20, 310: flash memory controller

30, 320: 플래시 메모리 어레이312: 제어 칩30, 320: flash memory array 312: control chip

314: 플래시 제어 블록316: ECC314: flash control block 316: ECC

322, 324: 메모리 뱅크210: BiT 정보 구조322, 324: memory bank 210: BiT information structure

220: 링크 정보 구조230: ST 정보 구조220: link information structure 230: ST information structure

350: 블록 정보 구조350: block information structure

본 발명에 따른 플래시 메모리 제어 방법은 호스트 시스템으로부터 논리 어드레스를 수신하는 단계와, 수신한 논리 어드레스를 물리 어드레스로 변환하는 단계와, 호스트 시스템으로부터 수신한 데이터를 상기 물리 어드레스에 의해 지정된 플래시 메모리의 저장 위치(예컨대, 기본 블록)에 기록하는 단계를 포함한다. 상기 기록 단계에서, 지정된 플래시 메모리의 저장 위치(기본 블록)가 링크되어 있고, 링크된 저장 위치(1차 링크 블록)가 이미 유효 데이터로 기록되어 있으며, 상기 링크된 저장 위치의 사용도가 기준값보다 큰 경우에는, 상기 지정된 저장 위치의 유효 데이터를 상기 링크된 저장 위치로 이동하고, 상기 링크된 저장 위치의 사용도가 기준값보다 작은 경우에는, 상기 링크된 저장 위치의 유효 데이터를 또 다른 링크된 저장 위치로 이동하는 단계를 포함한다. 여기서, 기준값은 서로 다른 메모리 블록에서 데이터를 이동하는 데에 걸리는 시간이 최소로 되는 값으로 결정된다. 기본 블록에서 1차 링크 블록으로 데이터를 이동하는 동작은 플래시 메모리를 데이터 저장 장치로 사용하는 호스트 시스템이 휴지 상태일 때 이루어진다. 또한, 플래시 메모리의 저장 위치 중 무효 데이터가 기록되어 있는 메모리 블록에 대한 소거 동작도 호스트 시스템이 휴지 상태일 때 이루어지도록 할 수 있다.The flash memory control method according to the present invention comprises the steps of receiving a logical address from a host system, converting the received logical address into a physical address, and storing data received from the host system by the physical address. Writing to a location (eg, a basic block). In the recording step, the storage location (basic block) of the designated flash memory is linked, the linked storage location (primary link block) is already recorded as valid data, and the utilization of the linked storage location is higher than the reference value. If larger, the valid data of the designated storage location is moved to the linked storage location, and if the utilization of the linked storage location is less than a reference value, the valid data of the linked storage location is another linked storage. Moving to a location. Here, the reference value is determined as a value that minimizes the time taken to move data in different memory blocks. The movement of data from the basic block to the primary link block is performed when the host system using the flash memory as the data storage device is in an idle state. In addition, an erase operation may be performed on the memory block in which invalid data is recorded in the storage location of the flash memory when the host system is in the idle state.

본 발명에 따른 플래시 메모리 동작 제어 장치는 호스트 시스템과 플래시 메모리 사이에서 데이터를 전달하고 플래시 메모리의 동작을 제어한다. 여기서, 플래시 메모리는 복수의 메모리 블록으로 구성되고, 복수의 메모리 블록 각각은 복수의 페이지/섹터로 구성되며, 상기 복수의 메모리 블록은 호스트 시스템에서 전달되는 논리 어드레스에 대응되는 물리 어드레스에 의해 지정되는 기본 블록과, 이 기본 블록이 링크되는 1차 링크 블록과, 이 1차 링크 블록이 링크되는 2차 링크 블록을 포함한다. 플래시 메모리 동작 제어 장치는, 호스트 시스템으로부터 수신한 데이터를 상기 플래시 메모리에 기록하며, 상기 1차 링크 블록의 사용도가 기준값보다 큰 경우에는 상기 기본 블록의 유효 데이터를 1차 링크 블록으로 이동하고 1차 링크 블록의 사용도가 기준값보다 작은 경우에는 상기 1차 링크 블록의 유효 데이터를 2차 링크 블록으로 이동하는 수단을 포함한다. 데이터를 이동한 다음에는 해당 블록에 대한 BiT/링크 테이블과 ST 테이블을 변경하는데, BiT/링크 테이블은 기본 블록어드레스, 기본 블록에 대한 칩 어드레스, 링크 블록 어드레스, 링크 블록에 대한 칩 어드레스 및 링크 상태를 나타내는 데이터를 포함하고, ST 테이블은 유효 데이터 기록 정보와 무효 데이터 기록 정보를 나타내는 데이터를 포함한다.The flash memory operation control apparatus according to the present invention transfers data between the host system and the flash memory and controls the operation of the flash memory. Here, the flash memory is composed of a plurality of memory blocks, each of the plurality of memory blocks is composed of a plurality of pages / sectors, the plurality of memory blocks are designated by a physical address corresponding to a logical address transferred from the host system A basic block, a primary link block to which this basic block is linked, and a secondary link block to which this primary link block is linked. The flash memory operation control apparatus writes data received from a host system to the flash memory, and when validity of the primary link block is greater than a reference value, moves valid data of the basic block to the primary link block. And means for moving valid data of the primary link block to the secondary link block when the degree of use of the secondary link block is smaller than the reference value. After moving the data, we change the BiT / Link table and ST table for that block. The BiT / Link table changes the base block address, the chip address for the base block, the link block address, the chip address for the link block, and the link status. The ST table includes data representing valid data record information and invalid data record information.

본 발명의 설명 사용되는 용어는 다음과 같은 의미로 사용한다.Description of the Invention Terms used are as follows.

플래시 메모리 데이터 저장 구조: 메모리 어레이 → 메모리 뱅크 → 메모리 유닛 → 블록 → 페이지/섹터(페이지와 섹터는 메모리 용량에 따라 같을 수도 있고, 페이지가 섹터보다 더 클 수도(예컨대, 1G 이상일 때) 있음).Flash memory data storage structure: memory array → memory bank → memory unit → block → page / sector (pages and sectors may be the same depending on memory capacity, and pages may be larger than sectors (eg 1G or more)).

BiT/링크 테이블: 플래시 메모리 내의 각 블록의 위치 및 해당 블록이 링크되었는가, 현재 프로그램 동작을 수행할 수 있는가 등의 정보를 나타내는 테이블로서, 예컨대 물리 어드레스, 링크 어드레스, 링크 상태 데이터로 구성된다.BiT / Link table: A table indicating information about the position of each block in the flash memory and whether the corresponding block is linked or whether a current program operation can be performed. For example, the table includes a physical address, a link address, and link state data.

ST (Status Table) 테이블: 플래시 메모리 각 블록의 상태를 나타내는 테이블로서, 해당 블록이 사용가능한가(예컨대, 프리 블록; Free Block) 아니면 이미 사용된 것인가를 나타낸다. 이미 사용된 블록은 유효 데이터가 기록되어 있음(Used Block)과 무효 데이터가 기록되어 있음(Dirty Block) 2 가지로 나눌 수 있는데, 무효 데이터 기록 블록은 해당 블록의 데이터가 더 이상 필요 없으므로 소거 동작이 필요함을 나타낸다.ST (Status Table) table: A table indicating the status of each block of flash memory, indicating whether the corresponding block is available (eg, a free block) or already used. Blocks that have already been used can be divided into valid data (Used Block) and invalid data (Dirty Block) .The invalid data write block does not need the data in the block anymore. Indicates that it is necessary.

플래시 메모리 동작 제어 단위: 링크는 블록 단위로 이루어지며, 프로그램 또는 쓰기는 페이지 단위, 소거는 블록 단위, 호스트에서 데이터를 가져오는 단위는 섹터(또는 페이지) 단위로 이루어진다.Flash memory operation control unit: A link is a block unit, a program or a write unit is a page unit, an erase unit is a block unit, and a unit for obtaining data from a host unit is a sector (or page) unit.

구현예Embodiment

이하 도면을 참조로 본 발명의 구현예에 대해 설명한다.Embodiments of the present invention will be described below with reference to the drawings.

도 2와 도 3은 본 발명에 따른 플래시 메모리 동작 제어 방법의 전체 흐름을 나타낸다. 도 2 및 도 3의 흐름도는 플래시 메모리에 대한 쓰기 동작의 흐름도인데, 먼저 데이터를 기록하려고 하는 어드레스를 호스트 시스템으로부터 수신한다(단계 100). 여기서 호스트 시스템은 PC 및 디지털 카메라, MP3 플레이어와 같은 휴대용 전자기기를 포함하며, 데이터는 예컨대, 섹터 또는 페이지 단위로 전달된다. 호스트 시스템으로부터 수신한 어드레스는 논리 어드레스이다. BiT (Block information Table)/링크 버퍼에 있는 논리 어드레스를 조사한다(단계 101). BiT/링크 버퍼는 플래시 메모리의 동작을 제어하는 제어기 내의 메모리(예컨대, SRAM)에서 플래시 메모리 블록의 어드레스와, 소거 블록의 이동 및 링크 데이터를 유지하는 버퍼를 말한다. BiT/링크 버퍼에 해당하는 논리 어드레스에 대한 정보가 있으면 이 데이터를 기초로 곧바로 논리 어드레스 찾기 단계(105)로 진행하고, BiT/링크 버퍼에서 논리 어드레스에 대한 정보를 찾을 수 없으면, 플래시 메모리 내의 BiT/링크 데이블에서 관련 데이터를 읽어온 다음(단계 103) 이 데이터를 기초로 물리 어드레스를 찾는다(단계 105).2 and 3 show the overall flow of the flash memory operation control method according to the present invention. 2 and 3 are flowcharts of a write operation to the flash memory, first receiving an address from the host system to which data is to be written (step 100). The host system here includes a portable electronic device such as a PC and a digital camera, an MP3 player, and the data is transferred in sectors or pages, for example. The address received from the host system is a logical address. The logical address in the block information table (BiT) / link buffer is checked (step 101). The BiT / Link buffer refers to a buffer that holds the address of the flash memory block, the movement of the erase block, and the link data in the memory (eg, SRAM) in the controller that controls the operation of the flash memory. If there is information on the logical address corresponding to the BiT / link buffer, the process proceeds directly to the logical address search step 105 based on this data. If information on the logical address cannot be found in the BiT / link buffer, the BiT in the flash memory is found. The relevant data is read from the / link table (step 103) and then a physical address is found based on this data (step 105).

단계 105에서 논리 어드레스를 물리 어드레스로 변환한 다음에는 기록할 데이터를 호스트로부터 수신하고(단계 107), 물리 어드레스에 대응되는 메모리 블록의 상태를 조사한다(단계 109). 블록의 상태에 따라 3가지의 경로로 분기되는데, 해당 블록이 링크되지 않은 경우(경로 A), 해당 블록이 링크는 되어 있으나 링크된 블록이 프리 블록(free block, 즉, 해당 블록에 소거 동작을 선행하지 않고 곧바로데이터를 기록할 수 있는 영역)인 경우(경로 B), 해당 블록이 링크되어 있으며 링크된 블록에는 이미 다른 데이터가 기록되어 있어서 링크 블록에 곧바로 데이터를 쓸 수 없는 경우(경로 C)가 그것이다.After converting the logical address into a physical address in step 105, data to be written is received from the host (step 107), and the state of the memory block corresponding to the physical address is checked (step 109). If the block is not linked (path A), the block is linked but the linked block is free block (ie, erase operation is performed on the block). (Path B), if the block is linked and other data is already written in the linked block, so that data cannot be written directly to the link block (path C). Is it.

물리 어드레스에 의해 지정된 플래시 메모리 블록이 링크가 되어 있지 않은 경로 A의 경우에는, 프리 블록 어드레스를 찾고(단계 110), 이 프리 블록에 호스트 데이터를 프로그램한다(단계 112). 프리 블록에 데이터가 기록되었으므로, 해당 블록의 상태 테이블(ST; Status Table)을 '프리'에서 '유효 데이터 기록(used)'로 변경한다(단계 114). ST 테이블에서 유효 데이터 기록을 나타내는 비트와 무효 데이터 기록을 나타내는 비트가 모두 예컨대, '0'이면 해당 블록이 '프리 블록'임을 나타낸다. 따라서, ST 테이블 변경 단계(114)에서는 유효 데이터 기록 블록을 나타내는 비트를 '0'에서 '1'로 변경한다. ST 테이블을 변경한 다음에는 물리 어드레스에 대응되는 BiT/링크 테이블에서 링크 어드레스와 링크 상태를 기록함으로써 BiT/링크 테이블을 변경한다(단계 116). 즉, BiT/링크 테이블에서 링크 블록의 위치를 표시하는 링크 어드레스를 기록하고, 데이터를 기록한 페이지에 해당하는 링크 정보의 비트를 예컨대, '1'로 변경한다.In the case of the path A in which the flash memory block specified by the physical address is not linked, the free block address is found (step 110), and host data is programmed in this free block (step 112). Since data is recorded in the free block, the status table (ST) of the block is changed from 'free' to 'used data write (used)' (step 114). In the ST table, if both the bit representing the valid data record and the bit representing the invalid data record are '0', for example, the corresponding block is a 'free block'. Therefore, in the ST table change step 114, the bit representing the valid data recording block is changed from '0' to '1'. After changing the ST table, the BiT / link table is changed by recording the link address and link state in the BiT / link table corresponding to the physical address (step 116). That is, the link address indicating the position of the link block is recorded in the BiT / link table, and the bit of the link information corresponding to the page on which the data is recorded is changed to '1', for example.

한편, 링크는 되어 있으나 링크된 블록이 프리 블록인 경로 B의 경우에는, 링크 어드레스에 의해 지정된 프리 블록에 호스트 데이터를 기록하고(단계 120), 이 블록의 BiT/링크 정보를 변경한다(단계 122). 이 경우, BiT/링크 테이블에서 링크 어드레스는 변하지 않으며 링크된 페이지의 정보를 변경한다.On the other hand, in the case of the path B in which the linked block is a free block although the link is performed, host data is recorded in the free block designated by the link address (step 120), and the BiT / link information of the block is changed (step 122). ). In this case, the link address does not change in the BiT / Link table and changes the information of the linked page.

한편, 링크가 되어 있으며 링크된 블록이 프리 블록이 아닌 경로 C의 경우에는, 도 3에 나타낸 것처럼, 링크된 블록(즉, 1차 링크 블록)에 이미 다른 유효 데이터가 기록되어 있으므로, 데이터를 기록할 수 있는 다른 프리 블록 어드레스를 찾고(단계 130), 찾은 프리 블록(즉, 2차 링크 블록)에 호스트 데이터를 기록한다(단계 132). 데이터를 기록한 다음에는 상기 1차 링크 블록의 사용도(즉, 하나의 블록 전체에서 유효 데이터가 기록되어 있는 영역이 차지하는 비율)가 일정한 기준값을 넘는지 판단한다(단계 134). 여기서, 기준값은 서로 다른 블록 사이에서 데이터를 이동하는 데에 걸리는 시간이 최소로 되는 값으로 결정되는데, 예컨대 기준값은 1/2이 될 수 있으나, 반드시 1/2로 한정되는 것은 아니다.On the other hand, in the case of the path C in which the linked block is linked and not the free block, other valid data is already recorded in the linked block (i.e., the primary link block) as shown in FIG. Another free block address is found (step 130), and host data is written to the found free block (i.e., secondary link block) (step 132). After the data is recorded, it is determined whether the utilization of the primary link block (that is, the percentage of the area in which valid data is recorded in one block) exceeds a predetermined reference value (step 134). Here, the reference value is determined as a value that minimizes the time taken to move data between different blocks. For example, the reference value may be 1/2, but is not necessarily limited to 1/2.

상기 판단 단계(134)에서 1차 링크 블록의 사용도가 기준값보다 작은 경우에는, 1차 링크 블록 데이터를 2차 링크 블록으로 이동한다(단계 136). 데이터 이동 단계가 끝나면, 1차 링크 블록과 2차 링크 블록의 ST 테이블을 변경하고(단계 142), 기본 블록의 BiT/링크 정보를 변경한다(단계 148).If the utilization of the primary link block is less than the reference value in the determination step 134, the primary link block data is moved to the secondary link block (step 136). When the data movement step is finished, the ST tables of the primary link block and the secondary link block are changed (step 142), and the BiT / link information of the basic block is changed (step 148).

한편, 판단 단계(134)에서 블록의 사용도가 기준값과 같거나 더 큰 경우에는, 단계 105에서 변환한 물리 어드레스에 대응되는 블록(기본 블록)에 있던 유효 데이터를 1차링크 블록으로 이동하고(단계 150), 기본 블록 및 1차 링크 블록에 대한 ST 테이블 변경 단계(152)와, BiT/링크 테이블 변경 단계(154)를 진행한다. 예컨대, 기본 블록의 ST 테이블은 '유효 데이터 기록(Used)'에서 '무효 데이터 기록(Dirty)'으로 변경되고, BiT/링크 테이블에서 링크 어드레스는 1차 링크 블록에서 2차 링크 블록으로 변경된다.On the other hand, if the use degree of the block in the determination step 134 is equal to or greater than the reference value, the valid data in the block (base block) corresponding to the physical address converted in step 105 is moved to the primary link block ( Step 150), the ST table change step 152 for the basic block and the primary link block, and the BiT / link table change step 154 are performed. For example, the ST table of the basic block is changed from 'valid data record (Used)' to 'invalid data record (Dirty'), and the link address in the BiT / link table is changed from the primary link block to the secondary link block.

도 3의 플래시 메모리의 동작 및 그 제어 방법을 통해 알 수 있는 것처럼,본 발명에서는 종래 플래시 메모리 시스템에서 모든 기록 또는 프로그램 동작에서 발생하는 백업과 재저장 동작을 사용하지 않기 때문에, 플래시 메모리의 기록 동작 속도를 크게 개선할 수 있다. 또한, 플래시 메모리의 블록 사용도에 따라 데이터 이동을 선택적으로 제어함으로써, 데이터 백업이나 재저장 동작의 효율성을 극대화하는 것이 가능하다.As can be seen from the operation of the flash memory of Figure 3 and the control method thereof, the present invention does not use the backup and restore operations that occur in all write or program operations in the conventional flash memory system, so the write operation of the flash memory Speed can be greatly improved. In addition, by selectively controlling the data movement according to the block usage of the flash memory, it is possible to maximize the efficiency of the data backup or restore operation.

도 4는 BiT/링크 테이블의 갱신 동작의 흐름을 나타낸다.4 shows the flow of the update operation of the BiT / Link table.

앞에서 도 3을 참조로 설명한 플래시 메모리의 쓰기 동작에서 BiT/링크 데이터를 변경하는 것은 BiT/링크 테이블에 데이터를 기록하는 것인데(단계 170), 데이터를 기록한 다음에는 BiT/링크 테이블에 해당하는 블록이 데이터로 다 찬 것인지(즉, 풀(full)인지) 판단한다(단계 172). BiT/링크 블록이 풀이 아닌 경우에는 플래시 메모리 동작 제어기의 SRAM 상의 BiT/링크 데이터를 수정하고(단계 180), 플래시 메모리의 BiT/링크 데이터를 변경 기록한 다음(단계 182), BiT/링크 어드레스 레지스터의 값을 변경한다(단계 184). 한편, 단계(172)에서 블록이 풀인 것으로 판단한 경우에는 해당 블록을 소거하고(단계 174), BiT/링크 테이블을 이동한 후(단계 176) BiT/링크 데이터 수정 단계(180)로 진행한다.Changing the BiT / link data in the flash memory write operation described above with reference to FIG. 3 is to write data to the BiT / link table (step 170). After writing the data, the block corresponding to the BiT / link table is written. It is determined whether the data is full (ie, full) (step 172). If the BiT / link block is not full, the BiT / link data on the SRAM of the flash memory operation controller is corrected (step 180), the BiT / link data of the flash memory is changed and recorded (step 182), and then the BiT / link address register is stored. Change the value (step 184). On the other hand, if it is determined in step 172 that the block is full, the block is erased (step 174), the BiT / link table is moved (step 176), and the process proceeds to the BiT / link data modification step 180.

도 5는 BiT/링크 정보의 구조를 나타내는데, 정보 구조는 기본 블록에 대한 정보 구조(210)와 링크 블록에 대한 정보 구조(220) 및 링크 상태 데이터 정보 구조(230)를 포함한다. 기본 블록 정보 구조(210)는 비트 '0'에서 '11'까지의 12-비트 데이터로 구성되는 기본 블록 어드레스와, 비트 '11'과 '12'로 표현되는 기본 블록에 대한 칩 어드레스, 비트 '14'와 '15'의 더미 비트로 구성된다. 링크 블록정보 구조(220)도 12-비트의 링크 블록 어드레스와, 링크 블록에 대한 칩 어드레스, 더미 비트로 구성된다. 링크 블록 정보 구조 다음에는 예컨대, 64-비트의 링크 상태 데이터 구조(230)가 구성된다. 링크 상태 데이터 구조(230)는 프로그램 블록의 어느 페이지가 링크되었는지 또는 이동되었는지를 나타낸다. 이 예는 정보 구조를 롱 워드(long word)로 표현하기 위한 것인데, 이와 다른 비트 구조를 사용하는 것도 가능하다. 하나의 워드가 하나의 블록 정보를 나타낸다면, 1G 플래시에 대해서는 8개의 페이지가 필요하고, 2G 플래시에 대해서는 16개의 페이지가 BiT/링크 정보를 위한 필요하다. 본 발명에서는 사용자 데이터를 위한 블록과 동일한 블록을 BiT/링크 정보 저장을 위해 사용하며, 데이터의 소거를 감안하여 예컨대 2개의 블록을 BiT/링크 테이블을 위해 할당할 수 있다. 이 구현예에서는 3개의 롱워드가 필요한데, 플래시 메모리 동작 제어 프로그램의 편의상 4개의 롱워드를 사용할 수도 있다.5 shows a structure of BiT / link information, which includes an information structure 210 for a basic block, an information structure 220 for a link block, and a link state data information structure 230. The basic block information structure 210 includes a basic block address consisting of 12-bit data of bits' 0 'through' 11 ', a chip address for the basic block represented by bits' 11' and '12', and a bit ' 14 'and' 15 'dummy bits. The link block information structure 220 also includes a 12-bit link block address, a chip address for the link block, and a dummy bit. Following the link block information structure, for example, a 64-bit link state data structure 230 is constructed. The link state data structure 230 indicates which pages of the program block are linked or moved. This example is intended to represent an information structure as a long word. It is also possible to use a different bit structure. If one word represents one block information, eight pages are needed for 1G flash and 16 pages are needed for BiT / link information for 2G flash. In the present invention, the same block as the block for user data is used for storing the BiT / link information, and two blocks may be allocated for the BiT / link table in consideration of erasing of data. In this implementation, three long words are required. For the convenience of the flash memory operation control program, four long words may be used.

도 6은 ST 테이블의 정보 구조를 나타내는데, 2K 비트 중 상위 1k 비트 즉, 0~1023은 유효 데이터 기록 정보(Used)로 사용하고 하위 1k 비트 즉, 1024~2048은 무효 데이터 기록 정보(Dirty)로 사용한다. 여기서, 비트의 개수는 메모리의 용량에 따라 변하며, 하나의 비트는 하나의 블록의 상태를 나타내고, 예컨대 유효 데이터 기록 비트의 값이 '1'인 경우 해당 블록은 다른 데이터가 기록되어 있는 사용 블록임을 나타낸다. 유효 데이터 기록 비트와 무효 데이터 기록 비트가 예컨대, 모두 '0'인 경우에는 해당 블록이 프리 블록임을 나타낸다. 따라서, 프리 블록을 나타내기 위한 별도의 비트를 사용하지 않아도 된다.6 shows the information structure of the ST table, in which the upper 1k bits, i.e., 0 to 1023, are used as valid data recording information (Used) and the lower 1k bits, ie, 1024 to 2048, are invalid data recording information (Dirty). use. Here, the number of bits varies according to the capacity of the memory, and one bit represents the state of one block. For example, when the value of the valid data write bit is '1', the corresponding block is a used block in which other data is written. Indicates. If both the valid data write bit and the invalid data write bit are '0', for example, this indicates that the block is a free block. Therefore, it is not necessary to use a separate bit for indicating a free block.

한편, 도 5와 도 6에는 명시적으로 나타내지 않았지만, BiT/링크 테이블과 ST 테이블의 정보 페이지는 유효 정보 위치를 가지고 있고, 각 페이지의 끝에는 키(key) 값이 포함되도록 하는 것이 바람직하다. BiT/링크 테이블과 ST 테이블은 소거를 최소화하도록 설계하는 것이 필요하며, 소거 동작이 없이 BiT/링크 테이블 및 ST 테이블의 사용 횟수가 증가하면 유효한 데이터가 어떤 페이지에 기록되는지 알 수 없게 되므로 BiT/링크 테이블과 ST 테이블의 정보에는 블록 내의 페이지 중 현재 플래시 메모리 내의 블록의 정보가 정확하게 기술된 페이지의 정보를 모두 포함하도록 설계하는 것이 바람직하다. 앞에서, 유효 정보 위치라고 한 것은 이것을 의미하며, 각 페이지의 끝에 예컨대, 32-비트의 키 값을 사용하는 것은 최초의 사용에서 BiT/링크 테이블이나 ST 테이블의 정보가 비어 있는 상태이어서 그 값이 '0'이 될 것인데, 이 경우 올바른 정보를 찾지 못하는 오류가 생기는 것을 방지하기 위해 사용될 수 있다.Although not explicitly shown in FIGS. 5 and 6, it is preferable that information pages of the BiT / Link table and the ST table have valid information positions, and key values are included at the end of each page. The BiT / Link table and ST table need to be designed to minimize the erase, and if the number of times of use of the BiT / Link table and ST table increases without the erase operation, the BiT / link will not be known which page the valid data is written to. The information of the table and the ST table is preferably designed such that all of the pages in the block include information of the page in which the information of the block in the current flash memory is accurately described. Formerly referred to as a valid information location, this means that at the end of each page, for example, using a 32-bit key value means that in the first use the information in the BiT / Link table or ST table is empty and the value is' It will be 0 ', which can be used to prevent errors that don't find the right information.

도 7 및 도 8은 본 발명이 적용될 수 있는 플래시 메모리 동작 제어 장치의 전체 구조와, 플래시 메모리의 데이터 저장 구조 및 플래시 메모리의 동작을 나타낸다.7 and 8 illustrate the overall structure of the flash memory operation control apparatus to which the present invention can be applied, the data storage structure of the flash memory, and the operation of the flash memory.

플래시 메모리 동작 제어 장치(310)는 호스트 시스템(300)과 호스트 버스(305)를 통해 연결되고, 플래시 메모리 어레이(320)와는 플래시 버스(315)를 통해 연결되어 데이터를 주고받는다. 제어 장치(310)는 제어기(312), 플래시 제어 블록(314), ECC 블록(316)을 포함하고, 제어 장치(310) 내의 제어기(312)는 SRAM (Static Random Access Memory), 데이터 버퍼, BiT/링크 버퍼, MMU (MemoryManagement Unit) 등을 포함한다. 메모리 어레이(320)는 복수의 메모리 유닛(322A, 322B, …, 322N)를 포함한다. 플래시 제어 블록(314)은 플래시 메모리 어레이(320)에 칩 선택 신호(CE)와 제어 신호 및 I/O 신호를 공급하고, 플래시 메모리로부터 상태 신호(R/B; Ready/Busy)를 받는다. I/O 신호로는 데이터, 어드레스, 명령 신호가 시차를 두고 플래시 메모리에 공급된다.The flash memory operation control device 310 is connected to the host system 300 through the host bus 305, and is connected to the flash memory array 320 through the flash bus 315 to exchange data. The control device 310 includes a controller 312, a flash control block 314, and an ECC block 316, wherein the controller 312 in the control device 310 includes a static random access memory (SRAM), a data buffer, and a BiT. Includes / link buffer, Memory Management Unit (MMU), and more. The memory array 320 includes a plurality of memory units 322A, 322B, ..., 322N. The flash control block 314 supplies a chip select signal CE, a control signal, and an I / O signal to the flash memory array 320, and receives a status signal R / B (Ready / Busy) from the flash memory. As I / O signals, data, address, and command signals are supplied to the flash memory with a time difference.

플래시 메모리(322, 324)는 도 8에 나타낸 바와 같은 데이터 저장 구조를 가질 수 있다. 즉, 하나의 플래시 메모리 유닛은 복수의 블록 예컨대, 1,024개 또는 2,048개의 메모리 블록으로 된 데이터 블록(330)을 포함하고, 하나의 메모리 블록은 복수의 페이지(340) 예컨대, 64개의 페이지를 포함한다. 하나의 데이터 블록(330)은 예컨대, 512-바이트의 사용자 데이터 영역과 16-바이트의 ECC 데이터 영역으로 구성될 수 있다. 플래시 제어 블록(314)으로부터 ECC(316)를 통해 공급되는 데이터는 플래시 메모리의 I/O 버퍼(325)에 예컨대, 512+16-바이트가 직렬 데이터 입력된다. I/O 버퍼(325)에서 메모리 블록의 페이지(340)로 데이터를 가져오는 것이 쓰기 또는 프로그램 동작이고, 이와 반대로 페이지에 있는 데이터를 I/O 버퍼로 옮기는 것이 읽기 동작이다. 어느 블록에 있는 데이터를 지우는 것이 소거(erase) 동작인데, 도 8에 나타낸 것처럼, 프로그램은 페이지 단위로 이루어지는 반면, 소거 동작은 블록 단위로 이루어진다.The flash memories 322 and 324 may have a data storage structure as shown in FIG. 8. That is, one flash memory unit includes a data block 330 of a plurality of blocks, for example, 1,024 or 2,048 memory blocks, and one memory block includes a plurality of pages 340, for example, 64 pages. . One data block 330 may consist of, for example, a 512-byte user data area and a 16-byte ECC data area. The data supplied from the flash control block 314 via the ECC 316 is serial data input, for example 512 + 16-bytes, into the I / O buffer 325 of the flash memory. Importing data from the I / O buffer 325 to the page 340 of the memory block is a write or program operation, whereas moving a data in the page to the I / O buffer is a read operation. Erasing data in a block is an erase operation. As shown in FIG. 8, a program is performed in units of pages, while an erase operation is performed in units of blocks.

한편, 본 발명의 데이터 저장 구조는 도 8에서 보는 것처럼, BiT/링크 테이블용 블록(350)과 ST 테이블용 블록(360)을 포함한다. 이 블록(350, 360)은 앞에서 설명한 것처럼 예컨대, 2개의 블록으로 이루어질 수 있다.Meanwhile, the data storage structure of the present invention includes a block 350 for the BiT / link table and a block 360 for the ST table, as shown in FIG. As described above, the blocks 350 and 360 may include, for example, two blocks.

도 9는 본 발명이 적용될 수 있는 메모리 블록의 정보 구조를 나타내는 블록도이다. 이 예는 1G 이상의 플래시 메모리에 대한 것이다.9 is a block diagram illustrating an information structure of a memory block to which the present invention can be applied. This example is for flash memory above 1G.

이 구현예에서, '블록 0'에는 예컨대, 호스트 시스템의 구동을 위한 정보가 저장되고, '블록 1 ~ 블록 Z-5'은 사용자 데이터 또는 다른 데이터를 위한 예비 영역이다. 블록 번호 'Z'는 하나의 플래시 유닛에서 마지막에 위치한 블록을 나타낸다. '블록 Z-4, 블록 Z-3'은 BiT/링크 테이블을 위한 정보 구조이고, '블록 Z-2, 블록 Z-1'은 ST 테이블을 위한 것이며, 최종 블록 '블록 Z'는 칩 정보를 기록하기 위한 정보 구조이다.In this embodiment, 'block 0', for example, stores information for driving the host system, and 'block 1 to block Z-5' are reserved areas for user data or other data. The block number 'Z' represents the last block located in one flash unit. 'Block Z-4, Block Z-3' is the information structure for the BiT / Link table, 'Block Z-2, Block Z-1' is for the ST table, and the final block 'Block Z' is the chip information. Information structure for recording.

도 10은 플래시 메모리의 읽기 동작 흐름을 나타낸다. 호스트 시스템으로부터 논리 어드레스를 수신하고(단계 410), 플래시 메모리 동작을 통제하는 제어기 내의 BiT/링크 버퍼에서 논리 어드레스를 조사한다(단계 412). BiT/링크 버퍼에 해당 논리 어드레스에 대한 정보가 있으면 이를 기초로 물리 어드레스를 찾는 단계(416)로 곧바로 진행한다. 한편, BiT/링크 버퍼에 논리 어드레스에 대한 정보가 없으면, 플래시 메모리 내의 BiT/링크 테이블로부터 해당 데이터를 읽고(단계 414) 이를 기초로 물리 어드레스를 찾는다(단계 416). 해당 물리 어드레스에 대응되는 메모리 블록에서 데이터를 읽어서 I/O 버퍼로 옮긴다(단계 418).10 illustrates a flow of read operations of a flash memory. A logical address is received from the host system (step 410) and the logical address is examined in a BiT / link buffer in the controller that controls flash memory operation (step 412). If there is information on the logical address in the BiT / Link buffer, the process proceeds directly to step 416 of finding the physical address based on the information. On the other hand, if there is no information on the logical address in the BiT / link buffer, the corresponding data is read from the BiT / link table in the flash memory (step 414) and the physical address is found based on the data (step 416). Data is read from the memory block corresponding to the corresponding physical address and transferred to the I / O buffer (step 418).

도 11은 무효 데이터 기록 블록(Dirty Block)을 소거하는 동작의 흐름을 나타낸다. 무효 데이터 기록 블록의 소거 동작은 호스트 시스템(예컨대, 카드 시스템)이 휴지 상태(idel state)일 때 진행되는데, 도 11을 참조하면, 먼저 무효 데이터 기록 블록을 검색하고(단계 430), 검색된 블록을 소거하는데(단계 432) 이 소거동작은 제어기의 메모리에 있는 BT 버퍼에 저장되어 있는 모든 무효 데이터 기록 블록이 소거될 때까지 진행하는 것이 바람직하다. 예컨대, 제어기의 메모리 내에 있는 BT 버퍼가 플래시 메모리의 BT 테이블에서 데이터를 읽어오는 양은 하나의 페이지인데, 이 페이지는 예컨대, 플래시 메모리 유닛 4개의 블록 정보를 포함할 수 있다. 따라서, 단계(432)에서 행해지는 블록 소거는 이 ST 버퍼에 저장된 4개의 플래시 유닛에 포함되어 있는 무효 데이터 기록 블록이 모두 소거될 때까지 진행된다. 소거된 블록의 ST 데이터를 변경('무효 데이터 기록 블록'에서 '프리 블록'으로 변경)하고(단계 434), 메모리 내의 ST 버퍼 정보를 변경한다(단계 436). 여기서, ST 정보를 변경하기 전에 블록을 먼저 소거하는 것이 바람직한데, 그 이유는 ST 정보를 변경만 하고 변경된 정보에 맞게 해당 블록을 소거하기 전에 플래시 메모리의 전원 공급이 차단된 경우에는 나중에 잘못된 ST 정보를 이용할 수 있기 때문이다. 본 발명과 같이 블록을 먼저 소거하면 블록 소거 동작 중 또는 소거 직후에 전원이 차단되어 ST 정보를 변경하지 못한 경우에도 잘못된 ST 정보를 나중에 이용하게 될 위험성은 없다.11 shows a flow of an operation of erasing an invalid data write block. The erase operation of the invalid data recording block is performed when the host system (eg, the card system) is in an idle state. Referring to FIG. 11, first, an invalid data recording block is searched (step 430), and the retrieved block is deleted. This erase operation (step 432) preferably proceeds until all invalid data write blocks stored in the BT buffer in the controller's memory have been erased. For example, the amount that the BT buffer in the controller's memory reads data from the BT table of the flash memory is one page, and this page may include, for example, block information of four flash memory units. Therefore, the block erase performed in step 432 proceeds until all invalid data write blocks included in the four flash units stored in this ST buffer are erased. The ST data of the erased block is changed (from 'invalid data write block' to 'free block') (step 434), and the ST buffer information in the memory is changed (step 436). In this case, it is preferable to erase the block first before changing the ST information. The reason is that if the power supply of the flash memory is cut off before the ST information is changed and the corresponding block is erased according to the changed information, the wrong ST information is later. This can be used. When the block is first erased as in the present invention, even if the ST information is not changed because the power is cut off during or immediately after the block erase operation, there is no risk of using wrong ST information later.

메모리 내의 ST 정보를 변경한 다음에는 호스트 액세스가 있는지 판단하고(단계 438) 액세스가 있으면 무효 데이터 기록 블록 소거 동작을 종료하고(단계452) 호스트 액세스에 따라 동작하며, 호스트 액세스가 없으면 남은 블록이 존재하는지 판단한다(단계 438). 더 소거할 블록이 남은 경우에는 단계 430으로 되돌아가고 남은 블록이 없으면 소거 동작을 종료한다(단계 452).After changing the ST information in the memory, it is determined whether there is a host access (step 438). If there is an access, the operation terminates an invalid data write block erase operation (step 452) and operates according to the host access. It is determined (step 438). If there are remaining blocks to be erased, the flow returns to step 430, and if no blocks remain, the erase operation ends (step 452).

도 12는 기본 블록 데이터와 링크 블록 데이터를 합치는 동작의 흐름을 나타내는데, 이 동작은 예컨대, 도 3을 참조로 설명한 경로 C에서 포함되는 기본 블록 데이터를 링크 블록으로 이동하는 과정에 해당하며, 무효 데이터 기록 블록을 소거하는 동작과 마찬가지로 호스트 시스템이 휴지 상태일 때 진행하는 것이 바람직하다.12 illustrates a flow of an operation of merging basic block data and link block data. The operation corresponds to, for example, a process of moving basic block data included in a path C described with reference to FIG. 3 to a link block, and is invalid. As with the operation of erasing the data write block, it is preferable to proceed when the host system is in the idle state.

데이터를 합치는 또는 이동하는 동작은, 도 12에 나타낸 것처럼, 사용된 블록(예컨대, 1차 링크 블록)의 사용도가 3/4를 넘는 블록이 있는지 조사하는 단계(510)로부터 시작된다. 여기서, 사용도 조사의 기준값을 3/4로 설정한 것은 하나의 예에 지나지 않으며 이 값을 다른 값으로 변경하는 것은 본 발명의 사상과 범위 내에서 충분히 가능하다.The merging or moving of the data begins with a step 510 of checking whether there is a block in which the used block (e.g., primary link block) has more than three quarters of utilization, as shown in FIG. Here, setting the reference value of the utilization survey to 3/4 is only one example, and changing this value to another value is sufficiently possible within the spirit and scope of the present invention.

검색된 블록에 대하여 원 블록 데이터(즉, 기본 블록 데이터)를 링크 블록으로 이동한다(단계 512). 기본 블록과 링크 블록의 BiT/링크 테이블을 변경하고(단계 515), 메모리 내의 ST를 변경하고(단계 518), 호스트 액세스가 있는지 판단한다(단계 520). 호스트 액세스가 있으면 데이터 이동 동작을 종료하고(단계 530), 호스트 액세스가 없으면 남은 블록이 존재하는지 판단한다(단계 522). 남은 블록이 없으면 동작을 종료하고(단계 530), 남은 블록이 있으면 데이터 사용도 조사 단계(510)로 되돌아가 앞의 과정을 반복하여 데이터를 이동한다.The original block data (ie, basic block data) is moved to the link block for the retrieved block (step 512). The BiT / link table of the basic block and the link block is changed (step 515), the ST in memory is changed (step 518), and it is determined whether there is a host access (step 520). If there is host access, the data movement operation is terminated (step 530). If there is no host access, it is determined whether a remaining block exists (step 522). If there is no remaining block, the operation ends (step 530). If there is a remaining block, the operation returns to the data usage investigation step 510 and repeats the above process to move the data.

이상 도면을 참조로 본 발명의 구체적인 구현예에 대하여 기술하였지만, 이것은 발명의 설명을 위한 것이고 발명의 보호 범위를 제한하기 위한 것은 아니다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면, 도면을 참조로 설명한 구현예들은 본 발명의 사상이나 범위를 벗어나지 않는 범위에서 여러 가지 다양한 수정과 변형이 가능하다는 것을 쉽게 이해할 수 있을 것이다. 이하의 특허청구범위에 기재된 사항에 의해 정해지는 발명의 보호범위는 이러한 수정과 변형을 모두 포함한다.Although specific embodiments of the present invention have been described above with reference to the drawings, this is for the purpose of illustrating the invention and is not intended to limit the protection scope of the invention. Those skilled in the art to which the present invention pertains can easily understand that various embodiments can be modified and modified without departing from the spirit or scope of the present invention. The protection scope of the invention as defined by the following claims is intended to cover all such modifications and variations.

본 발명에 따르면, 플래시 메모리의 동작 속도를 크게 개선할 수 있고, 데이터를 기록하고자 하는 블록의 사용양에 따라 다른 블록과 기록 블록 사이의 데이터 이동을 가장 효율적으로 제어할 수 있다.According to the present invention, the operation speed of the flash memory can be greatly improved, and the data movement between the other block and the write block can be controlled most efficiently according to the use amount of the block to write data.

또한, 본 발명에 따르면, 플래시 메모리를 제어하는 프로그램을 효율적으로 작성할 수 있고, 이 프로그램에 따라 플래시 메모리의 동작 속도를 높이고 사용 수명을 연장할 수 있다. 본 발명에서는, 무효 데이터 기록 블록의 소거 동작이나 블록간 데이터 이동을 호스트 시스템이 휴지 상태일 때 진행함으로써, 실제 플래시 메모리가 동작할 때에는 가장 효율적인 상태에서 동작이 진행되도록 하는 것이 가능하다.In addition, according to the present invention, it is possible to efficiently write a program for controlling the flash memory, and according to the program, it is possible to speed up the operation speed of the flash memory and extend its service life. In the present invention, the erasing operation or the inter-block data movement of the invalid data recording block is performed when the host system is in the idle state, so that the operation can be performed in the most efficient state when the actual flash memory is operating.

Claims (20)

플래시 메모리를 제어하는 방법으로서,As a method of controlling the flash memory, 호스트 시스템으로부터 논리 어드레스를 수신하는 단계와,Receiving a logical address from a host system, 수신한 논리 어드레스를 물리 어드레스로 변환하는 단계와,Converting the received logical address into a physical address; 호스트 시스템으로부터 수신한 데이터를 상기 물리 어드레스에 의해 지정된 플래시 메모리의 저장 위치에 기록하는 단계를 포함하며,Writing data received from a host system to a storage location of a flash memory designated by the physical address, 상기 기록 단계에서, 지정된 플래시 메모리의 저장 위치가 링크되어 있고, 링크된 저장 위치가 이미 유효 데이터로 기록되어 있으며, 상기 링크된 저장 위치의 사용도가 기준값보다 큰 경우에는, 상기 지정된 저장 위치의 유효 데이터를 상기 링크된 저장 위치로 이동하고, 상기 링크된 저장 위치의 사용도가 기준값보다 작은 경우에는, 상기 링크된 저장 위치의 유효 데이터를 또 다른 링크된 저장 위치로 이동하는 단계를 포함하는 플래시 메모리 동작 제어 방법.In the recording step, when the storage location of the designated flash memory is linked, the linked storage location is already recorded as valid data, and the utilization of the linked storage location is greater than a reference value, the validity of the designated storage location is valid. Moving data to the linked storage location, and if validity of the linked storage location is less than a reference value, moving valid data of the linked storage location to another linked storage location. Motion control method. 제1항에서, 상기 링크된 저장 위치의 사용도가 기준값보다 큰 경우에 유효 데이터를 이동한 다음에는, 상기 지정된 저장 위치 및 상기 링크된 저장 위치에 대한 BiT/링크 테이블과 ST 테이블을 변경하는 단계가 진행되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.The method of claim 1, further comprising: changing the BiT / link table and the ST table for the designated storage location and the linked storage location after moving valid data when the linked storage location has a greater than a reference value. Flash memory operation method characterized in that the progress. 제2항에서, 상기 BiT/링크 테이블과 ST 테이블은 각각 2개의 메모리 블록으로 구성되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.3. The method of claim 2, wherein the BiT / link table and the ST table are each composed of two memory blocks. 제1항에서, 상기 링크된 저장 위치의 사용도가 기준값보다 작은 경우에 유효 데이터를 이동한 다음에는, 상기 지정된 저장 위치와 상기 링크된 저장 위치 및 상기 또 다른 링크된 저장 위치의 BiT/링크 테이블과 ST 테이블을 변경하는 단계가 진행되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.2. The BiT / Link table of claim 1, wherein after moving valid data when the utilization of the linked storage location is less than a reference value, the BiT / link table of the designated storage location and the linked storage location and the another linked storage location And changing the ST table. 제1항에서, 상기 어드레스 변환 단계는 BiT/링크 버퍼 내의 논리 어드레스를 조사하는 단계와, BiT/링크 버퍼에 논리 어드레스가 존재하는 경우에는 이것을 기초로 물리 어드레스를 찾는 단계와, BiT/링크 버퍼에 논리 어드레스가 존재하지 않는 경우에는 BiT/링크 테이블에서 데이터를 읽어오는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.The method of claim 1, wherein the address translation step includes: examining a logical address in the BiT / link buffer; finding a physical address based on the logical address if the BiT / link buffer exists; And reading data from a BiT / Link table if a logical address does not exist. 제1항에서, 상기 지정된 플래시 메모리의 저장 위치가 링크되어 있지 않은 경우에는, 데이터를 기록할 수 있는 저장 위치를 찾고, 여기서 찾은 저장 위치에 데이터를 기록하며, 기록한 저장 위치의 ST 테이블과 BiT/링크 테이블을 변경하는 단계가 포함되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.The storage location of claim 1, wherein when the storage location of the designated flash memory is not linked, the storage location where data can be recorded is found, the data is recorded in the storage location found, and the ST table and BiT / And modifying the link table. 제1항에서, 상기 지정된 플래시 메모리의 저장 위치가 링크되어 있고, 링크된 저장 위치가 데이터를 기록할 수 있는 저장 위치인 경우에는, 상기 링크된 저장위치에 데이터를 쓰고, 링크된 저장 위치의 BiT/링크 테이블을 변경하는 단계가 포함되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.The storage location of claim 1, wherein when the storage location of the designated flash memory is linked and the linked storage location is a storage location capable of recording data, data is written to the linked storage location, and the BiT of the linked storage location is set. And / or changing the link table. 제1항에서, 상기 기준값은 저장 위치 사이에 데이터를 이동하는 데에 걸리는 시간이 최소로 되도록 설정되는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.The method of claim 1, wherein the reference value is set to minimize the time taken to move data between storage locations. 제1항에서, 상기 BiT/링크 테이블은 플래시 메모리의 각 저장 위치 및 이 저장 위치가 링크되었는가, 현재 프로그램 동작을 수행할 수 있는가의 정보를 나타내는 데이터를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.2. The method of claim 1, wherein the BiT / link table includes data representing information about each storage location of the flash memory and whether the storage location is linked or whether a current program operation can be performed. . 제1항에서, 상기 ST 테이블은 플래시 메모리 각 저장 위치가 사용가능한가, 아니면 이미 사용된 것인가를 나타내는 데이터를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.2. The method of claim 1, wherein the ST table includes data indicating whether each storage location of the flash memory is available or has already been used. 제10항에서, 상기 ST 테이블에서 이미 사용된 것임을 나타내는 저장 위치 중 무효 데이터가 기록되어 있는 저장 위치를 검색하는 단계와, 검색된 무효 데이터 기록 저장 위치를 소거하는 단계와, 소거된 저장 위치에 대한 ST 테이블을 변경하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 방법.11. The method of claim 10, further comprising: retrieving a storage location in which invalid data is recorded among storage locations indicating that the ST table has already been used; erasing the retrieved invalid data recording storage location; And altering the table. 제1항에서, 상기 지정된 저장 위치의 유효 데이터를 상기 링크된 저장 위치로 이동하는 단계는, 상기 링크된 저장 위치의 데이터 사용도를 조사하여 일정한 기준을 초과하는지 판단하는 단계를 거친 후 데이터 사용도가 일정한 기준을 넘는 경우에 데이터를 이동하는 단계인 것을 특징으로 하는 플래시 메모리 동작 제어 방법.The method of claim 1, wherein the moving of the valid data of the designated storage location to the linked storage location comprises: examining data usage of the linked storage location and determining whether the data exceeds a predetermined criterion. Is a step of moving data when is greater than a predetermined criterion. 호스트 시스템과 플래시 메모리 사이에서 데이터를 전달하고 플래시 메모리의 동작을 제어하는 방법으로서,A method of transferring data between a host system and flash memory and controlling the operation of flash memory, 상기 플래시 메모리는 복수의 메모리 블록으로 구성되고, 복수의 메모리 블록 각각은 복수의 페이지/섹터로 구성되며, 상기 호스트 시스템에서 플래시 메모리에 데이터를 기록하는 동작은 상기 섹터 단위로 이루어지고 플래시 메모리의 소거 동작은 상기 블록 단위로 이루어지며, 상기 복수의 메모리 블록은 호스트 시스템에서 전달되는 논리 어드레스에 대응되는 물리 어드레스에 의해 지정되는 기본 블록과, 이 기본 블록이 링크되는 1차 링크 블록과, 이 1차 링크 블록이 링크되는 2차 링크 블록을 포함하고,The flash memory includes a plurality of memory blocks, each of the plurality of memory blocks includes a plurality of pages / sectors, and an operation of writing data to the flash memory in the host system is performed in units of sectors and erases the flash memory. Operation is performed in units of the blocks, and the plurality of memory blocks includes a basic block designated by a physical address corresponding to a logical address transmitted from a host system, a primary link block to which the basic block is linked, and the primary block. The link block includes a secondary link block to which it is linked, 상기 방법은,The method, 호스트 시스템으로부터 수신한 데이터를 상기 플래시 메모리에 기록하는 단계와,Writing data received from a host system to the flash memory; 상기 1차 링크 블록의 사용도가 기준값보다 큰 경우에는 상기 기본 블록의 유효 데이터를 1차 링크 블록으로 이동하고 1차 링크 블록의 사용도가 기준값보다작은 경우에는 상기 1차 링크 블록의 유효 데이터를 2차 링크 블록으로 이동하는 단계를 포함하는 플래시 메모리 동작 제어 방법.If the utilization of the primary link block is greater than the reference value, the valid data of the primary block is moved to the primary link block. If the utilization of the primary link block is less than the reference value, the valid data of the primary link block is moved. Moving to a secondary link block. 제13항에서, 상기 1차 링크 블록의 사용도가 기준값보다 작은 경우에 유효 데이터를 이동한 다음에는, 상기 기본 블록, 1차 링크 블록 및 2차 링크 블록의 BiT/링크 테이블과 ST 테이블을 변경하는 단계가 진행되고, 상기 1차 링크 블록의 사용도가 기준값보다 큰 경우에 유효 데이터를 이동한 다음에는, 상기 기본 블록과 1차 링크 블록의 BiT/링크 테이블과 ST 테이블을 변경하는 단계가 진행되는것을 특징으로 하는 플래시 메모리 동작 제어 방법.The method of claim 13, wherein after the valid data is moved when the utilization degree of the primary link block is less than a reference value, the BiT / link table and the ST table of the basic block, the primary link block, and the secondary link block are changed. And if the utilization of the primary link block is greater than a reference value, after valid data is moved, the step of changing the BiT / link table and the ST table of the basic block and the primary link block is performed. Flash memory operation control method characterized in that the. 호스트 시스템과 플래시 메모리 사이에서 데이터를 전달하고 플래시 메모리의 동작을 제어하는 플래시 메모리 동작 제어 장치로서,A flash memory operation control device which transfers data between a host system and flash memory and controls the operation of the flash memory. 상기 플래시 메모리는 복수의 메모리 블록으로 구성되고, 복수의 메모리 블록 각각은 복수의 페이지/섹터로 구성되며, 상기 호스트 시스템에서 플래시 메모리에 데이터를 기록하는 동작은 상기 섹터 단위로 이루어지고 플래시 메모리의 소거 동작은 상기 블록 단위로 이루어지며, 상기 복수의 메모리 블록은 호스트 시스템에서 전달되는 논리 어드레스에 대응되는 물리 어드레스에 의해 지정되는 기본 블록과, 이 기본 블록이 링크되는 1차 링크 블록과, 이 1차 링크 블록이 링크되는 2차 링크 블록을 포함하고, 상기 장치는,The flash memory includes a plurality of memory blocks, each of the plurality of memory blocks includes a plurality of pages / sectors, and an operation of writing data to the flash memory in the host system is performed in units of sectors and erases the flash memory. Operation is performed in units of the blocks, and the plurality of memory blocks includes a basic block designated by a physical address corresponding to a logical address transmitted from a host system, a primary link block to which the basic block is linked, and the primary block. A link block comprising a secondary link block to which the link is linked, wherein the apparatus comprises: 호스트 시스템으로부터 수신한 데이터를 상기 플래시 메모리에 기록하는 수단과,Means for writing data received from a host system to the flash memory; 상기 1차 링크 블록의 사용도가 기준값보다 큰 경우에는 상기 기본 블록의 유효 데이터를 1차 링크 블록으로 이동하고 1차 링크 블록의 사용도가 기준값보다 작은 경우에는 상기 1차 링크 블록의 유효 데이터를 2차 링크 블록으로 이동하는 수단을 포함하는 플래시 메모리 동작 제어 장치.If the utilization of the primary link block is greater than the reference value, the valid data of the primary block is moved to the primary link block. If the utilization of the primary link block is less than the reference value, the valid data of the primary link block is moved. And a means for moving to a secondary link block. 제15항에서, 상기 1차 링크 블록의 사용도가 기준값보다 작은 경우에 유효 데이터를 이동한 다음에는, 상기 기본 블록, 1차 링크 블록 및 2차 링크 블록의 BiT/링크 테이블과 ST 테이블을 변경하고, 상기 1차 링크 블록의 사용도가 기준값보다 큰 경우에 유효 데이터를 이동한 다음에는, 상기 기본 블록과 1차 링크 블록의 BiT/링크 테이블과 ST 테이블을 변경하는 것을 특징으로 하는 플래시 메모리 동작 제어 장치.16. The apparatus of claim 15, wherein after the valid data is moved when the utilization degree of the primary link block is lower than a reference value, the BiT / link table and the ST table of the basic block, the primary link block, and the secondary link block are changed. And after the valid data is moved when the utilization degree of the primary link block is greater than a reference value, the BiT / link table and the ST table of the basic block and the primary link block are changed. controller. 제16항에서, 상기 BiT/링크 테이블은 기본 블록 어드레스, 기본 블록에 대한 칩 어드레스, 링크 블록 어드레스, 링크 블록에 대한 칩 어드레스 및 링크 상태를 나타내는 데이터를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 장치.17. The apparatus of claim 16, wherein the BiT / link table includes a base block address, a chip address for a base block, a link block address, a chip address for a link block, and data representing a link state. . 제16항에서, 상기 ST 테이블은 유효 데이터 기록 정보와 무효 데이터 기록 정보를 나타내는 데이터를 포함하는 것을 특징으로 하는 플래시 메모리 동작 제어 장치.17. The apparatus of claim 16, wherein the ST table includes data representing valid data record information and invalid data record information. 제17항 또는 제18항에서, 상기 BiT/링크 테이블과 ST 테이블은 각각 2개의 메모리 블록으로 구성되는 것을 특징으로 하는 플래시 메모리 동작 제어 장치.19. The apparatus of claim 17 or 18, wherein the BiT / link table and the ST table are each composed of two memory blocks. 제15항에서, 상기 데이터 이동 수단은 호스트 시스템이 휴지 상태일 때 동작하는 것을 특징으로 하는 플래시 메모리 동작 제어 장치.16. The apparatus of claim 15, wherein the data movement means operates when the host system is in the dormant state.
KR10-2002-0077392A 2002-11-29 2002-12-06 Control method and apparatus for operations of flash memory system KR100490603B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0077392A KR100490603B1 (en) 2002-12-06 2002-12-06 Control method and apparatus for operations of flash memory system
US10/727,311 US7136986B2 (en) 2002-11-29 2003-12-01 Apparatus and method for controlling flash memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0077392A KR100490603B1 (en) 2002-12-06 2002-12-06 Control method and apparatus for operations of flash memory system

Publications (2)

Publication Number Publication Date
KR20030009250A true KR20030009250A (en) 2003-01-29
KR100490603B1 KR100490603B1 (en) 2005-05-27

Family

ID=27729714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0077392A KR100490603B1 (en) 2002-11-29 2002-12-06 Control method and apparatus for operations of flash memory system

Country Status (1)

Country Link
KR (1) KR100490603B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100816820B1 (en) * 2006-12-14 2008-03-27 한양대학교 산학협력단 Apparatus and method for managing buffer linked with flash memory
CN112306376A (en) * 2019-08-01 2021-02-02 北京兆易创新科技股份有限公司 User data movement recovery method and device, electronic equipment and storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3485938B2 (en) * 1992-03-31 2004-01-13 株式会社東芝 Nonvolatile semiconductor memory device
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
US6104638A (en) * 1999-02-26 2000-08-15 Hewlett-Packard Company Use of erasable non-volatile memory for storage of changing information
JP2002278850A (en) * 2001-03-14 2002-09-27 Nec Corp Semiconductor device
JP2002304320A (en) * 2001-04-03 2002-10-18 Mitsubishi Electric Corp Data storage method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100816820B1 (en) * 2006-12-14 2008-03-27 한양대학교 산학협력단 Apparatus and method for managing buffer linked with flash memory
CN112306376A (en) * 2019-08-01 2021-02-02 北京兆易创新科技股份有限公司 User data movement recovery method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
KR100490603B1 (en) 2005-05-27

Similar Documents

Publication Publication Date Title
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US8745310B2 (en) Storage apparatus, computer system, and method for managing storage apparatus
US6327639B1 (en) Method and apparatus for storing location identification information within non-volatile memory devices
KR100909902B1 (en) Flash memory device and Flash memory system
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
KR100193779B1 (en) Semiconductor disk device
KR100618298B1 (en) Recording system, data recording device, memory device, and data recording method
KR100684887B1 (en) Data storing device including flash memory and merge method of thereof
EP1739683B1 (en) Space management for managing high capacity nonvolatile memory
JP5612514B2 (en) Nonvolatile memory controller and nonvolatile storage device
US8327068B2 (en) Memory module, memory controller, nonvolatile storage, nonvolatile storage system, and memory read/write method
US7529879B2 (en) Incremental merge methods and memory systems using the same
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US20080250188A1 (en) Memory Controller, Nonvolatile Storage, Nonvolatile Storage System, and Memory Control Method
KR100684061B1 (en) Recording system, data recording device, memory device, and data recording method
WO1995018407A1 (en) Solid state memory system
WO1999044113A9 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US7136986B2 (en) Apparatus and method for controlling flash memories
WO1999030239A1 (en) Memory and access method
CN103270500A (en) Transaction log recovery
JP3421581B2 (en) Storage device using nonvolatile semiconductor memory
KR100882740B1 (en) Method and storage device of mapping a nonvolatile memory based on map history
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP4308780B2 (en) Semiconductor memory device, memory controller, and data recording method

Legal Events

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

Payment date: 20080516

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee