KR102315314B1 - Apparatus and method for controlling eeprom - Google Patents

Apparatus and method for controlling eeprom Download PDF

Info

Publication number
KR102315314B1
KR102315314B1 KR1020190168123A KR20190168123A KR102315314B1 KR 102315314 B1 KR102315314 B1 KR 102315314B1 KR 1020190168123 A KR1020190168123 A KR 1020190168123A KR 20190168123 A KR20190168123 A KR 20190168123A KR 102315314 B1 KR102315314 B1 KR 102315314B1
Authority
KR
South Korea
Prior art keywords
data block
data
field
bit
deletion
Prior art date
Application number
KR1020190168123A
Other languages
Korean (ko)
Other versions
KR20210076676A (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 KR1020190168123A priority Critical patent/KR102315314B1/en
Publication of KR20210076676A publication Critical patent/KR20210076676A/en
Application granted granted Critical
Publication of KR102315314B1 publication Critical patent/KR102315314B1/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/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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/0614Improving the reliability of storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

본 발명은 EEPROM의 재사용 가능 회수를 증가시키는 EEPROM 제어 장치 및 방법에 대한 것이다. 본 발명은, 복수 개의 데이터 블록으로 구성된 메모리부; 및 상기 데이터 블록에 데이터를 기록하고, 새로운 데이터 블록의 기록시 기존에 상기 메모리부에 저장되어 있는 데이터 블록의 일부 비트를 일방향으로 수정하는 비트 업데이트를 수행하도록 상기 메모리부를 제어하는 제어부;를 포함하는 EEPROM 제어 장치를 제공한다. The present invention relates to an EEPROM control apparatus and method for increasing the reusable number of EEPROMs. The present invention provides a memory unit comprising a plurality of data blocks; and a control unit that writes data to the data block and controls the memory unit to perform a bit update that unidirectionally corrects some bits of a data block previously stored in the memory unit when a new data block is written. Provides an EEPROM control device.

Description

EEPROM 제어 장치 및 방법 {APPARATUS AND METHOD FOR CONTROLLING EEPROM}EEPROM CONTROL DEVICE AND METHOD {APPARATUS AND METHOD FOR CONTROLLING EEPROM}

본 발명은 EEPROM 제어 장치 및 방법에 대한 것이다. 더욱 상세하게는, 본 발명은 EEPROM의 재사용 가능 회수를 증가시키는 EEPROM 제어 장치 및 방법에 대한 것이다. The present invention relates to an EEPROM control apparatus and method. More particularly, the present invention relates to an EEPROM control apparatus and method for increasing the reusable number of EEPROMs.

EEPROM(Electrically Erasable PROM)은 불휘발성 메모리 소자의 일종으로서, 한번 내용을 저장하면 비교적 오랫동안 이를 기억하고 있으면서 주로 이를 읽어 사용하기만 하거나 전원을 꺼도 지워져서는 안되는 중요한 데이터를 백업하여 두어야 하는 설정값 저장용 메모리로서 유용한 소자이다. EEPROM (Electrically Erasable PROM) is a type of non-volatile memory device. Once the contents are stored, they are stored for a relatively long time and are mainly used for reading and using, or for storing set values that should not be erased even when the power is turned off. It is a device useful as a memory.

차량에서는, 고장/진단/학습 데이터와 같이 차량 진단 및 운행을 위한 데이터를 차량에 내장된 EEPROM에 저장하며, 이러한 EEPROM에 저장된 데이터를 이용해 고장의 원인을 파악하고 차량을 최적의 상태로 주행할 수 있도록 제어한다.In a vehicle, data for vehicle diagnosis and operation, such as failure/diagnosis/learning data, are stored in the EEPROM built into the vehicle. control so that

EEPROM Emulation은 저장하고자 하는 데이터를 일정한 크기로 나누어 ID를 부여하고 이를 EEPROM에 저장하는 기술로서, EEPROM을 일정 수의 블록으로 나누어 각 블록에 ID가 부여된 데이터를 차례로 저장하되, 마지막 블록까지 저장이 이루어진 경우에는 이전 블록에서의 현재 저장된 데이터를 복사하여 마지막 블록으로 이동시킨 후, 이전 블록을 삭제하여 계속적으로 변경된 데이터를 저장하는 방식을 이용해 EEPROM에 데이터를 기록 또는 저장한다. 그러나 EEPROM은 이와 같이 데이터를 삭제하기 위한 Erase Cycle의 수에 제한이 있으며, 따라서 데이터가 빈번하게 변경되는 경우에는 계속해서 새로운 블록이 저장 및 삭제되므로 Erase Cycle이 계속해서 증가하게 되어 EEPROM의 내구도가 빠르게 감소하는 문제점이 있다.EEPROM emulation is a technology that divides the data to be saved into a certain size, assigns an ID, and stores it in the EEPROM. In this case, the currently stored data in the previous block is copied and moved to the last block, and then data is written or stored in the EEPROM by deleting the previous block to store the continuously changed data. However, EEPROM has a limit in the number of Erase Cycles for erasing data. Therefore, when data is frequently changed, new blocks are continuously stored and deleted, so the Erase Cycle continues to increase, which increases the durability of the EEPROM. There is a problem with decreasing.

종래에는 도 1에서와 같이 새로 저장하고자 하는 블록의 데이터와 현재 사용중인 블록의 데이터를 비교하여(S110-S130), 동일한 경우에는 현재 사용중인 블록의 데이터를 그대로 사용하고(S140), 동일하지 않은 경우에만 새로 저장하고자 하는 블록을 EEPROM에 기록(S150)하는 방법을 통해 Erase Cycle의 수를 줄이고자 하였다.In the related art, as in FIG. 1 , data of a block to be newly stored is compared with data of a block currently in use (S110-S130), and in the case of the same, data of a block currently being used is used as it is (S140), In this case, the number of erase cycles was reduced by writing a new block to the EEPROM (S150).

그러나, 종래 기술의 경우에는 블록 단위로 데이터를 비교하여 처리함에 따라 과거 사용했던 블록 중 새로 저장하고자 하는 블록과 동일한 블록이 존재하는 경우라도 이를 활용하지 못하므로 Erase Cycle의 수를 줄이는 것에 한계가 있다.However, in the case of the prior art, as data is compared and processed in block units, even if there is a block identical to the block to be newly stored among the blocks used in the past, it cannot be utilized, so there is a limit in reducing the number of erase cycles. .

대한민국 등록특허공보 제10-1826778호 (2018.02.01)Republic of Korea Patent Publication No. 10-1826778 (2018.02.01)

본 발명은 EEPROM의 Erase Cycle의 수를 감소시켜 EEPROM의 재사용 가능 회수를 증가시키는 것이 가능한 EEPROM 제어 장치 및 방법을 제공하는 것을 목적으로 한다. An object of the present invention is to provide an EEPROM control apparatus and method capable of increasing the reusable number of EEPROMs by reducing the number of EEPROM Erase Cycles.

본 발명은, 복수 개의 데이터 블록으로 구성된 메모리부; 및 상기 데이터 블록에 데이터를 기록하고, 새로운 데이터 블록의 기록시 기존에 상기 메모리부에 저장되어 있는 데이터 블록의 일부 비트를 일방향으로 수정하는 비트 업데이트를 수행하도록 상기 메모리부를 제어하는 제어부;를 포함하는 EEPROM 제어 장치를 제공한다. The present invention provides a memory unit comprising a plurality of data blocks; and a control unit that writes data to the data block and controls the memory unit to perform a bit update that unidirectionally corrects some bits of a data block previously stored in the memory unit when a new data block is written. Provides an EEPROM control device.

일 실시예에 있어서, 상기 제어부는, 상기 새로운 데이터 블록과 동일한 ID필드를 갖는 현재 사용 중인 데이터 블록의 DATA필드의 일부 비트를 비트 업데이트할 수 있다. In an embodiment, the controller may bit update some bits of a DATA field of a data block currently being used having the same ID field as that of the new data block.

또한, 상기 제어부는, 상기 새로운 데이터 블록과 동일한 ID 필드를 갖는 삭제 표시된 데이터 블록의 DATA필드의 일부 비트를 비트 업데이트할 수 있다.Also, the controller may bit update some bits of a DATA field of a data block marked for deletion having the same ID field as that of the new data block.

또한, 상기 데이터 블록은, ID필드, STATUS필드, SIZE필드 및 DATA필드를 포함할 수 있다. Also, the data block may include an ID field, a STATUS field, a SIZE field, and a DATA field.

또한, 상기 제어부는, 상기 새로운 데이터 블록과 동일한 ID필드를 갖는 데이터 블록이 없는 경우, 상기 새로운 데이터 블록을 새로 저장할 수 있다. Also, when there is no data block having the same ID field as that of the new data block, the controller may newly store the new data block.

일 실시예에 있어서, 상기 제어부는, 상기 새로운 데이터 블록과 동일한 ID필드와 동일한 DATA필드를 갖는 삭제 표시된 데이터 블록이 존재하는 경우, 상기 삭제 표시된 데이터 블록의 STATUS필드를 변경하여 재사용할 수 있다. In an embodiment, when there is a data block marked for deletion having the same ID field and the same DATA field as the new data block, the controller may change the STATUS field of the data block marked for deletion and reuse it.

또한, 상기 제어부는, 상기 새로운 데이터 블록과 동일한 ID필드를 갖는 삭제 표시된 데이터 블록이 존재하나, 상기 삭제 표시된 데이터 블록에 대한 상기 비트 업데이트 또는 상기 STATUS필드를 변경하여 재사용할 수 없는 경우, 상기 새로운 데이터 블록을 새로 저장할 수 있다.In addition, if there is a data block marked for deletion having the same ID field as the new data block, but cannot be reused by updating the bit for the data block marked for deletion or changing the STATUS field, the new data block A new block can be saved.

또한, 본 발명은, EEPROM의 데이터 기록을 위한 EEPROM 제어 방법에 있어서, (a) ID필드 별로 새로 저장할 데이터 블록과 메모리에 저장된 데이터 블록의 ID필드를 비교하는 단계; (b) 현재 사용 중인 데이터 블록 또는 삭제 표시된 데이터 블록에 대한 비트 업데이트가 가능한지 판단하는 단계; 및 (c) 상기 비트 업데이트가 가능한 경우 상기 현재 사용 중인 데이터 블록 또는 상기 삭제 표시된 데이터 블록에 대해 상기 비트 업데이트를 수행하는 단계;를 포함하는 EEPROM 제어 방법을 제공한다. The present invention also provides an EEPROM control method for writing EEPROM data, comprising: (a) comparing an ID field of a data block stored in a memory with a data block to be newly stored for each ID field; (b) determining whether a bit update is possible for a currently used data block or a data block marked for deletion; and (c) performing the bit update on the currently used data block or the data block marked for deletion when the bit update is possible.

일 실시예에 있어서, 상기 (c) 단계는, 상기 비트 업데이트는 상기 데이터 블록의 적어도 일부 비트를 일 방향으로 수정할 수 있다. In an embodiment, in step (c), the bit update may modify at least some bits of the data block in one direction.

또한, 상기 (c) 단계에서, 상기 현재 사용 중인 데이터 블록에 대한 상기 비트 업데이트가 가능한 경우, 상기 현재 사용 중인 데이트 블록의 DATA필드만 상기 비트 업데이트를 수행할 수 있다. In addition, in the step (c), when the bit update of the currently used data block is possible, only the DATA field of the currently used data block may perform the bit update.

또한, 상기 (c) 단계에서, 상기 삭제 표시된 데이터 블록에 대한 상기 비트 업데이트가 가능한 경우, 상기 삭제 표시된 데이터 블록의 STATUS필드를 변경하고 DATA필드에 대하여 상기 비트 업데이트를 수행할 수 있다. Also, in step (c), when the bit update for the data block marked for deletion is possible, the STATUS field of the data block marked for deletion may be changed and the bit update may be performed on the DATA field.

일 실시예에 있어서, 상기 방법은, (d) 상기 현재 사용 중인 데이터 블록에 대한 상기 비트 업데이트가 불가한 경우, 상기 삭제 표시된 데이터 블록 중 ID필드와 DATA필드가 동일한 데이터 블록이 존재하면 STATUS필드를 변경하여 상기 삭제 표시된 데이터 블록을 재사용하는 단계;를 더 포함할 수 있다.In one embodiment, the method comprises: (d) when it is impossible to update the bit for the currently used data block, if there is a data block having the same ID field and the DATA field among the data blocks marked for deletion, the STATUS field is set It may further include; reusing the data block marked for deletion by changing it.

본 발명에 따르면, EEPROM의 데이터를 삭제하고 저장할 때, 각 데이터의 비트를 확인하여 데이터 비트 단위로 관리하는 방식으로 EEPROM의 데이터를 업데이트함에 따라 EEPROM의 Erase Cycle 수를 감소시킴으로써 EEPROM의 재사용 회수를 증가시키는 효과가 있다. According to the present invention, when EEPROM data is deleted and stored, the number of EEPROM reuse is increased by reducing the number of EEPROM Erase Cycles as the EEPROM data is updated in a way that each data bit is checked and managed in units of data bits. has the effect of making

도 1은 종래 기술에 따른 EEPROM Emulation기능을 이용한 데이터 기록 방법을 나타낸 도면이다.
도 2는 본 발명의 바람직한 실시예에 따른 EEPROM 제어 장치의 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 EEPROM 제어 장치가 포함하는 메모리부의 구성을 나타낸 도면이다.
도 4와 도 5는 본 발명의 바람직한 실시예에 따른 EEPROM 제어 장치에 있어서, 데이터 블록의 처리를 예시적으로 나타낸 도면이다.
도 6은 본 발명의 바람직한 실시예에 따른 EEPROM 제어 방법에 따라 데이터를 기록하는 방법을 설명하는 도면이다.
1 is a diagram showing a data recording method using an EEPROM emulation function according to the prior art.
2 is a diagram showing the configuration of an EEPROM control device according to a preferred embodiment of the present invention.
3 is a diagram illustrating a configuration of a memory unit included in an EEPROM control apparatus according to an embodiment of the present invention.
4 and 5 are diagrams exemplarily illustrating processing of data blocks in an EEPROM control apparatus according to a preferred embodiment of the present invention.
6 is a view for explaining a method of writing data according to an EEPROM control method according to a preferred embodiment of the present invention.

이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. First, in adding reference numerals to the components of each drawing, it should be noted that the same components are given the same reference numerals as much as possible even though they are indicated on different drawings. In addition, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, preferred embodiments of the present invention will be described below, but the technical spirit of the present invention is not limited thereto and may be variously implemented by those skilled in the art without being limited thereto.

도 2는 본 발명의 바람직한 실시예에 따른 EEPROM 제어 장치의 구성을 나타낸 도면이고, 도 3은 본 발명의 일 실시 예에 따른 EEPROM 제어 장치가 포함하는 메모리부의 구성을 나타낸 도면이다.2 is a diagram showing the configuration of an EEPROM control device according to a preferred embodiment of the present invention, and FIG. 3 is a diagram showing the configuration of a memory unit included in the EEPROM control device according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시 예에 따른 EEPROM 제어장치(10)는 메모리부(100) 및 제어부(200)를 포함할 수 있다.Referring to FIG. 2 , the EEPROM control apparatus 10 according to an embodiment of the present invention may include a memory unit 100 and a control unit 200 .

일 실시예에 있어서, 메모리부(100)는 데이터가 저장되는 복수개의 데이터 블록으로 구성되며, 바람직하게는 EEPROM(Electrically Erasable Programmable Read Only Memory)일 수 있다.In an embodiment, the memory unit 100 is configured of a plurality of data blocks in which data is stored, and may preferably be an Electrically Erasable Programmable Read Only Memory (EEPROM).

도 3을 참조하면, 메모리부(100)를 구성하는 데이터 블록은, 각 데이터 블록을 식별하고 관리하기 위한 ID정보가 저장되는 ID필드(110), 블록의 사용 상태에 대한 정보가 저장되는 STATUS필드(120), 데이터의 크기 정보가 저장되는 SIZE필드(130) 및 데이터가 저장되는 DATA필드(140)를 포함할 수 있다.Referring to FIG. 3 , the data blocks constituting the memory unit 100 include an ID field 110 in which ID information for identifying and managing each data block is stored, and a STATUS field in which information on the usage state of the block is stored. ( 120 ), a SIZE field 130 in which size information of data is stored and a DATA field 140 in which data is stored may be included.

제어부(200)는, 저장하고자 하는 데이터를 메모리부(100)에 저장할 때, 데이터를 소정의 크기로 나누어 ID를 부여하여 ID필드(110)에 ID를 저장하도록 하고, 데이터의 크기 정보를 SIZE필드(130)에, 데이터는 DATA필드(140)에 저장하도록 한다. 이 때, 제어부(200)는 메모리부(100)를 일정한 블록으로 구분하여 데이터를 저장한다. 이러한 제어부(200)의 기능을 "EEPROM Emuation"이라고 칭한다. When the data to be stored is stored in the memory unit 100, the control unit 200 divides the data into a predetermined size and assigns an ID to store the ID in the ID field 110, and sets the size information of the data in the SIZE field. At 130 , data is stored in the DATA field 140 . At this time, the control unit 200 divides the memory unit 100 into predetermined blocks and stores data. This function of the control unit 200 is referred to as "EEPROM Emuation".

일 실시예에 있어서, STATUS 필드(120)는 제어부(200)에 의해 각 데이터 블록의 상태가 변함에 따라 변경되는 비트 값으로, 각 데이터 블록이 현재 저장되어 사용 중인지, 혹은 삭제 표시되어 있는 상태인지, 혹은 재사용 중인 상태인지 여부를 나타내는 정보일 수 있다.In an embodiment, the STATUS field 120 is a bit value that is changed as the state of each data block is changed by the controller 200, and indicates whether each data block is currently stored and in use or marked for deletion. , or information indicating whether the state is being reused.

제어부(200)는 사용 중이던 데이터 블록이 삭제 표시되거나, 또는 삭제 표시된 데이터 블록이 재사용될 때 마다 STATUS필드(120)의 상태값을 변경함으로써 현재 사용 상태에 따라 STATUS필드(120)의 값을 갱신할 수 있다.The control unit 200 updates the value of the STATUS field 120 according to the current use state by changing the state value of the STATUS field 120 whenever a data block in use is marked for deletion or a data block marked for deletion is reused. can

예를 들어, STATUS필드(120)의 크기가 1byte(8bit)라고 가정하면, 처음 데이터 블록이 저장될 때 STATUS필드(120)의 비트 값은 00000000(이후, 설명의 편의를 위해 '0b'로 표시)으로 저장될 수 있다. 이후 다른 데이터 블록을 사용함에 따라 현재 사용 중인 데이터 블록을 삭제 표시해야 하는 경우, 상기 처음 저장되어 현재 사용 중인 데이터 블록의 STATUS필드(120)는 비트 값 중 하나가 0에서 1로 변경되어 00000001(이후, 설명의 편의를 위해 '1b'로 표시)의 값을 가질 수 있다. 또한 이와 같이 삭제 표시되어 있는 데이터 블록을 재사용하는 경우, 다시 해당 데이터 블록의 STATUS필드(120)의 비트값 중 하나를 0에서 1로 변경하며, 이 때 해당 데이터 블록의 STATUS필드(120)는 00000011(이후, 설명의 편의를 위해 '11b'로 표시)의 비트 값을 가질 수 있다. 마찬가지 방식으로, STATUS필드(120)값이 '11b'인 데이터 블록을 다시 삭제 표시하는 경우라면, STATUS필드(120)의 비트값 중 하나를 0에서 1로 변경하며, 이 때 해당 데이터 블록의 STATUS필드(120)는 00000111(이후, 설명의 편의를 위해 '111b'로 표시)의 비트 값을 가질 수 있다.For example, assuming that the size of the STATUS field 120 is 1 byte (8 bits), when the first data block is stored, the bit value of the STATUS field 120 is 00000000 (hereinafter, '0b' is displayed for convenience of explanation). ) can be stored as If the data block currently in use needs to be marked for deletion as another data block is used thereafter, one of the bit values in the STATUS field 120 of the first stored and currently used data block is changed from 0 to 1 to 00000001 (after , may have a value of '1b') for convenience of description. Also, when a data block marked for deletion is reused in this way, one of the bit values of the STATUS field 120 of the corresponding data block is changed from 0 to 1, and at this time, the STATUS field 120 of the corresponding data block is set to 00000011 (hereinafter, denoted as '11b' for convenience of description) may have a bit value. In the same way, if the data block with the STATUS field 120 value of '11b' is marked for deletion again, one of the bit values of the STATUS field 120 is changed from 0 to 1, and at this time, the STATUS of the corresponding data block is changed. The field 120 may have a bit value of 00000111 (hereinafter, referred to as '111b' for convenience of description).

