KR101361670B1 - The scheme to speed up the processing time for random write operation - Google Patents

The scheme to speed up the processing time for random write operation Download PDF

Info

Publication number
KR101361670B1
KR101361670B1 KR1020120143550A KR20120143550A KR101361670B1 KR 101361670 B1 KR101361670 B1 KR 101361670B1 KR 1020120143550 A KR1020120143550 A KR 1020120143550A KR 20120143550 A KR20120143550 A KR 20120143550A KR 101361670 B1 KR101361670 B1 KR 101361670B1
Authority
KR
South Korea
Prior art keywords
write
flash memory
write operation
function
speed
Prior art date
Application number
KR1020120143550A
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 KR1020120143550A priority Critical patent/KR101361670B1/en
Application granted granted Critical
Publication of KR101361670B1 publication Critical patent/KR101361670B1/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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The present invention relates to a scheme for increasing a random write operation speed of a flash memory. The scheme can be obtained by changing an application program. Steps of the scheme comprises a value analysis step for grasping a range in which write data is written; a dependence analysis step for grasping a location in which a write function is moved; and a rearrangement step for setting a purpose function using an optimal algorithm. According to the present invention, the write operation of the flash memory is effectively executed. A high performance flash memory system can be realized. [Reference numerals] (110) Grasping a range in which write data is written; (120) Grasping a position in which a write function is moved; (130) Setting a purpose function and rearranging a write function using an optimal algorithm

Description

프로그램 정적 분석을 통한 플래시 메모리의 랜덤 쓰기 연산의 속도 향상 방법{The scheme to speed up the processing time for random write operation}The scheme to speed up the processing time for random write operation}

본 발명은 플래시 메모리의 속도 향상에 관한 것으로, 좀 더 구체적으로는 분석 기법을 통한 플래시 메모리의 랜덤 쓰기 연산 속도 향상에 관한 것이다.The present invention relates to speed improvement of flash memory, and more particularly, to speed up random write operations of flash memory through an analysis technique.

플래시 메모리는 비휘발성의 반도체 메모리로서, 외부 충격에 강하고 빠른 접근 속도를 갖는 특징이 있다. 따라서 스마트 폰, PMP등과 같은 소형 정보 기기의 휴대성, 강한 내구성 및 저 전력 등의 요구 사항에 부합하는 장점을 지니고 있다. 플래시 메모리의 종류로는 NOR와 NAND의 두 가지 종류가 있으나, 경제성 등이 우수한 NAND 플래시 메모리가 더 광범위하게 사용된다.
Flash memory is a nonvolatile semiconductor memory, which is resistant to external shocks and has a fast access speed. Therefore, it has advantages that meet the requirements of portability, strong durability and low power of small information devices such as smart phones and PMPs. There are two types of flash memory, NOR and NAND. However, NAND flash memory with excellent economic efficiency is used more widely.

플래시 메모리의 특징 중 하나는 읽기 연산과 쓰기 연산의 속도가 서로 다르다는 것이다. 읽기 연산은 쓰기 연산에 비해서 일반적으로 2.5배 정도 빠르다고 알려져 있다.
One of the characteristics of flash memory is that the read and write operations differ in speed. Read operations are generally known to be 2.5 times faster than write operations.

플래시 메모리 변환 계층은 프로그램 실행에 의해서 발생된 논리 주소를 실제 물리 주소로 변환시키는 역할을 한다. 쓰기 연산 명령의 경우, 플래시 메모리 변환 계층의 주 소 변환 과정을 통해서 쓰기 데이터는 플래시 메모리의 새로운 위치에 저장된다.
The flash memory translation layer is responsible for converting logical addresses generated by program execution into actual physical addresses. In the case of a write operation instruction, the write data is stored in a new location in the flash memory through the address conversion process of the flash memory translation layer.

