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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
Abstract
Description
본 발명은 플래쉬 메모리 저장 시스템에 관한 것으로 보다 상세하게는 플래쉬롬을 이용하여 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.
본 발명은 상술한 요구에 부응하기 위하여 안출된 것으로, 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
데이터블록(100)은 사용 데이터 레코드(102)를 포함한다. 또한 사용 데이터가 순차적으로 저장되어, 모든 블록영역의 라이프 사이클을 동일하게 유지할 수 있고, 저장되는 데이터는 아이디(ID, 205)로 관리된다. 다만, 데이터블록(100)만으로 각 아이디(205)별 저장된 데이터를 판단하지 않고 매핑블록(200)의 정보를 이용하여 데이터를 판단한다. The
한편, 전체 필드의 크기는 플래쉬 메모리 입력 최소단위의 배수가 될 수 있다.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
필수 접근 데이터필드(202)는 해당 매핑 데이터 레코드(201)의 사용여부를 표시하는 플래그(Flag) 필드(204), 매핑 데이터를 관리하는 아이디(ID) 필드(205), 매핑 데이터의 위치를 나타내는 주소 필드(206), 및 매핑 데이터의 크기를 의미하는 크기 필드(207)를 포함한다.The essential
예컨대, 플래그 필드(204)는 해당 레코드의 레코드가 사용되고 있으면 TRUE, 사용되고 있지 않으면 FALSE로 표시할 수 있다.For example, the
한편, 복수의 매핑 데이터 레코드(201) 각각의 사이즈는 플래쉬 메모리의 최소 읽기/쓰기 사이즈와 동일하도록 구성될 수 있다.On the other hand, the size of each of the plurality of
검색 속도 개선 데이터 필드(203)는 프리노드(PreNode, 208) 필드를 포함한다.The search speed
프리노드 필드(208)는 잉여공간에 해당 매핑 데이터 레코드(201)의 이전 매핑 데이터 레코드(201)의 아이디(205)의 정보를 포함한다. 예컨대, 최소단위가 클 경우에 낭비되는 공간을 활용하여 탐색시간을 단축하기 위해 사용될 수 있다.The
제어부는 검색모듈, 쓰기모듈(640), 읽기모듈(540)을 포함한다.The control unit includes a search module, a
검색 모듈은 검색 속도 개선 데이터필드(203)에 포함된 매핑 데이터(201)에 기초하여 검색을 수행하며, 매핑 데이터(201)를 포함하는 유효 매핑 데이터 레코드(210) 중 마지막 유효 매핑 데이터 레코드(210)를 찾기 위한 제 1 검색모듈(360) 및 마지막 유효 매핑 데이터 레코드(210)에 포함된 매핑 데이터에 기초하여 복수의 매핑 데이터 레코드 중 검색대상 아이디(ID, 205) 데이터를 포함하는 검색대상 매핑 데이터 레코드를 찾기 위한 제 2 검색모듈(460)을 포함한다.The search module performs a search based on the
쓰기모듈(640)은 마지막 유효 매핑 데이터 레코드(210)에 저장된 매핑 데이터(201)에 기초하여 데이터블록(100)의 잔존용량을 확인할 수 있다.
읽기모듈(540)은 검색대상 매핑 데이터 레코드(201)에 대응되는 사용 데이터 레코드를 읽을 수 있다.The
한편, 본 발명은 데이터 탐색을 위한 정보를 순차적인 위치에 저장함으로써 동일 위치에만 입력하는 것을 방지하여 라이프 사이클을 관리할 수 있으며, 탐색 알고리즘의 적용을 통해 기존 데이터와 비교 없이 데이터를 읽어올 수 있다. 더불어 플래쉬 메모리 입력단위에 대한 손실을 역으로 탐색 성능 개선방안으로 활용하였다.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
도 2를 참조하면, 마지막 유효 레코드(270)를 찾기 위한 탐색 알고리즘은 첫번째 레코드(250)를 우선 확인하여 첫번째 레코드(250)가 비어있으면 데이터블록(100)과 매핑블록(200)이 비어있는 것으로 판단한다. 하지만 비어있지 않은 경우, 마지막 레코드 블록(260)부터 시작하여 레코드가 비어있는지 여부에 따라 좌우로 탐색범위를 절반씩 좁혀가며 마지막 레코드를 찾는다.Referring to FIG. 2, the search algorithm for finding the last
예를 들어, 첫번째 레코드(250)가 비어있지 않을 경우, 마지막 블록(260)부터 탐색하여 전체 노드의 범위를 절반씩 줄여가며 마지막 유효 레코드(270)를 찾을 때까지 마지막 유효 레코드(270)의 여부를 확인한다. 이때 마지막 유효 레코드(270)여부를 확인하는 방법은 절반씩 줄인 탐색범위가 “0” 이 되었을 때 마지막 유효 레코드(270)를 찾았다고 판단한다.For example, if the
예컨대, 마지막 유효 레코드(270)를 탐색하는 것은 데이터 블록의 용량 확인 및 엑세스 하고자 하는 아이디(205)의 정보를 찾는 알고리즘 구현에 사용할 수 있다. For example, searching for the last
또한 매핑 블록(200)에서 마지막 유효 레코드(270)의 인덱스가 매핑블록(200)의 사용도를 의미하는 것을 이용하여 이를 이용해 잔존 용량을 파악할 수 있다.In addition, the index of the last
도 3은 매핑블록(200)에서 원하는 아이디(ID, 205)의 레코드 탐색에 대한 순서도 및 그 예시이다.FIG. 3 is a flowchart and an example of a record search of a desired ID (ID 205) in the
도 3을 참조하면, 원하는 아이디(205)의 레코드를 찾기 위한 탐색 알고리즘은 마지막 유효 레코드(270)의 아이디 탐색을 시작하여 해당 레코드의 아이디가 탐색하고자 하는 아이디가 아닐 경우, 해당 레코드의 프리노드(208) 정보를 보고 인접한 레코드 중에 아이디가 없는지 확인한다. 하지만 아이디(205)가 없다면, 프리노드(208)에 저장되었던 레코드들은 건너뛰고 다음 레코드를 검사하여 최종적으로 원하는 아이디의 레코드를 찾는다.3, a search algorithm for searching for a record of a desired
예를 들어, 마지막 유효 레코드(270)의 아이디(205)를 탐색하여 원하는 아이디(205)가 아닌 경우, 인접한 레코드의 프리노드(208)정보를 확인하여 해당 아이디(205)가 아닌 레코드는 모두 제외하고 검색할 수 있다. 이로 인해, 불필요한 검색비교를 건너 뛰어 한번에 많은 양의 노드를 탐색할 수 있기 때문에 탐색에 필요한 주소 계산 연산에 의한 오버헤드를 최소화하여, 검색속도가 더 빨라질 수 있다.For example, if the
더불어 마지막 레코드(260)는 매핑 데이터(201)의 마지막 레코드(260)를 찾기 위한 탐색 알고리즘에 활용될 수 있다.In addition, the
예컨대, 첫 레코드부터의 순차적 검색방법의 경우, 모든 레코드의 아이디(205)를 확인하기 위한 연산이 필요하며, 최신의 레코드를 확인하는 로직이 필요하여 오버헤드가 발생한다. 하지만 본 발명은 마지막 레코드부터 탐색하여 최신의 레코드를 쉽게 확인가능하며, 프리노드(208)에 정보를 저장하여 모든 레코드를 탐색할 필요가 없기 때문에 불필요한 오버헤드를 줄일 수 있다.For example, in the case of the sequential search method starting from the first record, an operation for checking the
도 4는 읽기모듈(540)에 대한 순서도이다.4 is a flow diagram for the
도 4를 참조하면, 읽기모듈(540)은 원하는 아이디(205)의 레코드를 찾기 위한 탐색알고리즘을 통해 원하는 아이디(205)의 레코드를 탐색하고, 해당 레코드에 저장된 주소정보(206) 및 사이즈 정보(207)를 통해 데이터블록(100)으로부터 데이터를 읽어올 수 있다.4, the
예컨대, 데이터블록(100)에 저장된 주소정보(206)와 사이즈 정보(207)를 읽어 매핑 블록(200)의 정보를 확인할 수 있다.For example, the
도 5는 쓰기모듈(640)에 대한 순서도이다.FIG. 5 is a flowchart for the
도 5를 참조하면, 쓰기모듈(640)은 매핑 데이터(201)의 마지막 유효 레코드(270)를 찾기 위한 탐색 알고리즘을 통해 마지막 유효 레코드(270)를 탐색하고, 해당 레코드에 저장된 주소(206) 및 사이즈정보(207)를 통해 데이터블록(100) 잔존 용량을 확인할 수 있다.5, the
예컨대, 마지막 레코드에 저장된 주소(206)와 데이터 크기(207)의 합을 전체 플래시 사이즈에서 빼면, 데이터블록(100)의 잔존 용량을 확인할 수 있다.For example, if the sum of the
종래 기술은 제어정보를 동일한 위치에 기록하기 때문에 제어블록의 라이프사이클에 치명적이다. 이에 본 발명은 데이터 탐색을 위한 정보를 순차적인 위치에 저장함으로써 동일위치에만 입력되는 것을 방지하여 라이프 사이클을 관리할 수 있다.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)
복수의 사용 데이터 레코드를 포함하며, 상기 복수의 사용 데이터 레코드에 사용 데이터가 순차적으로 저장되는 데이터블록;
복수의 매핑 데이터 레코드에 매핑 데이터를 순차적으로 저장하는 매핑블록에 있어서, 상기 복수의 매핑 데이터 레코드는 상기 복수의 사용 데이터 레코드에
대한 접근을 위한 필수 접근 데이터필드 및 검색 속도 개선 데이터필드를 포함하는, 상기 매핑 블록; 및
상기 검색 속도 개선 데이터필드에 포함된 매핑 데이터에 기초하여 검색을 수행하는 검색 모듈을 포함하는 제어부를 포함하며,
상기 복수의 매핑 데이터 레코드 각각의 사이즈는 상기 플래쉬 메모리의 최소 읽기/쓰기 사이즈와 동일하도록 구성되며,
상기 검색 모듈은,
상기 매핑 데이터를 포함하는 유효 매핑 데이터 레코드 중 마지막 유효 매핑 데이터 레코드를 찾기 위한 제 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.
상기 제어부는 상기 마지막 유효 매핑 데이터 레코드에 저장된 매핑 데이터에 기초하여 상기 데이터블록의 잔존용량을 확인하는 쓰기모듈을 더 포함하는,
플래쉬 메모리 저장 시스템.
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.
상기 제어부는 상기 검색대상 매핑 데이터 레코드에 대응되는 사용 데이터 레코드를 읽는 읽기모듈을 더 포함하는,
플래쉬 메모리 저장 시스템.
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.
상기 필수 접근 데이터필드는 해당 매핑 데이터 레코드의 사용여부를 표시하는 플래그(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.
상기 사용 데이터를 데이터블록의 사용 데이터 레코드에 순차적으로 저장하는 사용 데이터 저장 단계;
상기 사용 데이터에 대한 접근을 제공하는 매핑 데이터를 매핑블록의 복수의 매핑 데이터 레코드에 순차적으로 저장하는 단계로서, 상기 복수의 매핑 데이터 레코드는 필수 접근 데이터필드 및 검색 속도 개선 데이터필드를 각각 포함하는, 매핑 데이터 저장 단계; 및
상기 검색 속도 개선 필드에 포함된 매핑 데이터에 기초하여 검색을 수행하는 검색 단계를 포함하며,
상기 복수의 매핑 데이터 레코드 각각의 사이즈는 상기 플래쉬 메모리의 최소 읽기/쓰기 사이즈와 동일하도록 구성되며,
상기 검색 단계는,
상기 매핑 데이터를 포함하는 유효 매핑 데이터 레코드 중 마지막 유효 매핑 데이터 레코드를 찾기 위한 단계; 및
상기 마지막 유효 매핑 데이터 레코드에 포함된 매핑 데이터에 기초하여 상기 복수의 매핑 데이터 레코드 중 검색대상 아이디(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.
상기 마지막 유효 매핑 데이터 레코드에 저장된 매핑 데이터에 기초하여 상기 데이터블록의 잔존용량을 확인한 후 상기 사용 데이터를 상기 데이터블록에 쓰는(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.
상기 검색대상 매핑 데이터 레코드에 대응되는 상기 데이터블록의 사용 데이터 레코드를 읽는(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.
상기 필수 접근 데이터필드는 해당 매핑 데이터 레코드의 사용여부를 표시하는 플래그(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.
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)
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)
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 |
-
2016
- 2016-09-28 KR KR1020160124979A patent/KR101826778B1/en active IP Right Grant
Patent Citations (4)
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)
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 |