이와 같이, 각 데이터 블록이 새로 저장되는 경우 STATUS필드(120)는 0의 비트 값을 가지고, 이후 상태가 변경(삭제 표시 또는 재사용)되는 경우 비트 값 중 하나를 0에서 1로 변경하므로, 각 데이터 블록의 STATUS필드(120)는 블록이 현재 사용 또는 재사용 중인 데이터 블록의 경우에는 짝수 개, 현재 삭제 표시되어 있는 블록의 경우 홀수 개의 1을 비트 값으로 가질 수 있다. 즉, 각 데이터 블록의 STATUS필드(120)에 포함된 1의 개수에 따라서 해당 데이터 블록이 현재 사용 중인 상태인지, 혹은 삭제 표시된 상태인지 판단할 수 있는 것이다.As such, when each data block is newly stored, the STATUS field 120 has a bit value of 0, and when the state is changed (deleted or reused), one of the bit values is changed from 0 to 1, so each data The STATUS field 120 of the block may have an even number of 1's as bit values in the case of a data block currently being used or reused by the block, and an odd number of 1's in the case of a block currently marked for deletion. That is, according to the number of 1s included in the STATUS field 120 of each data block, it is possible to determine whether the corresponding data block is currently in use or marked for deletion.

한편, 전술한 STATUS필드(120)의 크기(1byte) 및 각 단계에서 변경되는 비트의 위치는 예시를 위한 것일 뿐 반드시 전술한 실시 예에 한정되는 것은 아님은 물론이다.Meanwhile, the size (1 byte) of the above-described STATUS field 120 and the positions of bits changed in each step are for illustration only and are not necessarily limited to the above-described embodiment.

