KR101826778B1 - EEPROM Emulation Method Considering implementation of Flash Life Cycle and Performance Improvement - Google Patents

EEPROM Emulation Method Considering implementation of Flash Life Cycle and Performance Improvement Download PDF

Info

Publication number
KR101826778B1
KR101826778B1 KR1020160124979A KR20160124979A KR101826778B1 KR 101826778 B1 KR101826778 B1 KR 101826778B1 KR 1020160124979 A KR1020160124979 A KR 1020160124979A KR 20160124979 A KR20160124979 A KR 20160124979A KR 101826778 B1 KR101826778 B1 KR 101826778B1
Authority
KR
South Korea
Prior art keywords
data
mapping data
mapping
search
record
Prior art date
Application number
KR1020160124979A
Other languages
Korean (ko)
Inventor
황성서
Original Assignee
현대오트론 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 현대오트론 주식회사 filed Critical 현대오트론 주식회사
Priority to KR1020160124979A priority Critical patent/KR101826778B1/en
Application granted granted Critical
Publication of KR101826778B1 publication Critical patent/KR101826778B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function

Abstract

The present invention relates to a flash memory storage system emulating electrically erasable programmable read-only memory (EEPROM). The flash memory storage system comprises: a data block which includes multiple usage data records and sequentially stores the usage data to the usage data records; a mapping block which sequentially stores mapping data to multiple mapping data records whereas the mapping data records include search speed improving data fields and required access data fields for the access to the usage data records; and a control unit including a search module executing a search operation based on the mapping data included in the search speed improving data fields. The size of each one of the mapping data records can be equal to the minimum read/write size of the flash memory. According to the present invention, the control information is recorded at the same location to sequentially store information for data search in sequential locations and prevent the data being input to the same locations, thereby extending a service life compared to prior arts critically damaging the control block. The present invention also provides an algorithm that enables quick data searching.

Description

