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 PDFInfo
- 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
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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/445—Program 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
Description
본 발명은 플래시 메모리의 속도 향상에 관한 것으로, 좀 더 구체적으로는 분석 기법을 통한 플래시 메모리의 랜덤 쓰기 연산 속도 향상에 관한 것이다.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.
여기서, 는 j 영역에 접근하는 쓰기 함수 중에서 i 블록에 위치하는 쓰기 함수의 개수를 나타내며, 는 j 영역에 접근하는 쓰기 함수들이 i 블록에 포함되는지 여부를 나타낸다.
here, Represents the number of write functions located in i block among write functions accessing j area. 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)을 이용하며,
상기 정수 선형 프로그래밍에서 사용되는 수학식은 아래와 같은 것을 특징으로 하는 프로그램 정적 분석을 통한 플래시 메모리의 랜덤 쓰기 연산의 속도 향상 방법.
--- 수학식
여기서, 는 j 영역에 접근하는 쓰기 함수 중에서 i 블록에 위치하는 쓰기 함수의 개수를 나타내며, 는 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.
--- Equation
here, Represents the number of write functions located in i block among write functions accessing j area. Indicates whether write functions accessing the j region are included in the i block.
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)
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)
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 |
-
2012
- 2012-12-11 KR KR1020120143550A patent/KR101361670B1/en active IP Right Grant
Patent Citations (3)
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)
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 |