다시, 도 2에 대한 설명으로 돌아가도록 한다.Again, let us return to the description of FIG. 2 .

제어부(200)는 논리연산을 수행함과 동시에 메모리부(100)의 전반적인 동작을 제어하며, 특히 데이터 블록에 데이터를 기록 및 저장하고 삭제 표시된 데이터 블록 중 재사용 가능한 데이터 블록이 있는지 여부를 판단하여 재사용 가능한 데이터 블록이 있는 경우 이를 재사용하도록 메모리부(100)를 제어할 수 있다. The control unit 200 performs logical operations and simultaneously controls the overall operation of the memory unit 100, records and stores data in data blocks, and determines whether there are reusable data blocks among data blocks marked for deletion. If there is a data block, the memory unit 100 may be controlled to reuse it.

더 나아가, 본 발명에 있어서는, 제어부(200)는 데이터 블록의 동일 여부를 판단하여 재사용 가능 여부를 판단할 뿐만 아니라, 데이터 블록의 각 비트(bit)를 비교하여 특정 비트를 수정함으로써 기존 데이터 블록을 부분 수정(이하의 설명에서는 '비트 업데이트'라 칭함)하여 재사용하도록 메모리부(100)를 제어할 수 있다. Furthermore, in the present invention, the control unit 200 not only determines whether the data blocks are the same to determine whether they can be reused, but also compares each bit of the data block and corrects a specific bit by modifying the existing data block. The memory unit 100 may be controlled to be reused by partially modifying (referred to as 'bit update' in the following description).