플래쉬 라이프 사이클 및 성능 개선을 고려한 EEPROM 에뮬레이션 구현 방법 {EEPROM Emulation Method Considering implementation of Flash Life Cycle and Performance Improvement}[0001] EEPROM Emulation Method Considering Flash Life Cycle and Performance Improvement [

본 발명은 플래쉬 메모리 저장 시스템에 관한 것으로 보다 상세하게는 플래쉬롬을 이용하여 EEPROM(Electrically Erasable Programmable Read-Only Memory)을 대체하는 EEPROM 에뮬레이션 방법에 관한 것이다.The present invention relates to a flash memory storage system, and more particularly, to an EEPROM emulation method replacing an EEPROM (Electrically Erasable Programmable Read-Only Memory) using a flash ROM.

자동차 분야에서는 ECU(Electronic Control Unit) 소프트웨어의 복잡성과 기능 안전 요구사항의 증가로 인해, 많은 양의 데이터를 비휘발성 메모리에 저장하는 기능이 요구되고 있다. 이러한 요구사항의 만족을 위해, 기존의 ECU들은 외장 EEPROM에 데이터를 저장하였으나, 최근에는 마이크로프로세서 내부의 일부 플래시 영역에 데이터를 저장하는 기능을 구현하여, EEPROM의 역할을 대신하는 EEPROM Emulation을 적용하는 추세에 있다. EEPROM Emulation은 EEPROM 소자가 필요하지 않으므로 제품 생산 비용 절감 효과가 있으며, EEPROM에 대한 회로 설계가 필요하지 않으므로 PCB 레이아웃 설계에서의 장점이 있다.Due to the increasing complexity and functional safety requirements of electronic control unit (ECU) software in the automotive sector, the ability to store large amounts of data in nonvolatile memory is required. To satisfy these requirements, existing ECUs store data in an external EEPROM. In recent years, however, EEPROM emulation, which replaces the role of EEPROM, has been implemented by implementing a function of storing data in a certain flash area inside a microprocessor There is a tendency. Since EEPROM emulation does not require an EEPROM device, it has a cost saving effect on the production cost and does not require a circuit design for EEPROM, which is advantageous in PCB layout design.

단, 외부 EEPROM 소자와 달리 Flash ROM을 사용하는 EEPROM Emulation의 경우, 특정 블록 단위로 데이터를 저장하기 때문에 단 하나의 데이터 변경을 요청할 경우에도 해당 블록 내부의 모든 데이터를 재저장한다. 또한, 일반적으로 플래시 메모리의 기록에 대한 수명은 EEPROM보다 작다.However, unlike an external EEPROM device, EEPROM emulation using Flash ROM stores data in a specific block unit. Therefore, even if only one data change is requested, all data in the corresponding block is restored. In addition, the life of the flash memory is generally shorter than that of the EEPROM.

이러한 기술적 특징은 EEPROM Emulation 구현 시, 플래시 영역의 효율적인 사용, 데이터 읽기/쓰기 성능 및 수명의 보장을 고려한 알고리즘을 요구한다.This technical feature requires an algorithm considering efficient use of flash area, data read / write performance, and lifetime in EEPROM emulation implementation.

종래에는 플래쉬 메모리를 다수의 블록으로 나누어 특정블록에는 변경 되지 않는 데이터를 저장하고 특정블록을 제외한 나머지 블록에 순차적으로 변경된 데이터를 저장하였다. Conventionally, the flash memory is divided into a plurality of blocks, and unchanged data is stored in a specific block, and sequentially changed data is stored in the remaining blocks except the specific block.

하지만, 변경된 데이터를 식별하기 위해서는 비트 단위의 비교연산과 복구 연산이 필요하여 성능이 떨어지게 되었다. 뿐만 아니라, 블록의 제어정보를 저장하는 블록은 동일 위치에 제어정보를 기록하기 때문에 다른 블록에 비해 수명이 짧아 수명보장에 치명적이었다.However, in order to identify the changed data, the bit comparison operation and the recovery operation are required and the performance is degraded. In addition, since the block storing the control information of the block records the control information in the same position, its life is short compared to the other blocks, which is fatal for ensuring the life.

한국 등록 특허 번호 1,305,562[등록일: 2013년 9월 2일]Korean Registered Patent No. 1,305,562 [Registered Date: September 2, 2013]

본 발명은 상술한 요구에 부응하기 위하여 안출된 것으로, EEPROM 에뮬레이션 구동에 있어 플래쉬롬의 균등한 사용률과 빠른 탐색을 도와주는 알고리즘을 제공하는데 그 목적이 있다.It is an object of the present invention to provide an algorithm that facilitates the uniform utilization rate and quick search of the flash ROM in the EEPROM emulation driving.

본 발명의 실시예에 따른 EEPROM(Electrically Erasable Programmable Read-Only Memory)을 에뮬레이팅하는 플래쉬 메모리 저장 시스템에 있어서, 복수의 사용 데이터 레코드를 포함하며, 상기 복수의 사용 데이터 레코드에 사용 데이터가 순차적으로 저장되는 데이터블록; 복수의 매핑 데이터 레코드에 매핑 데이터를 순차적으로 저장하는 매핑블록에 있어서, 상기 복수의 매핑 데이터 레코드는 상기 복수의 사용 데이터 레코드에 대한 접근을 위한 필수 접근 데이터필드 및 검색 속도 개선 데이터필드를 포함하는, 상기 매핑 블록; 및 상기 검색 속도 개선 데이터필드에 포함된 매핑 데이터에 기초하여 검색을 수행하는 검색 모듈을 포함하는 제어부를 포함하며, 상기 복수의 매핑 데이터 레코드 각각의 사이즈는 상기 플래쉬 메모리의 최소 읽기/쓰기 사이즈와 동일하도록 구성될 수 있다.A flash memory storage system for emulating an EEPROM (Electrically Erasable Programmable Read-Only Memory) according to an embodiment of the present invention includes a plurality of usage data records, and sequentially stores usage data in the plurality of usage data records ≪ / RTI > A mapping block for sequentially storing mapping data in a plurality of mapping data records, the plurality of mapping data records including a required access data field for access to the plurality of usage data records and a search speed improvement data field, The mapping block; And a search module for performing a search based on the mapping data included in the search speed improvement data field, wherein a size of each of the plurality of mapping data records is equal to a minimum read / write size of the flash memory .

이 경우, 상기 검색 모듈은 상기 매핑 데이터를 포함하는 유효 매핑 데이터 레코드 중 마지막 유효 매핑 데이터 레코드를 찾기 위한 제 1 검색모듈; 및 상기 마지막 유효 매핑 데이터 레코드에 포함된 매핑 데이터에 기초하여 상기 복수의 매핑 데이터 레코드 중 검색대상 아이디(ID) 데이터를 포함하는 검색대상 매핑 데이터 레코드를 찾기 위한 제 2 검색모듈을 포함할 수 있다.In this case, the search module may include a first search module for searching for the last valid mapping data record among the valid mapping data records including the mapping data; And a second search module for searching a search object mapping data record including search object ID data among the plurality of mapping data records based on the mapping data included in the last valid mapping data record.

또한, 상기 제어부는 상기 마지막 유효 매핑 데이터 레코드에 저장된 매핑데이터에 기초하여 상기 데이터블록의 잔존용량을 확인하는 쓰기모듈을 더 포함할 수 있다.The controller may further include a writing module for checking the remaining capacity of the data block based on the mapping data stored in the last valid mapping data record.

또한, 상기 제어부는 상기 검색대상 매핑 데이터 레코드에 대응되는 사용 데이터 레코드를 읽는 읽기모듈을 더 포함할 수 있다.The control unit may further include a reading module for reading a usage data record corresponding to the search object mapping data record.

또한, 상기 필수 접근 데이터필드는 해당 매핑 데이터 레코드의 사용여부를 표시하는 플래그(Flag) 필드, 상기 매핑 데이터를 관리하는 아이디(ID) 필드, 상기 매핑 데이터의 위치를 나타내는 주소 필드, 및 상기 매핑 데이터의 크기 필드를 포함하며, 상기 검색 속도 개선 데이터필드는 상기 해당 매핑 데이터 레코드의 이전 매핑 데이터 레코드의 아이디를 포함하는 프리노드(PreNode)필드를 포함할 수 있다.The essential access data field includes a flag field indicating whether the mapping data record is used, an ID field for managing the mapping data, an address field indicating a location of the mapping data, And the search speed improvement data field may include a prenode field including an ID of a previous mapping data record of the corresponding mapping data record.

한편, 본 발명에 따른 EEPROM(Electrically Erasable Programmable Read-Only Memory) 에뮬레이션 방법은, 플래쉬 메모리; 및 사용 데이터를 상기 플래쉬 메모리에 저장하도록 제어하는 제어부를 구비하는 플래쉬 메모리 저장 시스템에서, According to another aspect of the present invention, there is provided an EEPROM (Electrically Erasable Programmable Read-Only Memory) emulation method including: a flash memory; And a control unit for controlling use data to be stored in the flash memory,

상기 사용 데이터를 데이터블록의 사용 데이터 레코드에 순차적으로 저장하는 사용 데이터 저장 단계; 상기 사용 데이터에 대한 접근을 제공하는 매핑 데이터를 매핑블록의 매핑 데이터 레코드에 순차적으로 저장하는 단계로서, 상기 매핑 데이터 레코드는 필수 접근 데이터필드 및 검색 속도 개선 데이터필드를 포함하는, 매핑 데이터 저장 단계; 및 상기 검색 속도 개선 필드에 포함된 매핑 데이터에 기초하여 검색을 수행하는 검색 단계를 포함하며, 상기 복수의 매핑 데이터 레코드 각각의 사이즈는 상기 플래쉬 메모리의 최소 읽기/쓰기 사이즈와 동일하도록 구성될 수 있다.A use data storing step of sequentially storing the use data in a use data record of a data block; Sequentially storing mapping data providing access to the usage data in a mapping data record of a mapping block, the mapping data record including a required access data field and a retrieval speed improving data field; And a search step of performing a search based on the mapping data included in the search speed improvement field, wherein a size of each of the plurality of mapping data records is equal to a minimum read / write size of the flash memory .

이 경우, 상기 검색 단계는 상기 매핑 데이터를 포함하는 유효 매핑 데이터 레코드 중 마지막 유효 매핑 데이터 레코드를 찾기 위한 단계; 및 상기 마지막 유효 매핑 데이터 레코드에 포함된 매핑 데이터에 기초하여 상기 복수의 매핑 데이터 레코드 중 검색대상 아이디(ID) 데이터를 포함하는 검색대상 매핑 데이터 레코드를 찾는 단계를 포함할 수 있다.In this case, the searching step may include searching for the last valid mapping data record among the effective mapping data records including the mapping data; And searching for a search object mapping data record including search object ID data among the plurality of mapping data records based on the mapping data included in the last valid mapping data record.

또한, 상기 마지막 유효 매핑 데이터 레코드에 저장된 매핑 데이터에 기초하여 상기 데이터블록의 잔존용량을 확인한 후 상기 사용 데이터를 상기 데이터블록에 쓰는(Write) 단계를 더 포함할 수 있다.The method may further include writing the usage data to the data block after checking the remaining capacity of the data block based on the mapping data stored in the last valid mapping data record.

또한, 상기 검색대상 매핑 데이터 레코드에 대응되는 상기 데이터블록의 사용 데이터 레코드를 읽는(Read) 단계를 더 포함할 수 있다.The method may further include reading a use data record of the data block corresponding to the search object mapping data record.

또한, 상기 필수 접근 데이터필드는 해당 매핑 데이터 레코드의 사용여부를 표시하는 플래그(Flag) 필드, 상기 매핑 데이터를 관리하는 아이디(ID) 필드, 상기 매핑 데이터의 위치를 나타내는 주소 필드, 및 상기 매핑 데이터의 크기필드를 포함하며, 상기 검색 속도 개선 데이터필드는 상기 해당 매핑 데이터 레코드의 이전 매핑 데이터 레코드의 아이디를 포함하는 프리노드(PreNode)필드를 포함할 수 있다.The essential access data field includes a flag field indicating whether the mapping data record is used, an ID field for managing the mapping data, an address field indicating a location of the mapping data, And the search speed improvement data field may include a prenode field including an ID of a previous mapping data record of the corresponding mapping data record.

상기한 바와 같이 이루어진 본 발명에 따른 EEPROM을 대체하는 플래쉬 메모리 저장 시스템은, 제어정보를 동일한 위치에 기록하여 제어블록의 수명에 치명적인 기존 방식 대비, 데이터 탐색을 위한 정보를 순차적인 위치에 저장하여 동일 위치에만 데이터가 입력되는 것을 방지함으로써 수명을 연장한다. 또한 탐색알고리즘을 통해 기존 데이터와 비교 없이 데이터를 읽어올 수 있기 때문에 빠른 탐색을 위한 알고리즘을 제공하여 신속하게 데이터를 탐색할 수 있다. 물론 이러한 효과에 의해 본 발명의 범위가 한정되는 것은 아니다.The flash memory storage system that replaces the EEPROM according to the present invention as described above stores information for data search in sequential positions with respect to a conventional method which is critical to the life of the control block by recording control information in the same position, Thereby preventing the data from being inputted only to the position. In addition, since the data can be read without comparing with existing data through the search algorithm, it is possible to search the data quickly by providing an algorithm for fast searching. Of course, the scope of the present invention is not limited by these effects.

도 1은 플래쉬 메모리 저장 시스템에 대한 구성이다.
도 2는 매핑블록의 마지막 레코드 탐색에 대한 순서도 및 그 예시이다.
도 3은 매핑블록에서 원하는 아이디(ID)의 레코드 탐색에 대한 순서도 및 그 예시이다.
도 4는 읽기모듈에 대한 순서도이다.
도 5는 쓰기모듈에 대한 순서도이다.
도 6은 매핑블록의 마지막 레코드 탐색에 대한 수도코드이다.
도 7은 매핑블록에서 원하는 아이디(ID)의 레코드 탐색에 대한 수도코드이다.
도 8은 읽기모듈에 대한 수도코드이다.
도 9는 쓰기모듈에 대한 수도코드이다.
1 is a configuration for a flash memory storage system.
FIG. 2 is a flow chart and an example of the last record search of a mapping block.
3 is a flowchart and an example of a record search of a desired ID (ID) in a mapping block.
Figure 4 is a flow diagram for the read module.
5 is a flow chart for the writing module.
Figure 6 is a numeric code for the last record search of a mapping block.
FIG. 7 is a numeric code for a record search of a desired ID (ID) in a mapping block.
Figure 8 is a numeric code for a read module.
Figure 9 is a numeric code for a write module.

이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있는 것으로, 이하의 실시예는 본 발명의 개시가 완전하도록 하며, 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 또한 설명의 편의를 위하여 도면에서는 구성 요소들의 그 크기가 과장 또는 축소될 수 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be understood, however, that the invention is not limited to the disclosed embodiments, but may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, Is provided to fully inform the user. Also, for convenience of explanation, the size of the components in the drawings may be exaggerated or reduced.

그러나, 이하의 실시예는 이 기술분야에서 통상적인 지식을 가진 자에게 본 발명이 충분히 이해되도록 제공되는 것으로서 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 기술되는 실시예에 한정되는 것은 아니다.However, it should be understood that the following embodiments are provided so that those skilled in the art will be able to fully understand the present invention, and that various modifications may be made without departing from the scope of the present invention. It is not.

도 1은 플래쉬 메모리 저장 시스템에 대한 구성이다.1 is a configuration for a flash memory storage system.

도 1을 참조하면, 본 발명의 일 실시예에 따른 EEPROM을 대체하는 플래쉬 메모리 저장 시스템은 데이터블록(100), 매핑블록(200), 제어부를 포함하며 플래쉬 메모리를 이용하여 EEPROM을 대체할 수 있다.Referring to FIG. 1, a flash memory storage system that replaces an EEPROM according to an embodiment of the present invention includes a data block 100, a mapping block 200, and a controller, and can replace an EEPROM using a flash memory .

데이터블록(100)은 사용 데이터 레코드(102)를 포함한다. 또한 사용 데이터가 순차적으로 저장되어, 모든 블록영역의 라이프 사이클을 동일하게 유지할 수 있고, 저장되는 데이터는 아이디(ID, 205)로 관리된다. 다만, 데이터블록(100)만으로 각 아이디(205)별 저장된 데이터를 판단하지 않고 매핑블록(200)의 정보를 이용하여 데이터를 판단한다. The data block 100 includes a usage data record 102. In addition, the usage data is stored sequentially so that the life cycles of all the block areas can be kept the same, and the stored data is managed by the ID (ID 205). However, data is determined using the information of the mapping block 200 without judging the data stored for each ID 205 using only the data block 100.

한편, 전체 필드의 크기는 플래쉬 메모리 입력 최소단위의 배수가 될 수 있다.On the other hand, the size of the entire field can be a multiple of the minimum unit of the flash memory input.

매핑블록(200)은 필수 접근 데이터필드(202)와 검색 속도 개선 데이터필드(203)를 포함한다. 또한 매핑 데이터 레코드(201)를 포함하며 매핑 데이터(201)를 순차적으로 저장하여, 모든 블록영역의 라이프 사이클을 동일하게 유지할 수 있다. The mapping block 200 includes a mandatory access data field 202 and a search speed improvement data field 203. Also, the mapping data 201 including the mapping data records 201 are sequentially stored, so that the life cycles of all the block areas can be maintained at the same level.

필수 접근 데이터필드(202)는 해당 매핑 데이터 레코드(201)의 사용여부를 표시하는 플래그(Flag) 필드(204), 매핑 데이터를 관리하는 아이디(ID) 필드(205), 매핑 데이터의 위치를 나타내는 주소 필드(206), 및 매핑 데이터의 크기를 의미하는 크기 필드(207)를 포함한다.The essential access data field 202 includes a flag field 204 for indicating whether or not the corresponding mapping data record 201 is used, an ID field 205 for managing mapping data, An address field 206, and a size field 207 indicating the size of the mapping data.

예컨대, 플래그 필드(204)는 해당 레코드의 레코드가 사용되고 있으면 TRUE, 사용되고 있지 않으면 FALSE로 표시할 수 있다.For example, the flag field 204 may indicate TRUE if the record of the record is being used, or FALSE if it is not used.

한편, 복수의 매핑 데이터 레코드(201) 각각의 사이즈는 플래쉬 메모리의 최소 읽기/쓰기 사이즈와 동일하도록 구성될 수 있다.On the other hand, the size of each of the plurality of mapping data records 201 may be configured to be equal to the minimum read / write size of the flash memory.

검색 속도 개선 데이터 필드(203)는 프리노드(PreNode, 208) 필드를 포함한다.The search speed improvement data field 203 includes a prenode (208) field.

프리노드 필드(208)는 잉여공간에 해당 매핑 데이터 레코드(201)의 이전 매핑 데이터 레코드(201)의 아이디(205)의 정보를 포함한다. 예컨대, 최소단위가 클 경우에 낭비되는 공간을 활용하여 탐색시간을 단축하기 위해 사용될 수 있다.The free node field 208 contains information of the ID 205 of the previous mapping data record 201 of the mapping data record 201 in the redundant space. For example, it can be used to shorten the search time by utilizing a wasted space when the minimum unit is large.

제어부는 검색모듈, 쓰기모듈(640), 읽기모듈(540)을 포함한다.The control unit includes a search module, a write module 640, and a read module 540.

검색 모듈은 검색 속도 개선 데이터필드(203)에 포함된 매핑 데이터(201)에 기초하여 검색을 수행하며, 매핑 데이터(201)를 포함하는 유효 매핑 데이터 레코드(210) 중 마지막 유효 매핑 데이터 레코드(210)를 찾기 위한 제 1 검색모듈(360) 및 마지막 유효 매핑 데이터 레코드(210)에 포함된 매핑 데이터에 기초하여 복수의 매핑 데이터 레코드 중 검색대상 아이디(ID, 205) 데이터를 포함하는 검색대상 매핑 데이터 레코드를 찾기 위한 제 2 검색모듈(460)을 포함한다.The search module performs a search based on the mapping data 201 included in the search speed improvement data field 203 and searches for the last valid mapping data record 210 of the effective mapping data records 210 including the mapping data 201 (ID) data 205 among the plurality of mapping data records based on the mapping data included in the first validation mapping data record 210 and the first search module 360 for searching the last valid mapping data record 210. [ And a second search module 460 for finding records.

쓰기모듈(640)은 마지막 유효 매핑 데이터 레코드(210)에 저장된 매핑 데이터(201)에 기초하여 데이터블록(100)의 잔존용량을 확인할 수 있다.Write module 640 may check the remaining capacity of the data block 100 based on the mapping data 201 stored in the last valid mapping data record 210. [

읽기모듈(540)은 검색대상 매핑 데이터 레코드(201)에 대응되는 사용 데이터 레코드를 읽을 수 있다.The read module 540 may read the usage data record corresponding to the search object mapping data record 201. [

한편, 본 발명은 데이터 탐색을 위한 정보를 순차적인 위치에 저장함으로써 동일 위치에만 입력하는 것을 방지하여 라이프 사이클을 관리할 수 있으며, 탐색 알고리즘의 적용을 통해 기존 데이터와 비교 없이 데이터를 읽어올 수 있다. 더불어 플래쉬 메모리 입력단위에 대한 손실을 역으로 탐색 성능 개선방안으로 활용하였다.Meanwhile, according to the present invention, information for searching for data can be stored in sequential positions, thereby preventing entry of data at the same position, thereby managing the life cycle and reading data without comparison with existing data through application of a search algorithm . In addition, loss of flash memory input unit is used as a way to improve the search performance.

도 2는 매핑블록(200)의 마지막 레코드 탐색에 대한 순서도 및 그 예시이다.FIG. 2 is a flowchart and an example of the last record search of the mapping block 200.

도 2를 참조하면, 마지막 유효 레코드(270)를 찾기 위한 탐색 알고리즘은 첫번째 레코드(250)를 우선 확인하여 첫번째 레코드(250)가 비어있으면 데이터블록(100)과 매핑블록(200)이 비어있는 것으로 판단한다. 하지만 비어있지 않은 경우, 마지막 레코드 블록(260)부터 시작하여 레코드가 비어있는지 여부에 따라 좌우로 탐색범위를 절반씩 좁혀가며 마지막 레코드를 찾는다.Referring to FIG. 2, the search algorithm for finding the last valid record 270 first checks the first record 250 so that if the first record 250 is empty, the data block 100 and the mapping block 200 are empty . If it is not empty, the search is started from the last record block (260), and the search range is narrowed by half to find the last record, depending on whether the record is empty or not.

예를 들어, 첫번째 레코드(250)가 비어있지 않을 경우, 마지막 블록(260)부터 탐색하여 전체 노드의 범위를 절반씩 줄여가며 마지막 유효 레코드(270)를 찾을 때까지 마지막 유효 레코드(270)의 여부를 확인한다. 이때 마지막 유효 레코드(270)여부를 확인하는 방법은 절반씩 줄인 탐색범위가 “0” 이 되었을 때 마지막 유효 레코드(270)를 찾았다고 판단한다.For example, if the first record 250 is not empty, the search is started from the last block 260 to reduce the range of the entire node by half, and the last valid record 270 is checked until the last valid record 270 is found. . At this time, the method of confirming whether or not the last valid record 270 is determined that the last valid record 270 is found when the search range reduced by half is " 0 ".

예컨대, 마지막 유효 레코드(270)를 탐색하는 것은 데이터 블록의 용량 확인 및 엑세스 하고자 하는 아이디(205)의 정보를 찾는 알고리즘 구현에 사용할 수 있다. For example, searching for the last valid record 270 can be used to implement the algorithm for finding the capacity of the data block and the information of the ID 205 to be accessed.

또한 매핑 블록(200)에서 마지막 유효 레코드(270)의 인덱스가 매핑블록(200)의 사용도를 의미하는 것을 이용하여 이를 이용해 잔존 용량을 파악할 수 있다.In addition, the index of the last valid record 270 in the mapping block 200 indicates the usage of the mapping block 200, and the remaining capacity can be determined using the index.

도 3은 매핑블록(200)에서 원하는 아이디(ID, 205)의 레코드 탐색에 대한 순서도 및 그 예시이다.FIG. 3 is a flowchart and an example of a record search of a desired ID (ID 205) in the mapping block 200.

도 3을 참조하면, 원하는 아이디(205)의 레코드를 찾기 위한 탐색 알고리즘은 마지막 유효 레코드(270)의 아이디 탐색을 시작하여 해당 레코드의 아이디가 탐색하고자 하는 아이디가 아닐 경우, 해당 레코드의 프리노드(208) 정보를 보고 인접한 레코드 중에 아이디가 없는지 확인한다. 하지만 아이디(205)가 없다면, 프리노드(208)에 저장되었던 레코드들은 건너뛰고 다음 레코드를 검사하여 최종적으로 원하는 아이디의 레코드를 찾는다.3, a search algorithm for searching for a record of a desired ID 205 starts searching for an ID of the last valid record 270. If the ID of the corresponding record is not an ID to be searched, 208) Check the information to make sure there are no adjacent records. However, if there is no ID 205, the records stored in the free node 208 are skipped and the next record is checked to finally find a record of the desired ID.

예를 들어, 마지막 유효 레코드(270)의 아이디(205)를 탐색하여 원하는 아이디(205)가 아닌 경우, 인접한 레코드의 프리노드(208)정보를 확인하여 해당 아이디(205)가 아닌 레코드는 모두 제외하고 검색할 수 있다. 이로 인해, 불필요한 검색비교를 건너 뛰어 한번에 많은 양의 노드를 탐색할 수 있기 때문에 탐색에 필요한 주소 계산 연산에 의한 오버헤드를 최소화하여, 검색속도가 더 빨라질 수 있다.For example, if the ID 205 of the last valid record 270 is not found and the ID 205 is not the desired ID 205, the information of the free node 208 of the adjacent record is checked, And search. This minimizes the overhead of the address computation operations required for the search because the unnecessary search comparisons can be skipped and a large number of nodes can be searched at a time, thereby making the search speed faster.

더불어 마지막 레코드(260)는 매핑 데이터(201)의 마지막 레코드(260)를 찾기 위한 탐색 알고리즘에 활용될 수 있다.In addition, the last record 260 may be utilized in a search algorithm to find the last record 260 of the mapping data 201.

예컨대, 첫 레코드부터의 순차적 검색방법의 경우, 모든 레코드의 아이디(205)를 확인하기 위한 연산이 필요하며, 최신의 레코드를 확인하는 로직이 필요하여 오버헤드가 발생한다. 하지만 본 발명은 마지막 레코드부터 탐색하여 최신의 레코드를 쉽게 확인가능하며, 프리노드(208)에 정보를 저장하여 모든 레코드를 탐색할 필요가 없기 때문에 불필요한 오버헤드를 줄일 수 있다.For example, in the case of the sequential search method starting from the first record, an operation for checking the ID 205 of all the records is required, and the logic for checking the latest record is required and overhead occurs. However, according to the present invention, it is possible to easily check the latest record by searching from the last record, and it is unnecessary to search all the records by storing information in the free node 208, thereby reducing unnecessary overhead.

도 4는 읽기모듈(540)에 대한 순서도이다.4 is a flow diagram for the read module 540. FIG.

도 4를 참조하면, 읽기모듈(540)은 원하는 아이디(205)의 레코드를 찾기 위한 탐색알고리즘을 통해 원하는 아이디(205)의 레코드를 탐색하고, 해당 레코드에 저장된 주소정보(206) 및 사이즈 정보(207)를 통해 데이터블록(100)으로부터 데이터를 읽어올 수 있다.4, the read module 540 searches for a record of a desired ID 205 through a search algorithm for searching for a record of a desired ID 205, and stores address information 206 and size information 207 to read data from the data block 100.

예컨대, 데이터블록(100)에 저장된 주소정보(206)와 사이즈 정보(207)를 읽어 매핑 블록(200)의 정보를 확인할 수 있다.For example, the address information 206 and the size information 207 stored in the data block 100 can be read to confirm the information of the mapping block 200.

도 5는 쓰기모듈(640)에 대한 순서도이다.FIG. 5 is a flowchart for the write module 640. FIG.

도 5를 참조하면, 쓰기모듈(640)은 매핑 데이터(201)의 마지막 유효 레코드(270)를 찾기 위한 탐색 알고리즘을 통해 마지막 유효 레코드(270)를 탐색하고, 해당 레코드에 저장된 주소(206) 및 사이즈정보(207)를 통해 데이터블록(100) 잔존 용량을 확인할 수 있다.5, the write module 640 searches for the last valid record 270 through a search algorithm to find the last valid record 270 of the mapping data 201, The remaining capacity of the data block 100 can be confirmed through the size information 207. [

예컨대, 마지막 레코드에 저장된 주소(206)와 데이터 크기(207)의 합을 전체 플래시 사이즈에서 빼면, 데이터블록(100)의 잔존 용량을 확인할 수 있다.For example, if the sum of the address 206 and the data size 207 stored in the last record is subtracted from the total flash size, the remaining capacity of the data block 100 can be checked.

종래 기술은 제어정보를 동일한 위치에 기록하기 때문에 제어블록의 라이프사이클에 치명적이다. 이에 본 발명은 데이터 탐색을 위한 정보를 순차적인 위치에 저장함으로써 동일위치에만 입력되는 것을 방지하여 라이프 사이클을 관리할 수 있다.The prior art is fatal to the life cycle of the control block because the control information is recorded at the same position. Accordingly, the present invention stores information for searching for data at sequential positions, thereby preventing entry of data for searching for data at the same position, thereby managing the life cycle.

또한 EEPROM 에뮬레이션을 사용하여 데이터를 저장할 경우, 변경된 데이터를 식별하기 위한 비트 단위의 비교연산과 복구 연산이 필요했지만, 탐색 알고리즘의 적용을 통해 기존 데이터와 비교 없이 데이터를 읽어올 수 있다. 더불어 제공되는 알고리즘은 실제 플래쉬 메모리 입력 단위에 대한 손실을 역으로 탐색 성능 개선방안으로 활용하기 때문에 빠른 탐색을 위한 알고리즘의 방법으로써 효율성이 증가된다.When EEPROM emulation is used to store data, it is necessary to perform bitwise comparison and recovery operations to identify changed data. However, it is possible to read data without comparing with existing data through application of search algorithm. In addition, the proposed algorithm increases the efficiency as a method of algorithm for quick search because it uses the loss of the actual flash memory input unit as a way to improve the search performance.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

100: 데이터블록
102: 사용 데이터 레코드
200: 매핑 블록
202: 필수 접근 데이터필드
203: 검색 속도 개선 데이터필드
100: data block
102: Use data record
200: mapping block
202: Required access data field
203: Improved search speed data field

Claims (10)

EEPROM(Electrically Erasable Programmable Read-Only Memory)을 에뮬레이팅하는 플래쉬 메모리 저장 시스템에 있어서,
복수의 사용 데이터 레코드를 포함하며, 상기 복수의 사용 데이터 레코드에 사용 데이터가 순차적으로 저장되는 데이터블록;
복수의 매핑 데이터 레코드에 매핑 데이터를 순차적으로 저장하는 매핑블록에 있어서, 상기 복수의 매핑 데이터 레코드는 상기 복수의 사용 데이터 레코드에
대한 접근을 위한 필수 접근 데이터필드 및 검색 속도 개선 데이터필드를 포함하는, 상기 매핑 블록; 및
상기 검색 속도 개선 데이터필드에 포함된 매핑 데이터에 기초하여 검색을 수행하는 검색 모듈을 포함하는 제어부를 포함하며,
상기 복수의 매핑 데이터 레코드 각각의 사이즈는 상기 플래쉬 메모리의 최소 읽기/쓰기 사이즈와 동일하도록 구성되며,
상기 검색 모듈은,
상기 매핑 데이터를 포함하는 유효 매핑 데이터 레코드 중 마지막 유효 매핑 데이터 레코드를 찾기 위한 제 1 검색모듈; 및
상기 마지막 유효 매핑 데이터 레코드에 포함된 매핑 데이터에 기초하여 상기 복수의 매핑 데이터 레코드 중 검색대상 아이디(ID) 데이터를 포함하는 검색대상 매핑 데이터 레코드를 찾기 위한 제 2 검색모듈을 포함하는,
플래쉬 메모리 저장 시스템.
1. A flash memory storage system for emulating an EEPROM (Electrically Erasable Programmable Read-Only Memory)
A data block including a plurality of usage data records, wherein usage data is sequentially stored in the plurality of usage data records;
1. A mapping block for sequentially storing mapping data in a plurality of mapping data records,
The mapping block including a required access data field and a search speed improvement data field for access; And
And a search module for performing a search based on the mapping data included in the search speed improvement data field,
Wherein a size of each of the plurality of mapping data records is equal to a minimum read / write size of the flash memory,
Wherein the search module comprises:
A first search module for searching for the last valid mapping data record among the valid mapping data records including the mapping data; And
And a second search module for searching a search object mapping data record including search target identification (ID) data among the plurality of mapping data records based on the mapping data included in the last valid mapping data record.
Flash memory storage system.
삭제delete 제 1 항에 있어서,
상기 제어부는 상기 마지막 유효 매핑 데이터 레코드에 저장된 매핑 데이터에 기초하여 상기 데이터블록의 잔존용량을 확인하는 쓰기모듈을 더 포함하는,
플래쉬 메모리 저장 시스템.
The method according to claim 1,
Wherein the controller further comprises a writing module for verifying the remaining capacity of the data block based on the mapping data stored in the last valid mapping data record,
Flash memory storage system.
제 1 항에 있어서,
상기 제어부는 상기 검색대상 매핑 데이터 레코드에 대응되는 사용 데이터 레코드를 읽는 읽기모듈을 더 포함하는,
플래쉬 메모리 저장 시스템.
The method according to claim 1,
Wherein the control unit further comprises a reading module for reading a usage data record corresponding to the search object mapping data record,
Flash memory storage system.
제 1 항에 있어서,
상기 필수 접근 데이터필드는 해당 매핑 데이터 레코드의 사용여부를 표시하는 플래그(Flag) 필드, 상기 매핑 데이터를 관리하는 아이디(ID) 필드, 상기 매핑 데이터의 위치를 나타내는 주소 필드, 및 상기 매핑 데이터의 크기 필드를 포함하며, 상기 검색 속도 개선 데이터필드는 상기 해당 매핑 데이터 레코드의 이전 매핑 데이터 레코드의 아이디를 포함하는 프리노드(PreNode) 필드를 포함하는,
플래쉬 메모리 저장 시스템.
The method according to claim 1,
The essential access data field includes a flag field indicating whether the mapping data record is used, an ID field for managing the mapping data, an address field indicating a location of the mapping data, Wherein the search speed improvement data field includes a PreNode field including an ID of a previous mapping data record of the corresponding mapping data record,
Flash memory storage system.
플래쉬 메모리; 및 사용 데이터를 상기 플래쉬 메모리에 저장하도록 제어하는 제어부를 구비하는 플래쉬 메모리 저장 시스템의 EEPROM(Electrically Erasable Programmable Read-Only Memory) 에뮬레이션 방법에 있어서,
상기 사용 데이터를 데이터블록의 사용 데이터 레코드에 순차적으로 저장하는 사용 데이터 저장 단계;
상기 사용 데이터에 대한 접근을 제공하는 매핑 데이터를 매핑블록의 복수의 매핑 데이터 레코드에 순차적으로 저장하는 단계로서, 상기 복수의 매핑 데이터 레코드는 필수 접근 데이터필드 및 검색 속도 개선 데이터필드를 각각 포함하는, 매핑 데이터 저장 단계; 및
상기 검색 속도 개선 필드에 포함된 매핑 데이터에 기초하여 검색을 수행하는 검색 단계를 포함하며,
상기 복수의 매핑 데이터 레코드 각각의 사이즈는 상기 플래쉬 메모리의 최소 읽기/쓰기 사이즈와 동일하도록 구성되며,
상기 검색 단계는,
상기 매핑 데이터를 포함하는 유효 매핑 데이터 레코드 중 마지막 유효 매핑 데이터 레코드를 찾기 위한 단계; 및
상기 마지막 유효 매핑 데이터 레코드에 포함된 매핑 데이터에 기초하여 상기 복수의 매핑 데이터 레코드 중 검색대상 아이디(ID) 데이터를 포함하는 검색대상 매핑 데이터 레코드를 찾는 단계를 포함하는,
EEPROM(Electrically Erasable Programmable Read-Only Memory) 에뮬레이션 방법.
Flash memory; And an EEPROM (Electrically Erasable Programmable Read-Only Memory) emulation method of a flash memory storage system having a control unit for controlling use data to be stored in the flash memory,
A use data storing step of sequentially storing the use data in a use data record of a data block;
Sequentially storing mapping data providing access to the usage data in a plurality of mapping data records of a mapping block, the plurality of mapping data records including a required access data field and a search speed improvement data field, Storing mapping data; And
And a search step of performing search based on the mapping data included in the search speed improvement field,
Wherein a size of each of the plurality of mapping data records is equal to a minimum read / write size of the flash memory,
The retrieving step comprises:
Searching for the last valid mapping data record among the valid mapping data records including the mapping data; And
Searching for a search object mapping data record including search target identification (ID) data among the plurality of mapping data records based on the mapping data included in the last valid mapping data record,
Electrically Erasable Programmable Read-Only Memory (EEPROM) emulation method.
삭제delete 제 6 항에 있어서,
상기 마지막 유효 매핑 데이터 레코드에 저장된 매핑 데이터에 기초하여 상기 데이터블록의 잔존용량을 확인한 후 상기 사용 데이터를 상기 데이터블록에 쓰는(Write) 단계를 더 포함하는,
EEPROM 에뮬레이션 방법.
The method according to claim 6,
Further comprising the step of writing the usage data to the data block after checking the remaining capacity of the data block based on the mapping data stored in the last valid mapping data record.
EEPROM emulation method.
제 6 항에 있어서,
상기 검색대상 매핑 데이터 레코드에 대응되는 상기 데이터블록의 사용 데이터 레코드를 읽는(Read) 단계를 더 포함하는,
EEPROM 에뮬레이션 방법.
The method according to claim 6,
Further comprising: reading a use data record of the data block corresponding to the search object mapping data record.
EEPROM emulation method.
제 6 항에 있어서,
상기 필수 접근 데이터필드는 해당 매핑 데이터 레코드의 사용여부를 표시하는 플래그(Flag) 필드, 상기 매핑 데이터를 관리하는 아이디(ID) 필드, 상기 매핑 데이터의 위치를 나타내는 주소 필드, 및 상기 매핑 데이터의 크기 필드를 포함하며, 상기 검색 속도 개선 데이터필드는 상기 해당 매핑 데이터 레코드의 이전 매핑 데이터 레코드의 아이디를 포함하는 프리노드(PreNode) 필드를 포함하는,
EEPROM 에뮬레이션 방법.
The method according to claim 6,
The essential access data field includes a flag field indicating whether the mapping data record is used, an ID field for managing the mapping data, an address field indicating a location of the mapping data, Wherein the search speed improvement data field includes a PreNode field including an ID of a previous mapping data record of the corresponding mapping data record,
EEPROM emulation method.
KR1020160124979A 2016-09-28 2016-09-28 EEPROM Emulation Method Considering implementation of Flash Life Cycle and Performance Improvement KR101826778B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160124979A KR101826778B1 (en) 2016-09-28 2016-09-28 EEPROM Emulation Method Considering implementation of Flash Life Cycle and Performance Improvement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160124979A KR101826778B1 (en) 2016-09-28 2016-09-28 EEPROM Emulation Method Considering implementation of Flash Life Cycle and Performance Improvement

Publications (1)

Publication Number Publication Date
KR101826778B1 true KR101826778B1 (en) 2018-03-22

Family

ID=61901143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160124979A KR101826778B1 (en) 2016-09-28 2016-09-28 EEPROM Emulation Method Considering implementation of Flash Life Cycle and Performance Improvement

Country Status (1)

Country Link
KR (1) KR101826778B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684150A (en) * 2018-12-24 2019-04-26 北京紫光得瑞科技有限公司 Store Performance Test System, test method and the emulation platform of Grain size controlling device
KR20200050738A (en) 2018-11-02 2020-05-12 현대오트론 주식회사 Apparatus for controlling eeprom and method for writing data using same
KR20210076676A (en) 2019-12-16 2021-06-24 주식회사 현대케피코 Apparatus and method for controlling eeprom

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331378A (en) 2005-05-24 2006-12-07 Prolific Technology Inc Flash memory storing system
KR101077904B1 (en) 2010-07-12 2011-10-31 (주)이더블유비엠코리아 Apparatus and method for managing flash memory using page level mapping algorithm
KR101077901B1 (en) 2010-07-12 2011-10-31 (주)이더블유비엠코리아 Apparatus and method for managing flash memory using log block level mapping algorithm
JP2014529126A (en) 2011-08-11 2014-10-30 ピュア・ストレージ・インコーポレイテッド Logical sector mapping in flash storage arrays

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331378A (en) 2005-05-24 2006-12-07 Prolific Technology Inc Flash memory storing system
KR101077904B1 (en) 2010-07-12 2011-10-31 (주)이더블유비엠코리아 Apparatus and method for managing flash memory using page level mapping algorithm
KR101077901B1 (en) 2010-07-12 2011-10-31 (주)이더블유비엠코리아 Apparatus and method for managing flash memory using log block level mapping algorithm
JP2014529126A (en) 2011-08-11 2014-10-30 ピュア・ストレージ・インコーポレイテッド Logical sector mapping in flash storage arrays

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200050738A (en) 2018-11-02 2020-05-12 현대오트론 주식회사 Apparatus for controlling eeprom and method for writing data using same
KR102142675B1 (en) * 2018-11-02 2020-08-07 현대오트론 주식회사 Apparatus for controlling eeprom and method for writing data using same
CN109684150A (en) * 2018-12-24 2019-04-26 北京紫光得瑞科技有限公司 Store Performance Test System, test method and the emulation platform of Grain size controlling device
CN109684150B (en) * 2018-12-24 2022-04-26 北京得瑞领新科技有限公司 Performance test system, test method and simulation platform of storage particle controller
KR20210076676A (en) 2019-12-16 2021-06-24 주식회사 현대케피코 Apparatus and method for controlling eeprom
KR102315314B1 (en) 2019-12-16 2021-10-19 주식회사 현대케피코 Apparatus and method for controlling eeprom

Similar Documents

Publication Publication Date Title
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
US7127551B2 (en) Flash memory management method
US8327064B2 (en) Data processor with flash memory, and method for accessing flash memory
US20100077135A1 (en) Memory wear leveling method, system and device
CN106648463B (en) Nand Flash block management method and system
CN102999431A (en) Weave sequence counter for non-volatile memory systems
JP4748708B2 (en) Semiconductor device
KR20040076589A (en) Memory card
KR101826778B1 (en) EEPROM Emulation Method Considering implementation of Flash Life Cycle and Performance Improvement
CN107045423B (en) Memory device and data access method thereof
US20090164869A1 (en) Memory architecture and configuration method thereof
EP2977907B1 (en) Data storage device, method for storing data, and onboard control device
CN112347002B (en) flash data storage method, system, computer equipment and storage medium
US20180052635A1 (en) Electronic control apparatus and information storage method for the same
US20060143541A1 (en) Method of and apparatus for detecting an error in writing to persistent memory
CN116185563B (en) Software simulation algorithm based on vehicle-gauge microcontroller data flash memory
JP5520098B2 (en) Data processing method, program, and system
KR102071072B1 (en) Method for managing of memory address mapping table for data storage device
CN116301614A (en) Memory data access method, system, device and storage medium
CN108228095B (en) Method for recording real-time information based on Flash
CN111258498B (en) FLASH memory management method
JP6040895B2 (en) Microcomputer and non-volatile memory block management method
CN108304331B (en) NorFlash-based circular queue type data storage method and device
US9465730B2 (en) Flash memory device
CN113010105A (en) Data backup method, device, equipment and computer readable storage medium

Legal Events

Date Code Title Description
GRNT Written decision to grant