플래시 메모리 변환 계층은 지움 연산을 유발하는 쓰기 연산들을 로그 블록에 저장시키는 경우, 이것은 비용이 큰 지움 연산의 발생을 지연시킴으로써 성능을 향상시킨다. 하지만, 플래시 메모리 변환 계층과 달리, 프로그램 재작성을 통해 이를 수행하게 되면 프로그램을 분석한 결과를 토대로 진행되므로, 각 응용 프로그램의 의미구조가 데이터 재배치에 반영된다는 장점을 가진다. 첫째, 데이터의 사용 방식을 예측하여 이에 맞는 배치를 할 수 있으며, 둘째 플래시 메모리 변환 계층의 페이지 단위 대신 프로그램 내의 쓰기 연산 단위인 바이트 단위로 보다 정교하게 데이터 재배치를 할 수 있다.
The flash memory translation layer improves performance by delaying the occurrence of expensive erase operations when storing write operations that cause erase operations in a log block. However, unlike the flash memory conversion layer, if this is done by rewriting the program, the process is performed based on the result of analyzing the program, which has the advantage that the semantic structure of each application is reflected in data relocation. First, the data can be predicted and arranged accordingly. Second, the data can be rearranged more precisely in byte units, which are write unit units in the program, instead of page units in the flash memory conversion layer.

프로그램 분석 기법을 이용한 기존 연구들은 주로 읽기 연산 최적화를 통한 성능 개선을 주제로 이루어져 왔다. 이는 쓰기의 오버헤드가 큰 플래시 메모리의 특성 때문에, 일반적인 데이터보다는 수정이 불가능한 데이터들(예: 프로그램 파일)의 보관용으로 사용될 것으로 가정되어 왔었기 때문이다. 이러한 연구들은 플래시 메모리에 저장된 프로그램 중 필요한 부분을 램에 적기에 옮겨주기 위한 것이 궁극적인 목표로 하고 있으며, 이를 위해 시간 적으로 인접한 사용이 예상되는 코드를 가급적 하나의 페이지에 넣고자 하는 것을 다루고 있다.
Existing studies using program analysis techniques have mainly focused on improving performance through optimization of read operations. This is because, due to the characteristics of flash memory, which has a large write overhead, it has been assumed that it will be used for storing non-modifiable data (eg, program files) rather than general data. These studies aim to transfer the necessary parts of the program stored in the flash memory to RAM in a timely manner, and the purpose of this is to put the code that is expected to be used adjacent to time in one page as possible. .

본 발명은 플래시 메모리의 랜덤 쓰기 연산에서의 성능이 저하되는 문제점을 극복하는데 그 목적이 있다.
An object of the present invention is to overcome the problem that the performance in the random write operation of the flash memory is degraded.

상기의 목적을 위한 기술적 사상으로서의 본 발명은, 플래시 메모리의 랜덤 쓰기 연산에서의 속도 향상 기법에 관한 것으로, 상기 기법은 응용 프로그램을 변경함으로써 얻어질 수 있다. 상기 기법의 단계는 쓰기 데이터가 쓰여 지는 범위를 파악하기 위한 값 분석 단계와; 쓰기 함수가 이동할 수 있는 위치를 파악하기 위한 의존 분석 단계; 목적 함수를 세우고 최적화 알고리즘을 이용해 재배치하는 단계로 이루어진다.
The present invention as a technical concept for the above object relates to a speed improving technique in a random write operation of a flash memory, which can be obtained by changing an application program. The step of the technique includes a value analysis step of determining a range in which write data is written; A dependency analysis step of identifying a location to which the write function can move; It consists of building an objective function and relocating it using an optimization algorithm.

본 발명에 따른 방법에 의하면, 플래시 메모리의 쓰기 연산을 효과적으로 수행할 수 있으며, 고성능의 플래시 메모리 시스템을 구현할 수 있게 된다.
According to the method according to the present invention, it is possible to effectively perform a write operation of the flash memory, it is possible to implement a high performance flash memory system.

도 1은 플래시 메모리에서 랜덤 쓰기 연산 속도를 향상시키기 위한 방법의 순서도 이다.1 is a flowchart of a method for improving a random write operation speed in a flash memory.