비트 업데이트를 좀 더 상세히 설명한다. Bit updates are described in more detail.

EEPROM의 경우, 블록 단위로 데이터를 처리하는데, 비트 단위로 일방향성을 갖는 수정도 가능하다. 예를 들면, 비트 정보 중 '0'을 '1'로 변경하는 것은 가능하고 '1'을 '0으로 변경하는 것은 가능하지 않을 수 있다. 경우에 따라서는, 비트 정보 중 '1'을 '0'으로 변경하는 것은 가능하고 '0'을 '1로 변경하는 것은 가능하지 않을 수 있다.In the case of EEPROM, data is processed in units of blocks, and unidirectional modification is possible in units of bits. For example, it may be possible to change '0' to '1' in bit information, but it may not be possible to change '1' to '0'. In some cases, it may be possible to change '1' to '0' in bit information, but it may not be possible to change '0' to '1'.

본 발명의 설명에 있어서는, '0→1'의 변경은 가능하고, '1→0'의 변경은 가능하지 않은 것으로 가정한다. In the description of the present invention, it is assumed that change of '0→1' is possible and change of '1→0' is not possible.

만약, 현재 데이터가 '0011b'인 경우, 새로 저장할 데이터가 '1011b'이라면, 현재 데이터 중 앞의 첫 자리만 '0'에서 '1'로 변경하여 '1011b'로 저장할 수 있다. 이것이 앞서 설명한 비트 업데이트이다. 이를 논리식으로 표현하면, 기존 DATA를 DATA1이라 하고, 새로운 DATA를 DATA2라 할 때, "(DATA1 xor DATA2)&(DATA1)==0"인 경우에 비트 업데이트를 할 수 있다. If the current data is '0011b' and the data to be newly stored is '1011b', only the first first digit of the current data may be changed from '0' to '1' and stored as '1011b'. This is the bit update described earlier. If this is expressed as a logical expression, when the existing DATA is DATA1 and the new DATA is DATA2, bit update can be performed in the case of "(DATA1 xor DATA2)&(DATA1)==0".

비트 업데이트를 사용하면, 기존 데이터 블록의 일부 비트를 수정할 수 있는 경우에는 기존 데이터 블록을 삭제 표시하고 새로운 데이터 블록을 저장하는 것이 아니라, 기존 데이터 블록의 일부 비트를 비트 업데이트를 통해 일부 수정하여 재사용할 수 있음에 따라 데이터 재사용성을 더욱 향상시킬 수 있다. With bit updates, if some bits of an existing data block can be modified, some bits of an existing data block can be partially modified and reused through bit updates, rather than erasing the existing data block and storing a new data block. As a result, data reusability can be further improved.

도 4와 도 5는 본 발명의 바람직한 실시예에 따른 EEPROM 제어 장치에 있어서, 데이터 블록의 처리를 예시적으로 나타낸 도면이다. 4 and 5 are diagrams exemplarily illustrating processing of data blocks in an EEPROM control apparatus according to a preferred embodiment of the present invention.

도 4의 (a)를 참조하면, 데이터 블록 ID2의 STATUS는 0b로서 현재 사용중인 상태에서, DATA를 '0xF0'에서 'OxF1'로 변경하고자 한다. 이 경우, DATA에서 마지막 자리의 '0'을 '1'로 변경하면 저장하고자 하는 DATA를 만족하며, 앞서 설명한 비트 업데이트가 가능한 상태이다. 따라서, STATUS는 그대로 유지하고, DATA의 마지막 자리를 비트 업데이트하여 현재 데이터로서 저장한다. Referring to (a) of FIG. 4 , the STATUS of the data block ID2 is 0b, and in the currently used state, DATA is to be changed from '0xF0' to 'OxF1'. In this case, if the '0' of the last digit in the DATA is changed to '1', the DATA to be stored is satisfied, and the bit update described above is possible. Therefore, STATUS is maintained as it is, and the last digit of DATA is bit updated and stored as current data.

도 4의 (b)를 참조하면, 도 4의 (a)에 따른 데이터 블록 ID2에 대한 수정이 있은 후, ID2의 DATA를 '0xF1'에서 '0xF0'으로 변경하고자 한다. 이 때 DATA의 마지막 자리인 '1'을 '0'으로 비트 업데이트할 수 없는 상태이다. 따라서, 종전 데이터 블록 ID2를 삭제 표시(STATUS를 '1b'로 수정)하고, ID2를 새로 생성하여 현재 데이터로서 저장한다. Referring to FIG. 4(b), after the data block ID2 of FIG. 4(a) is modified, the DATA of ID2 is to be changed from '0xF1' to '0xF0'. At this time, the last digit of DATA, '1', cannot be bit updated with '0'. Accordingly, the previous data block ID2 is marked for deletion (STATUS is corrected to '1b'), and ID2 is newly generated and stored as current data.

도 4의 (c)는 최초 데이터 블록(100a)과, 도 4의 (a)에 도시된 과정을 거쳐 수정된 1차 수정 데이터 블록(100b)과, 도 4의 (b)에 도시된 과정을 거쳐 재수정된 2차 수정 데이터 블록(100c)을 예시적으로 나타낸다. 최초 데이터 블록(100a)에서 1차 수정 데이터 블록(100b)으로의 변경은 ID2의 데이터 블록의 DATA에 대해 비트 업데이트를 함으로써 수행되었다. 그러나, 1차 수정 데이터 블록(100b)에서 2차 수정 데이터 블록(100c)으로의 변경은 비트 업데이트가 불가하여, 1차 수정 데이터 블록(100b)의 ID2에 대해서는 STATUS를 '1b'로 수정하고 새로운 ID2를 생성하여 저장하였다. FIG. 4(c) shows the initial data block 100a, the first modified data block 100b modified through the process shown in FIG. 4(a), and the process shown in FIG. 4(b). The secondary correction data block 100c that has been re-corrected is illustrated by way of example. The change from the first data block 100a to the first correction data block 100b was performed by bit updating the DATA of the data block of ID2. However, the bit update is not possible in the change from the primary correction data block 100b to the secondary correction data block 100c, so for ID2 of the primary correction data block 100b, the STATUS is corrected to '1b' and a new ID2 was created and saved.

도 5의 (a)는 도 4의 (b)의 상태를 나타낸다. 도 5의 (b)는 STATUS가 0b이고 DATA가 0x0F인 ID2의 데이터 블록의 DATA를 0xF2로 변경하는 것을 나타낸다. DATA를 0xF2로 변경하고자 하는 경우, 종전 데이터의 0x0F에 대하여 비트 업데이트를 수행하여 DATA를 0xF2로 변경할 수 없는 상태이다. Fig. 5 (a) shows the state of Fig. 4 (b). FIG. 5B shows that DATA of the data block of ID2 with STATUS of 0b and DATA of 0x0F is changed to 0xF2. If DATA is to be changed to 0xF2, bit update is performed on 0x0F of the previous data and the DATA cannot be changed to 0xF2.

이 경우, DATA를 0xF2로 하는 새로운 데이터를 생성하여 저장할 수도 있으나, 도 5의 (b)에서는 기존에 삭제 표시된 데이터 중에 DATA가 0xF1인 것이 있으므로, 삭제 표시된 데이터를 비트 업데이트하여 재사용할 수 있다. In this case, new data having DATA of 0xF2 may be created and stored. However, in FIG. 5(b), since some of the previously marked data for deletion have DATA of 0xF1, the data marked for deletion may be bit updated and reused.

즉, 종전에 삭제 표시된 0xF1 DATA를 갖는 블록의 STATUS를 현재 데이터로 변경(예를 들면, 11b로 변경)하고 비트 업데이트하여 현재 데이터로서 저장하고, 종전 데이터는 STATUS를 변경하여 삭제 표시한다. That is, the STATUS of the block having 0xF1 DATA previously marked for deletion is changed to the current data (eg, changed to 11b), the bit is updated and stored as current data, and the previous data is marked for deletion by changing the STATUS.

도 5의 (c)는 도 5의 (a)에 도시된 2차 수정 데이터 블록(100c)과, 도 5의 (b)에 도시된 과정을 거쳐 또 다시 수정된 3차 수정 데이터 블록(100d)을 예시적으로 나타낸다. FIG. 5(c) shows the secondary correction data block 100c shown in FIG. 5(a) and the tertiary correction data block 100d modified again through the process shown in FIG. 5(b). is exemplarily shown.

ID2의 데이터 블록의 DATA를 0xF2로 변경하기 위하여, 2차 수정 데이터 블록(100c)에서 삭제 표시(STATUS 1b)된 ID2의 데이터 블록의 STATUS를 '11b'로 수정하고, DATA에 대해 비트 업데이트하여 OxF2로 수정하였다. 2차 수정 데이터 블록(100c)에서 ID2의 종전 데이터에 대해서는, STATUS를 '1b'로 수정하여 삭제 표시하였다. In order to change the DATA of the data block of ID2 to 0xF2, the STATUS of the data block of ID2 marked for deletion (STATUS 1b) in the secondary modified data block 100c is corrected to '11b', and the bit is updated for DATA to OxF2 was modified to For the previous data of ID2 in the secondary corrected data block 100c, STATUS was corrected to '1b' and marked for deletion.

이러한 본 발명에 따르면, 삭제 표시된 데이터 블록도 비트 업데이트에 활용할 수 있도록 함으로써 Erase cycle 수를 현저히 감소시킬 수 있는 장점이 있다. According to the present invention, there is an advantage in that the number of erase cycles can be significantly reduced by allowing the erase-marked data block to be used for bit update.

도 6은 본 발명의 바람직한 실시예에 따른 EEPROM 제어 방법에 따라 데이터를 기록하는 방법을 설명하는 도면이다. 6 is a view for explaining a method of writing data according to an EEPROM control method according to a preferred embodiment of the present invention.

제어부(200)는 메모리부(100)에 데이터를 저장하는 과정을 시작하면서, 먼저 메모리부(100)에 저장되어 있는 현재 사용 중인 데이터 블록을 검색하고, 이를 새로 저장할 데이터 블록과 비교한다(S200). 제어부(200)는 새로 저장할 데이터블록의 ID필드와 동일한 ID필드를 가진 데이터 블록이 존재하는지를 판단한다(S202).The control unit 200 starts the process of storing data in the memory unit 100, first searches for a currently used data block stored in the memory unit 100, and compares it with a data block to be newly stored (S200) . The control unit 200 determines whether there is a data block having the same ID field as the ID field of the data block to be newly stored (S202).