본 발명은 플래시 메모리의 랜덤 쓰기 연산에서의 속도 향상을 위한 것이다. 즉, 본 발명은 동일한 영역에 대한 쓰기 연산 요청들의 시간 간격을 줄여서 응용 프로그램을 변경함으로써 속도 향상을 이룰 수 있는 방법에 관한 것이다. 도 1은 플래시 메모리에서 랜덤 쓰기 연산 속도를 향상시키기 위한 방법의 순서도 이다. 도 1을 참조하면, 상기 방법은 쓰기 데이터가 쓰여 지는 범위를 파악하는 단계(110)와, 쓰기 함수가 이동할 수 있는 위치를 파악하는 단계(120), 목적 함수를 세우고 최적화 알고리즘을 이용해 쓰기 함수를 재배치(130)하는 단계로 이루어진다. 쓰기 데이터가 쓰여 지는 범위를 파악하는 단계(110)는 플래시 메모리의 접근 효율을 향상시키기 위한 것이며, 쓰기 연산을 요청하는 함수들을 근접한 위치에 배치시키기 위해, 쓰기 함수가 요청하는 접근 가능한 범위를 파악하는 과정이다. 또한 쓰기 함수가 이동할 수 있는 위치를 파악하는 단계(120)는 의존 분석을 거쳐 이루어진다. 이 과정은 쓰기 함수의 재배치에 따라 실행 결과에 영향을 미치지 않아야 하므로, 쓰기 함수가 이동 가능한 블록의 위치를 파악하는 과정이다. 마지막으로 목적 함수를 세우고 최적화 알고리즘을 이용해 쓰기 함수를 재배치(130)하는 단계는 정수 선형 프로그래밍(Integer Linear Programming) 또는 다이내믹 프로그램 알고리즘을 사용한다. 정수 선형 프로그래밍에서 쓰이는 수식은 수학식 1이다.The present invention is to improve the speed in the random write operation of the flash memory. That is, the present invention relates to a method for achieving speed improvement by changing an application program by reducing the time interval of write operation requests for the same area. 1 is a flowchart of a method for improving a random write operation speed in a flash memory. Referring to FIG. 1, the method includes determining a range in which the write data is written (110), determining a position at which the write function can be moved (120), establishing an objective function, and using the optimization algorithm. Relocation 130 is made. Determining the extent to which the write data is written 110 is to improve the access efficiency of the flash memory, and to determine the accessible range requested by the write function in order to place the functions requesting the write operation in close proximity. It is a process. In addition, the step 120 of identifying a position to which the write function can move is performed through a dependency analysis. This process does not affect the execution result according to the redeployment of the write function, so that the write function finds the position of the movable block. Finally, the step of establishing the objective function and rearranging the writing function using the optimization algorithm 130 uses integer linear programming or dynamic programming algorithm. Equation 1 is used in integer linear programming.

Figure 112013120441538-pat00001

여기서,
Figure 112013120441538-pat00004
는 j 영역에 접근하는 쓰기 함수 중에서 i 블록에 위치하는 쓰기 함수의 개수를 나타내며,
Figure 112013120441538-pat00005
는 j 영역에 접근하는 쓰기 함수들이 i 블록에 포함되는지 여부를 나타낸다.
Figure 112013120441538-pat00001

here,
Figure 112013120441538-pat00004
Represents the number of write functions located in i block among write functions accessing j area.
Figure 112013120441538-pat00005
Indicates whether write functions accessing the j region are included in the i block.

110 : 값 분석
120 : 의존 분석
130 : 재배치
110: value analysis
120: dependency analysis
130: relocation

Claims (6)

플래시 메모리의 랜덤 쓰기 연산에서의 속도 향상 방법에 있어서,
쓰기 데이터가 쓰여 지는 범위를 파악하는 단계;
쓰기 함수가 이동할 수 있는 블록의 위치를 파악하는 단계;
목적 함수를 세우고 최적화 알고리즘을 이용해 재배치하는 단계를 구비하며,
상기 방법에서 동일한 영역에 대한 쓰기 연산 요청들의 시간 간격을 줄여서 응용 프로그램을 변경함으로써 속도 향상을 이루며,
상기 최적화 알고리즘을 이용해 재배치하는 단계는 정수 선형 프로그래밍(Integer Linear Programming)을 이용하며,
상기 정수 선형 프로그래밍에서 사용되는 수학식은 아래와 같은 것을 특징으로 하는 프로그램 정적 분석을 통한 플래시 메모리의 랜덤 쓰기 연산의 속도 향상 방법.
Figure 112013120441538-pat00006
--- 수학식
여기서,
Figure 112013120441538-pat00007
는 j 영역에 접근하는 쓰기 함수 중에서 i 블록에 위치하는 쓰기 함수의 개수를 나타내며,
Figure 112013120441538-pat00008
는 j 영역에 접근하는 쓰기 함수들이 i 블록에 포함되는지 여부를 나타낸다.
In the speed improvement method in the random write operation of the flash memory,
Identifying a range in which write data is written;
Determining a location of a block to which the write function can move;
Establishing an objective function and relocating it using an optimization algorithm,
In this method, the speed is improved by changing the application program by reducing the time interval of write operation requests for the same area.
Repositioning using the optimization algorithm uses integer linear programming,
Equation used in the integer linear programming method is as follows.
Figure 112013120441538-pat00006
--- Equation
here,
Figure 112013120441538-pat00007
Represents the number of write functions located in i block among write functions accessing j area.
Figure 112013120441538-pat00008
Indicates whether write functions accessing the j region are included in the i block.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020120143550A 2012-12-11 2012-12-11 The scheme to speed up the processing time for random write operation KR101361670B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120143550A KR101361670B1 (en) 2012-12-11 2012-12-11 The scheme to speed up the processing time for random write operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120143550A KR101361670B1 (en) 2012-12-11 2012-12-11 The scheme to speed up the processing time for random write operation