동일한 ID필드를 가진 데이터 블록이 없는 경우, 새로 저장할 데이터 블록을 마지막에 저장된 데이터 블록의 다음 블록에 순차적으로 저장한다(S204). 이 경우, 기존에 메모리부(100)에 저장되어 있지 않던 새로운 ID에 대한 데이터 블록이 새로이 저장되는 것이므로, 기존의 ID에 대응되어 사용하고 있던 데이터 블록들은 그대로 사용하며 삭제 표시하지 않는다.If there is no data block having the same ID field, the data block to be newly stored is sequentially stored in the next block of the last stored data block (S204). In this case, since the data block for the new ID that has not been previously stored in the memory unit 100 is newly stored, the data blocks used in correspondence with the existing ID are used as they are and are not marked for deletion.

만약 ID가 동일한 데이터 블록이 존재하는 경우에는, 다음으로 동일한 ID를 가지는 데이터 블록 중 현재 사용 중인 데이터 블록과 새로 저장할 데이터 블록의 DATA필드(140)를 비교하여 DATA가 동일한지 여부를 판단한다(S206).If there is a data block having the same ID, it is determined whether the data is the same by comparing the DATA field 140 of the data block currently being used and the data block to be newly stored among the data blocks having the same ID (S206) ).

비교 결과 DATA가 동일한 경우에는, 현재 사용 중인 데이터 블록이 새로 저장할 데이터 블록과 ID 및 DATA가 모두 동일하므로, 새로 저장할 데이터 블록을 별개의 블록에 저장하지 않고 현재 사용 중인 데이터 블록을 계속해서 사용한다(S208).If DATA is the same as a result of comparison, the currently used data block continues to use the currently used data block without storing the new data block in a separate block ( S208).

만약 DATA가 동일하지 않은 경우에는, 현재 사용 중인 데이터 블록의 DATA에 대한 비트 업데이트를 통해 새로 저장할 데이터 블록으로 변경할 수 있는지를 판단한다(S210). 비트 업데이트가 가능한 경우, 현재 사용 중인 데이터 블록의 DATA를 비트 업데이트하여 저장한다(S212).If the DATA is not the same, it is determined whether it can be changed to a data block to be newly stored through bit update of the DATA of the currently used data block ( S210 ). If bit update is possible, the DATA of the currently used data block is bit updated and stored (S212).

비트 업데이트가 가능하지 않은 경우, 새로 저장할 데이터 블록을 삭제 표시된 데이터 블록 중 재사용 가능한 데이터 블록과 비교한다(S214). 재사용 가능한 데이터 블록이란, 삭제 표시된 상태로 메모리부(100)에 저장되어 있는 블록으로서 새로 저장할 데이터 블록과 ID와 동일한 것을 말한다. 또한, 재사용 가능한 데이터 블록은 재사용 횟수가 소진되지 않은 블록일 수 있다. If the bit update is not possible, a data block to be newly stored is compared with a reusable data block among data blocks marked for deletion (S214). The reusable data block is a block stored in the memory unit 100 in a state marked for deletion and is identical to a data block to be newly stored and an ID. Also, the reusable data block may be a block whose reuse count has not been exhausted.

전술한 바와 같이, 본 발명에서는 특정 데이터 블록이 삭제 표시되거나 혹은 재사용됨으로써 사용 상태가 변경되는 경우, 해당 데이터 블록의 STATUS필드(120)의 비트 값 중 하나가 0에서 1로 변경함으로써 현재 데이터 블록의 사용 상태를 나타낼 수 있다. 이와 같이 사용 상태에 따라 비트 값이 0에서 1로 변경되면, 해당 데이터 블록이 몇 회 반복하여 재사용 또는 삭제 표시 된 후(재사용 횟수는 STATUS필드(120)의 크기에 따름)에는 STATUS필드(120)의 모든 비트 값이 1로 변경되어, 더 이상 재사용이 불가능할 수도 있다. 이러한 경우에는 재사용 횟수를 소진한 것이므로, 재사용 가능한 블록으로 판단하지 않는 것이다.As described above, in the present invention, when a specific data block is marked for deletion or reused so that the usage state is changed, one of the bit values of the STATUS field 120 of the corresponding data block is changed from 0 to 1. It can indicate the status of use. In this way, if the bit value is changed from 0 to 1 according to the usage status, after the data block is reused or marked for deletion several times (the number of reuse depends on the size of the STATUS field 120), the STATUS field 120 All bit values of is changed to 1, so reuse may no longer be possible. In this case, since the number of reuse has been exhausted, it is not determined as a reusable block.

S214 단계에서 재사용 가능한 데이터 블록이 존재하고, 새로 저장할 데이터 블록과 동일한 재사용 가능한 데이터 블록이 존재하면, 기존 데이터 블록을 재사용한다(S216). 이 경우 현재 사용 중인 데이터 블록을 삭제 표시함과 동시에 새로 저장할 데이터 블록을 별개의 블록에 저장하지 않고 재사용 가능 데이터 블록의 STATUS필드(120)의 비트 값을 변경하여 재사용한다. If a reusable data block exists in step S214 and a reusable data block identical to the data block to be newly stored exists, the existing data block is reused (S216). In this case, the currently used data block is marked for deletion and the bit value of the STATUS field 120 of the reusable data block is changed and reused without storing the data block to be newly stored in a separate block.

한편, S214 단계에서 재사용 가능한 데이터 블록이 존재하나, 새로 저장할 데이터 블록과 동일하지 않은 경우에는, 재사용 가능한 데이터 블록을 비트 업데이트할 수 있는지 판단한다(S218). On the other hand, if the reusable data block exists in step S214 but is not the same as the data block to be newly stored, it is determined whether the reusable data block can be bit-updated (S218).

비트 업데이트가 가능한 경우에는 재사용 가능한 데이터 블록의 DATA를 비트 업데이트한 후, STATUS필드(120)를 수정하여 저장한다(S220). When bit update is possible, after bit updating the DATA of the reusable data block, the STATUS field 120 is modified and stored (S220).

그러나, 비트 업데이트가 불가능한 경우에는, 새로 저장할 데이터 블록을 저장하는 한편, 현재 사용 중인 데이터 블록을 삭제 표시한다(S222). However, when the bit update is not possible, the data block to be newly stored is stored and the currently used data block is marked for deletion (S222).

이와 같이 본 발명에 따르면 새로 저장할 데이터 블록의 DATA가 현재 사용 중인 데이터 블록의 DATA와 동일하지 않은 경우라도, 삭제 표시된 데이터 블록 중 동일한 DATA를 갖는 데이터 블록이 있는 경우에는 기존 저장되어 있는 데이터 블록의 STATUS필드(120)의 값만을 변경함으로써 비어있는 블록에 새로이 저장하지 않고서도 사용 데이터 블록을 변경할 수 있다. 또한, 현재 사용 중인 데이터 블록에 대하여 비트 업데이트가 가능한 경우, 또는 재사용 가능한 데이터 블록에 대하여 비트 업데이트가 가능한 경우에는 비트 업데이트를 통해 새로 저장할 데이터 블록으로 변경하여 활용할 수 있다. As described above, according to the present invention, even if the data of the data block to be newly stored is not the same as the data of the data block currently being used, if there is a data block having the same data among the data blocks marked for deletion, the STATUS of the previously stored data block By changing only the value of the field 120 , the used data block can be changed without newly stored in an empty block. In addition, when bit update is possible for a data block currently being used or when a bit update is possible for a reusable data block, it can be used by changing a data block to be newly stored through bit update.

이에 따라 본 발명에 따르면, 삭제 표시된 데이터의 재사용과 비트 업데이트를 통해 데이터의 저장 횟수를 줄일 수 있고, 따라서 EEPROM의 Erase Cycle의 수를 줄일 수 있다.Accordingly, according to the present invention, the number of times of data storage can be reduced through reuse of data marked for deletion and bit update, and thus the number of erase cycles of the EEPROM can be reduced.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and various modifications, changes, and substitutions are possible within the range that does not depart from the essential characteristics of the present invention by those of ordinary skill in the art to which the present invention pertains. will be. Accordingly, the embodiments disclosed in the present invention and the accompanying drawings are for explaining, not limiting, the technical spirit of the present invention, and the scope of the technical spirit of the present invention is not limited by these embodiments and the accompanying drawings. . The protection scope of the present invention should be construed by the following claims, and all technical ideas within the equivalent range should be construed as being included in the scope of the present invention.

10 : EEPROM 제어 장치
100 : 메모리부
200 : 제어부
110 : ID필드
120 : STATUS필드
130 : SIZE필드
140 : DATA필드
10: EEPROM control unit
100: memory unit
200: control unit
110: ID field
120: STATUS field
130: SIZE field
140: DATA field

Claims (12)

복수 개의 데이터 블록으로 구성된 메모리부; 및
상기 데이터 블록에 데이터를 기록하고, 새로운 데이터 블록의 기록시 기존에 상기 메모리부에 저장되어 있는 데이터 블록의 적어도 일부 비트를 일방향으로 수정하는 비트 업데이트를 수행하도록 상기 메모리부를 제어하는 제어부;
를 포함하고,
상기 제어부는, 상기 새로운 데이터 블록과 동일한 ID 필드를 갖는 삭제 표시된 데이터 블록에 대하여 상기 비트 업데이트가 가능한지 판단하고, 상기 삭제 표시된 데이터 블록에 대하여 상기 비트 업데이트가 가능한 경우 상기 삭제 표시된 데이터 블록에 대하여 STATUS필드를 변경하고 DATA필드의 일부 비트를 비트 업데이트하고,
상기 제어부는, 상기 데이터 블록의 사용 상태가 변경될 경우, 상태가 변경된 데이터 블록의 STATUS필드의 비트 값 중 하나를 0에서 1로 변경하고, STATUS필드의 모든 비트 값이 1로 변경된 경우에는 재사용 불가능한 데이터 블록으로 판단하는 것을 특징으로 하는 EEPROM 제어 장치.
a memory unit composed of a plurality of data blocks; and
a controller that writes data to the data block and controls the memory unit to perform a bit update that unidirectionally corrects at least some bits of a data block previously stored in the memory unit when a new data block is written;
including,
The control unit determines whether the bit update is possible for the data block marked for deletion having the same ID field as the new data block, and when the bit update is possible for the data block marked for deletion, a STATUS field for the data block marked for deletion and bit-updating some bits of the DATA field,
When the usage state of the data block is changed, the control unit changes one of the bit values of the STATUS field of the data block whose state is changed from 0 to 1, and when all bit values of the STATUS field are changed to 1, it cannot be reused. An EEPROM control device, characterized in that it is determined as a data block.
제 1 항에 있어서,
상기 제어부는, 상기 새로운 데이터 블록과 동일한 ID필드를 갖는 현재 사용 중인 데이터 블록의 DATA필드의 일부 비트를 비트 업데이트하는 것을 특징으로 하는 EEPROM 제어 장치.
The method of claim 1,
and the control unit bit-updates some bits of a DATA field of a data block currently being used having the same ID field as that of the new data block.
삭제delete 제 1 항에 있어서,
상기 제어부는, 상기 새로운 데이터 블록과 동일한 ID필드를 갖는 데이터 블록이 없는 경우, 상기 새로운 데이터 블록을 새로 저장하는 것을 특징으로 하는 EEPROM 제어 장치.
The method of claim 1,
and the controller newly stores the new data block when there is no data block having the same ID field as the new data block.
삭제delete 제 1 항, 제 2 항 및 제 4 항 중 어느 한 항에 있어서,
상기 제어부는, 상기 새로운 데이터 블록과 동일한 ID필드와 동일한 DATA필드를 갖는 삭제 표시된 데이터 블록이 존재하는 경우, 상기 삭제 표시된 데이터 블록의 STATUS필드를 변경하여 재사용하는 것을 특징으로 하는 EEPROM 제어 장치.
5. The method of any one of claims 1, 2 and 4,
and the control unit changes and reuses the STATUS field of the data block marked for deletion when there is a data block marked for deletion having the same ID field and the same DATA field as the new data block.
제 6 항에 있어서,
상기 제어부는, 상기 새로운 데이터 블록과 동일한 ID필드를 갖는 삭제 표시된 데이터 블록이 존재하나, 상기 삭제 표시된 데이터 블록에 대한 상기 비트 업데이트 또는 상기 STATUS필드를 변경하여 재사용할 수 없는 경우, 상기 새로운 데이터 블록을 새로 저장하는 것을 특징으로 하는 EEPROM 제어 장치.
7. The method of claim 6,
If there is a data block marked for deletion having the same ID field as the new data block, but cannot be reused by updating the bit for the data block marked for deletion or changing the STATUS field, the new data block EEPROM control device, characterized in that the new storage.
EEPROM의 데이터 기록을 위한 EEPROM 제어 방법에 있어서,
(a) EEPROM 제어 장치가, ID필드 별로 새로 저장할 데이터 블록과 메모리에 저장된 데이터 블록의 ID필드를 비교하는 단계;
(b) 상기 EEPROM 제어 장치가, 현재 사용 중인 데이터 블록 또는 삭제 표시된 데이터 블록에 대하여 적어도 일부 비트를 일방향으로 수정하는 비트 업데이트가 가능한지 판단하는 단계;
(c) 상기 EEPROM 제어 장치가, 상기 비트 업데이트가 가능한 경우 상기 현재 사용 중인 데이터 블록 또는 상기 삭제 표시된 데이터 블록에 대해 상기 비트 업데이트를 수행하는 단계;
를 포함하고,
상기 (c) 단계에서, 상기 삭제 표시된 데이터 블록에 대하여 상기 비트 업데이트가 가능한 경우 상기 삭제 표시된 데이터 블록에 대하여 STATUS필드를 변경하고 DATA필드의 일부 비트를 비트 업데이트하고,
상기 EEPROM 제어 장치가, 상기 데이터 블록의 사용 상태가 변경될 경우, 상태가 변경된 데이터 블록의 STATUS필드의 비트 값 중 하나를 0에서 1로 변경하는 단계; 및
상기 EEPROM 제어 장치가, STATUS필드의 모든 비트 값이 1로 변경된 경우에는 재사용 불가능한 데이터 블록으로 판단하는 단계를 더 포함하는 것을 특징으로 하는 EEPROM 제어 방법.
An EEPROM control method for writing EEPROM data, the method comprising:
(a) comparing, by the EEPROM control apparatus, an ID field of a data block to be newly stored for each ID field with an ID field of a data block stored in a memory;
(b) determining, by the EEPROM control device, whether a bit update that corrects at least some bits in one direction is possible for a data block currently being used or a data block marked for deletion;
(c) performing, by the EEPROM control device, the bit update on the currently used data block or the data block marked for deletion when the bit update is possible;
including,
In step (c), when the bit update is possible for the data block marked for deletion, the STATUS field is changed for the data block marked for deletion and some bits of the DATA field are bit updated;
changing, by the EEPROM control device, one of bit values of the STATUS field of the data block whose state is changed from 0 to 1 when the usage state of the data block is changed; and
and determining, by the EEPROM control device, as a non-reusable data block when all bit values of the STATUS field are changed to 1.
삭제delete 제 8 항에 있어서,
상기 (c) 단계에서, 상기 현재 사용 중인 데이터 블록에 대한 상기 비트 업데이트가 가능한 경우, 상기 현재 사용 중인 데이트 블록의 DATA필드에 대해서만 상기 비트 업데이트를 수행하는 것을 특징으로 하는 EEPROM 제어 방법.
9. The method of claim 8,
In step (c), if the bit update is possible for the currently used data block, the EEPROM control method characterized in that the bit update is performed only on the DATA field of the currently used data block.
삭제delete 제 8 항 및 제 10 항 중 어느 한 항에 있어서,
(d) 상기 EEPROM 제어 장치가, 상기 현재 사용 중인 데이터 블록에 대한 상기 비트 업데이트가 불가한 경우, 상기 삭제 표시된 데이터 블록 중 ID필드와 DATA필드가 동일한 데이터 블록이 존재하면 STATUS필드를 변경하여 상기 삭제 표시된 데이터 블록을 재사용하는 단계;를 더 포함하는 EEPROM 제어 방법.
11. The method of any one of claims 8 and 10,
(d) when the EEPROM control device is unable to update the bit for the currently used data block, if there is a data block having the same ID field and the same DATA field among the data blocks marked for deletion, the STATUS field is changed to delete the data block Reusing the marked data block; EEPROM control method further comprising a.
KR1020190168123A 2019-12-16 2019-12-16 Apparatus and method for controlling eeprom KR102315314B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190168123A KR102315314B1 (en) 2019-12-16 2019-12-16 Apparatus and method for controlling eeprom

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190168123A KR102315314B1 (en) 2019-12-16 2019-12-16 Apparatus and method for controlling eeprom