Publications (1)

Publication Number Publication Date
KR101361670B1 true KR101361670B1 (en) 2014-02-12

Family

ID=50270645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120143550A KR101361670B1 (en) 2012-12-11 2012-12-11 The scheme to speed up the processing time for random write operation

Country Status (1)

Country Link
KR (1) KR101361670B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840149A (en) * 2022-07-06 2022-08-02 江苏华存电子科技有限公司 Method and system for analyzing timing stability of super flash memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262640A (en) 2009-04-30 2010-11-18 Internatl Business Mach Corp <Ibm> Method and system for adaptive endurance coding of non-volatile memory
JP2012185573A (en) 2011-03-03 2012-09-27 Casio Comput Co Ltd Electronic apparatus with fat variable management function, and program
KR20120121675A (en) * 2011-04-27 2012-11-06 한양대학교 산학협력단 Apparatus and method for managing flash memory by recognizing write data pattern

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262640A (en) 2009-04-30 2010-11-18 Internatl Business Mach Corp <Ibm> Method and system for adaptive endurance coding of non-volatile memory
JP2012185573A (en) 2011-03-03 2012-09-27 Casio Comput Co Ltd Electronic apparatus with fat variable management function, and program
KR20120121675A (en) * 2011-04-27 2012-11-06 한양대학교 산학협력단 Apparatus and method for managing flash memory by recognizing write data pattern

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840149A (en) * 2022-07-06 2022-08-02 江苏华存电子科技有限公司 Method and system for analyzing timing stability of super flash memory

Similar Documents

Publication Publication Date Title
US10761731B2 (en) Array controller, solid state disk, and method for controlling solid state disk to write data
WO2019080688A1 (en) Data writing method and storage device
EP2665065A2 (en) Electronic device employing flash memory
US10360155B1 (en) Multi-tier memory management
KR101374065B1 (en) Data Distinguish Method and Apparatus Using Algorithm for Chip-Level-Parallel Flash Memory
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
EP3338193B1 (en) Convertible leaf memory mapping
US11385836B2 (en) Read look ahead data size determination
KR20120081351A (en) Non-volitile memory device for performing ftl and method thereof
KR20150057069A (en) Data storage device and operating method thereof
KR20130022604A (en) Apparatus and method for data storing according to an access degree
CN115756312A (en) Data access system, data access method, and storage medium
Park et al. Anti-aging lfs: Self-defragmentation with fragmentation-aware cleaning
KR101123335B1 (en) Method and apparatus for configuring hash index, and apparatus for storing data having the said apparatus, and the recording media storing the program performing the said method
He et al. Improving hybrid FTL by fully exploiting internal SSD parallelism with virtual blocks
Xu et al. An efficient resource-optimized learning prefetcher for solid state drives
KR101361670B1 (en) The scheme to speed up the processing time for random write operation
CN111026678B (en) Cache design method and device based on solid state disk and computer equipment
Jung et al. Hierarchical architecture of flash-based storage systems for high performance and durability
Du et al. SSW: A strictly sequential writing method for open-channel SSD
Wang et al. A thermal-aware physical space reallocation for open-channel SSD with 3-D flash memory
Shantharam et al. Performance evaluation of scale-free graph algorithms in low latency non-volatile memory
Li et al. A software-defined fusion storage system for PCM and NAND flash
Lee et al. Mapping granularity and performance tradeoffs for solid state drive
KR100999111B1 (en) Apparatus of having structure of flash translation layer and prefetching method and asynchronous writing method based on the flash translation layer

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170126

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190131

Year of fee payment: 6