Publications (2)

Publication Number Publication Date
KR20210076676A KR20210076676A (en) 2021-06-24
KR102315314B1 true KR102315314B1 (en) 2021-10-19

Family

ID=76607481

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190168123A KR102315314B1 (en) 2019-12-16 2019-12-16 Apparatus and method for controlling eeprom

Country Status (1)

Country Link
KR (1) KR102315314B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230086832A (en) 2021-12-08 2023-06-16 현대오토에버 주식회사 Electronic device for emulating eeprom and operating method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004524636A (en) * 2001-04-24 2004-08-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Improved error correction scheme for use in flash memory, allowing bit changes
JP2014081682A (en) 2012-10-12 2014-05-08 Ricoh Co Ltd Electronic equipment, non-volatile memory recording method and program
KR101826778B1 (en) 2016-09-28 2018-03-22 현대오트론 주식회사 EEPROM Emulation Method Considering implementation of Flash Life Cycle and Performance Improvement

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305627A (en) * 1995-04-28 1996-11-22 Matsushita Electric Ind Co Ltd Line memory
KR101720977B1 (en) * 2010-12-07 2017-03-29 현대모비스 주식회사 Non-volatile memory block allocation system and the allocation method
KR20150010717A (en) * 2012-04-27 2015-01-28 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. Shielding a memory device
KR101473837B1 (en) * 2013-05-03 2014-12-18 인하대학교 산학협력단 An Invalid Data Recycling Method for Improving I/O Performance in SSD-based Storage System
KR102142675B1 (en) * 2018-11-02 2020-08-07 현대오트론 주식회사 Apparatus for controlling eeprom and method for writing data using same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004524636A (en) * 2001-04-24 2004-08-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Improved error correction scheme for use in flash memory, allowing bit changes
JP2014081682A (en) 2012-10-12 2014-05-08 Ricoh Co Ltd Electronic equipment, non-volatile memory recording method and program
KR101826778B1 (en) 2016-09-28 2018-03-22 현대오트론 주식회사 EEPROM Emulation Method Considering implementation of Flash Life Cycle and Performance Improvement

Also Published As

Publication number Publication date
KR20210076676A (en) 2021-06-24

Similar Documents

Publication Publication Date Title
US20050281088A1 (en) External storage device
KR100818035B1 (en) Method, system and computer program for data management on storage medium
JP2008537192A (en) How to manage copy operations in flash memory
JP2009512022A (en) Managing flash memory
US9898211B2 (en) Nonvolatile memory control device, nonvolatile memory control method and computer readable storage medium
KR102315314B1 (en) Apparatus and method for controlling eeprom
KR102142675B1 (en) Apparatus for controlling eeprom and method for writing data using same
WO2015155860A1 (en) Information storage device and method for controlling information storage device
JP2007179479A (en) Memory controller and flash memory system
KR100654344B1 (en) Memory device using flash memory and error correction method the same
US10073769B2 (en) Data storage device and data maintenance method thereof
US20110082995A1 (en) Information processing apparatus
KR100998212B1 (en) Method for buffer access of nand flash menory
JP4655034B2 (en) Memory controller, flash memory system, and flash memory control method
KR100661681B1 (en) Device and method for treating a state of a memory
KR101067464B1 (en) File system and data management method
US9465730B2 (en) Flash memory device
TWI416525B (en) Nonvolatile memory apparatus and wear leveling method thereof
JP7317609B2 (en) electronic controller
JP4513782B2 (en) Memory controller, flash memory system, and flash memory control method
JP4866114B2 (en) MEMORY CONTROLLER, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY SYSTEM, AND MEMORY CONTROL METHOD
JP2012248094A (en) Electronic equipment
JP5060088B2 (en) Flash memory control system and control method thereof
JP2006164354A (en) Counter device and counting method
EP1775731B1 (en) Non volatile memory device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant