KR20060120850A - Data writing apparatus and method for improved flash memory's performance in file system - Google Patents
Data writing apparatus and method for improved flash memory's performance in file system Download PDFInfo
- Publication number
- KR20060120850A KR20060120850A KR1020050043056A KR20050043056A KR20060120850A KR 20060120850 A KR20060120850 A KR 20060120850A KR 1020050043056 A KR1020050043056 A KR 1020050043056A KR 20050043056 A KR20050043056 A KR 20050043056A KR 20060120850 A KR20060120850 A KR 20060120850A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- file system
- flash memory
- cache memory
- request
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
Description
도 1은 통상적인 NAND 플래시 메모리의 구성 예시도,1 is an exemplary configuration diagram of a conventional NAND flash memory.
도 2는 본 발명의 실시 예에 따른 이동통신 단말기의 블록 구성도,2 is a block diagram of a mobile communication terminal according to an embodiment of the present invention;
도 3은 본 발명의 실시 예에 따른 이동통신 단말기에서 플래시 메모리에 데이터가 저장되는 동작의 과정을 보이는 흐름도,3 is a flowchart illustrating an operation of storing data in a flash memory in a mobile communication terminal according to an embodiment of the present invention;
도 4는 본 발명의 실시 예에 따른 이동통신 단말기에서 Read 요청 신호 또는 Seek 요청 신호에 의해 플래시 메모리에 데이터가 저장되는 동작의 흐름도.4 is a flowchart illustrating an operation in which data is stored in a flash memory by a read request signal or a seek request signal in a mobile communication terminal according to an exemplary embodiment of the present invention.
본 발명은 이동통신 단말기의 파일 시스템(File System)에 관한 것으로, 특히 NAND 플래시 메모리(Flash memory)에 데이터를 저장하는 방법에 대한 것이다. The present invention relates to a file system of a mobile communication terminal, and more particularly, to a method of storing data in a NAND flash memory.
통상적으로 이동통신 단말기에서 보관용 데이터를 저장하기 위한 파일 시스 템은 NAND 플래시 메모리를 사용한다. 이에 따라 상기 이동통신 단말기에서 특정 애플리케이션(Application)에 의해 데이터가 생성되거나, 프로그래머(Programmer)에 의해 데이터가 작성되는 경우, 상기 데이터들이 NAND 플래시 메모리에 기록(write)되는 속도는, 기본적인 NAND 플래시 메모리의 특성에 따라 결정된다. 그리고 이러한 데이터의 기록 속도는, NAND 플래시 메모리에 저장된 데이터를 독출(read)하는 속도와 더불어, NAND 플래시 메모리의 성능을 결정짓는 중요한 요소 중 하나이다. 그리고 상기 NAND 플래시 메모리의 특성은 NAND 플래시 메모리의 구조적인 특징에 의해 비롯된다. In general, a file system for storing archival data in a mobile communication terminal uses a NAND flash memory. Accordingly, when data is generated by a specific application in the mobile communication terminal or data is written by a programmer, the speed at which the data is written to the NAND flash memory is a basic NAND flash memory. It depends on the characteristics of the. In addition to the speed of reading data stored in the NAND flash memory, the data writing speed is one of important factors that determine the performance of the NAND flash memory. And the characteristics of the NAND flash memory is due to the structural characteristics of the NAND flash memory.
도 1은 이러한 일반적인 NAND 플래시 메모리의 구조의 예를 보이고 있는 도면이다. 도 1을 참조하여 살펴보면, NAND 플래시 메모리는 블록이 모여서 전체 메모리 시스템을 구성한다. 그리고 하나의 블록은 일반적으로 32개의 페이지(Page)로 구성된다. 그리고 하나의 페이지는 일반적으로 528바이트(Byte) 단위의 크기를 갖는다. 이 페이지는 다시 크게 세 영역으로 나뉜다. 이를 A, B, C 영역이라고 하는데, A 영역은 256바이트, B 영역은 256바이트, 그리고 C 영역이 16바이트의 크기를 갖는다. 그리고 이에 따라 NAND 플래시 메모리는 페이지 단위로 데이터를 독출하거나 기록할 수 있다. 1 shows an example of the structure of such a general NAND flash memory. Referring to FIG. 1, in NAND flash memory, blocks form a whole memory system. And one block is generally composed of 32 pages. In addition, one page generally has a size of 528 bytes. This page is further divided into three areas. This is called an area A, B, or C. The area A has 256 bytes, the area B has 256 bytes, and the area C has 16 bytes. Accordingly, the NAND flash memory may read or write data in units of pages.
이에 따라서 NAND 플래시 메모리는, 데이터를 기록할 경우, 하나의 데이터를 기록할 때마다 상기 데이터가 기록될 페이지를 로드(Load)하는 과정을 거쳐야만 한다. 그리고 이러한 페이지 로드에 소요되는 시간은 NAND 플래시 메모리에 데이터를 기록하는 시간의 대부분을 소요한다. 이에 따라 데이터의 크기에 상관없이 데이터 를 기록하는 횟수에 비례하여 전체적인 데이터 기록 시간은 증가하게 된다. 일 예를 들어 50바이트 크기의 데이터 10개와, 500바이트 크기의 데이터 1개를 상기 NAND 플래시 메모리에 기록할 경우를 살펴보면, 우선 상기 50 바이트 크기의 데이터 10개를 기록하는 경우에는, 상기 파일 시스템의 제어부는 NAND 플래시 메모리로부터 상기 데이터들이 저장될 페이지를 10회 로드하여야만 한다. 그러나 만약 상기 500바이트 크기의 데이터 1개를 기록하는 경우에는, 상기 파일 시스템의 제어부는 상기 저장될 페이지를 단 한 번만 로드하면 된다. 이에 따라 상기 50바이트들이 10회 저장될 경우에 비해 상기 데이터를 상기 NAND 플래시 메모리에 저장하는 속도는 거의 10배 가까이 증가하게 된다. Accordingly, when writing data, the NAND flash memory must go through a process of loading a page on which the data is to be written every time one data is written. This page load takes much of the time to write data to NAND flash memory. Accordingly, the overall data recording time increases in proportion to the number of times data is recorded regardless of the size of the data. For example, a case in which 10 pieces of data of 50 bytes and 1 piece of data of 500 bytes are written to the NAND flash memory will be described. The controller must load a page for storing the data 10 times from the NAND flash memory. However, if one piece of 500-byte data is recorded, the controller of the file system only needs to load the page to be stored once. As a result, the speed of storing the data in the NAND flash memory is increased by almost 10 times compared with the case where the 50 bytes are stored ten times.
그러나 이를 위해 1회에 저장되는 데이터의 크기를 크게 한다면, 하나의 페이지 안에 낭비되는 메모리 공간이 증가하게 되므로, NAND 플래시 메모리에 저장되는 데이터의 크기가 클수록, NAND 플래시 메모리의 이용 효율성은 감소하게 된다. 따라서 현재 NAND 플래시 메모리에 데이터를 기록하는 방법은, 데이터의 기록 속도를 증가시킬 경우 NAND 플래시 메모리의 이용 효율성이 감소되고, 또한 만약 NAND 플래시 메모리의 이용 효율성을 증가시킬 경우 상기 데이터의 기록 속도가 감소되는 문제점이 있었다. However, for this purpose, if the size of data stored at one time is increased, the memory space wasted in one page increases, so the larger the size of data stored in the NAND flash memory, the more efficient the use of the NAND flash memory is. . Therefore, in the current method of writing data to the NAND flash memory, increasing the writing speed of the data decreases the utilization efficiency of the NAND flash memory, and if increasing the utilization efficiency of the NAND flash memory, the writing speed of the data decreases. There was a problem.
이러한 문제점을 해결하기 위하여 현재 등장하는 방법으로는, 상기 NAND 플래시 메모리에, 일정 사이즈 이상이 될 때까지 또는 일정 시간이 될 때까지 데이터 의 기록을 지연하는 방법이 있다. 그러나 이러한 경우 상기 NAND 플래시 메모리에 저장되는 데이터와 상기 지연되는 데이터 사이에 데이터 무결성을 유지하게 못하게 되는 문제점이 발생할 수도 있다. 즉, 데이터가 기록이 지연되어 NAND 플래시 메모리에 저장되지 않음에 따라, 애플리케이션이 데이터를 기록하였음에도 불구하고, 상기 기록한 데이터를 독출할 수 없는 경우가 발생할 수 있다는 문제점이 있다. In order to solve such a problem, there is a method currently presenting a method of delaying the writing of data in the NAND flash memory until a predetermined size or more or a predetermined time. In this case, however, a problem may occur in that data integrity cannot be maintained between the data stored in the NAND flash memory and the delayed data. That is, as data is not stored in the NAND flash memory due to a delay in writing, there is a problem that a case in which the written data cannot be read even though an application has written data.
그러므로 본 발명의 목적은, NAND 플래시 메모리를 사용하는 파일 시스템을 구비한 이동통신 단말기에서, 플래시 메모리의 데이터 무결성을 유지하면서, 상기 플래시 메모리의 이용 효율성을 감소시키지 않고, 데이터의 기록 속도를 증가시킬 수 있도록 하는 장치 및 방법을 제공함에 있다. Therefore, an object of the present invention is to increase the writing speed of data in a mobile communication terminal having a file system using a NAND flash memory while maintaining the data integrity of the flash memory, without reducing the utilization efficiency of the flash memory. The present invention provides an apparatus and a method for enabling the same.
상술한 목적을 달성하기 위한 본 발명의 데이터 기록 장치는, 기 설정된 캐쉬 메모리 영역을 구비한 램(RAM : Random Access Memory)과, 상기 파일 시스템의 보관용 데이터를 저장하기 위한 플래시 메모리(Flash Memory)와, 특정 애플리케이션(Application)으로부터 상기 파일 시스템에 데이터를 기록하기 위한 데이터 기록 요청이 있는 경우 상기 기 설정된 캐쉬 메모리 영역에 상기 데이터를 저장하며, 상기 파일 시스템을 사용하는 적어도 하나의 애플리케이션으로부터 특정 데이터의 독출(read) 요구나 검색(Seek) 요구 중 어느 하나가 감지되는 경우 상기 캐쉬 메모리 영역에 저장된 데이터를 상기 플래시 메모리로 이동시키도록 제어하는 제어부를 구비한다. A data recording apparatus of the present invention for achieving the above object is a random access memory (RAM) having a predetermined cache memory area, and a flash memory for storing data for storage of the file system And storing the data in the preset cache memory area when there is a data recording request for recording data from the specific application to the file system, and storing the data from at least one application using the file system. The controller may be configured to control data stored in the cache memory area to be moved to the flash memory when one of a read request and a seek request is detected.
또한 데이터 기록 방법은, 상기 제어부가, 적어도 하나의 애플리케이션(Application)으로부터 상기 파일 시스템의 사용 요청이 있는 경우, 상기 램의 일정 영역을 상기 캐쉬 메모리 영역으로 설정하는 캐쉬 메모리 설정 단계와, 상기 제어부가, 상기 애플리케이션 중 데이터의 기록을 요청한 애플리케이션이 있는지를 체크하는 데이터 기록 요청 체크 단계와, 상기 제어부가, 상기 데이터의 기록 요청이 있는 경우, 상기 기록이 요청된 데이터를 상기 캐쉬 메모리에 저장하는 캐쉬 메모리 저장 단계와, 상기 제어부가, 상기 적어도 하나의 애플리케이션 중 어느 하나로부터 특정 데이터의 검색(seek) 요청이나 독출(read) 요청 중 어느 하나를 감지한 경우, 상기 캐쉬 메모리 영역에 저장된 데이터를 상기 플래시 메모리로 이동시키는 데이터 이동 단계를 구비한다. The data recording method may further include: a cache memory setting step of setting, by the controller, a predetermined area of the RAM as the cache memory area when a request for use of the file system is received from at least one application; A data record request check step of checking whether there is an application that has requested the recording of data among the applications; and a cache memory configured to store, in the cache memory, the data for which the recording is requested, when the controller requests a recording of the data. And storing the data stored in the cache memory area when the controller detects any one of a seek request or a read request of specific data from any one of the at least one application. And a data moving step of moving to.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 도면들 중 동일한 구성 요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의하여야 한다. 하기 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the same elements in the figures are denoted by the same reference numerals wherever possible. In the following description and the annexed drawings, detailed descriptions of well-known functions and configurations that may unnecessarily obscure the subject matter of the present invention will be omitted.
먼저 본 발명의 완전한 이해를 돕기 위해, 본 발명의 기본 원리를 설명하면, 본 발명에서는, 일반적으로 NAND 플래시 메모리보다 접근 속도가 훨씬 빠른 램(RAM: Random Access Memory)의 일부 영역을 상기 NAND 플래시 메모리(이하 플래시 메모리라 칭한다)에 데이터를 기록하기 위한 캐쉬 메모리로 사용할 수 있도록 한다. 즉, 상기 램의 일정 부분을 상기 캐쉬 메모리로 설정하여 두고, 상기 데이터의 기록 요청이 있을 경우, 이를 램에 설정된 캐쉬 메모리에 기록하도록 한다. 그리고 기 설정된 조건에 따라 상기 캐쉬 메모리에 저장된 데이터를 NAND 플래시 메모리에 기록한다. 여기서 상기 기 설정된 조건이라는 것은, 상기 캐시 메모리에 저장된 데이터의 크기가 상기 플래시 메모리의 데이터 기록 단위에 따른 데이터 크기 이상이 되는 경우, 또는 데이터 무결성을 위해 적어도 하나 이상의 애플리케이션으로부터의 데이터 독출(Read) 요구이거나 검색(seek) 요구가 감지된 경우일 수 있다. First of all, in order to facilitate a thorough understanding of the present invention, the basic principles of the present invention will be described. In the present invention, a region of random access memory (RAM), which is generally much faster than a NAND flash memory, is moved to the NAND flash memory. It can be used as a cache memory for recording data (hereinafter referred to as flash memory). That is, a predetermined portion of the RAM is set as the cache memory, and when a write request of the data is requested, the RAM is written to the cache memory set in the RAM. The data stored in the cache memory is written to the NAND flash memory according to a preset condition. Herein, the preset condition means that a data read request from at least one application is required when the size of data stored in the cache memory is equal to or larger than the data size according to the data recording unit of the flash memory, or for data integrity. Or if a seek request is detected.
도 2는 이러한 본 발명의 실시 예에 따른 파일 시스템을 구비한 이동통신 단말기의 예를 보이고 있는 도면이다. 이 경우 상기 본 발명의 실시 예에 따른 파일 시스템은 상기 이동통신 단말기의 제어부가 제어하게 된다. 즉, 상기 본 발명의 실시 예에 따른 파일 시스템의 제어부는 상기 이동통신 단말기의 제어부가 된다. 이러한 도 2를 참조하여 살펴보면, 본 발명의 실시 예에 따른 이동통신 단말기는 메모리부(202), 키 입력부(204), 표시부(206), 베이스밴드 처리부(210), 코덱(CODEC: Coder-Decoder)(212)이 제어부(200)에 연결된다. 그리고 상기 제어부(200)는 전화 통화나 데이터 통신, 무선 인터넷 접속을 위한 프로토콜에 따라 음성 신호 및 데이터 처리를 하고 이동통신 단말기의 각 부분을 제어한다. 그리고 사용자의 키 입력을 키 입력부(204)로부터 받아서 이에 따라 표시부(206)를 제어하여 사용자의 키 입력에 따른 화상 정보를 생성하여 제공될 수 있도록 한다. 2 illustrates an example of a mobile communication terminal having a file system according to an exemplary embodiment of the present invention. In this case, the file system according to the embodiment of the present invention is controlled by the controller of the mobile communication terminal. That is, the controller of the file system according to the embodiment of the present invention becomes a controller of the mobile communication terminal. Referring to FIG. 2, a mobile communication terminal according to an embodiment of the present invention includes a
그리고 상기 제어부(200)는 특정 애플리케이션으로부터, 상기 애플리케이션이 파일 시스템을 사용하기 위한 요청이 감지되었을 경우, 상기 메모리부(202)의 램(218)에 일정 부분을 캐쉬 메모리(220)로 설정한다. 그리고 상기 애플리케이션 또는 상기 애플리케이션이 상기 파일 시스템에 데이터를 기록하기 위한 요청이 감 지되었을 경우 상기 기록이 요청된 데이터를 상기 캐쉬 메모리(220)에 기록한다. 그리고 상기 제어부(200)는, 상기 캐쉬 메모리(220)에 기록된 데이터가 일정 크기 이상 일 경우 상기 캐쉬 메모리(220)에 기록된 데이터를 상기 메모리부(202)에 구비된 플래시 메모리(222)에 기록한다. 그러나 이 뿐만 아니라, 상기 제어부(200)는 적어도 하나 이상의 애플리케이션으로부터 데이터의 독출 요구 또는 데이터의 검색 요구가 있을 경우에도, 상기 캐쉬 메모리(220)에 기록된 데이터와 상기 메모리부(202)의 플래시 메모리(222)에 기록된 데이터와의 데이터 무결성을 유지하기 위해 상기 캐쉬 메모리(220)에 기록된 데이터를 상기 플래시 메모리(222)에 기록한다. 이에 따라 본 발명의 실시 예에 따른 파일 시스템을 구비한 이동통신 단말기는, 플래시 메모리(222)의 데이터 무결성이 유지된 상태에서 플래시 메모리(222)의 데이터 기록 속도의 증가뿐 아니라, 이용 효율성 까지도 증가시킬 수 있다. When the
그리고 상기한 제어부(200)와 연결되는 메모리부(202)는 롬(ROM: Read Only Memory:216), 플래시 메모리(Flash memory:222), 램(218) 등으로 구성된다. 이 중에서 롬(216)은 제어부(200)의 처리 및 제어를 위한 프로그램과 각종 참조 데이터를 저장한다. 그리고 램(218)은 제어부(200)의 워킹 메모리(working memory)를 제공할 뿐만 아니라 상기 제어부(200)의 제어에 따라 일정 영역을 상기 플래시 메모리(222)에 기록될 데이터가 임시 저장되는 캐쉬 메모리(220)로 할당될 수 있도록 한다. 여기서 상기 캐쉬 메모리(220)는 상기 제어부(200)의 제어에 따라 램(218)의 일정 영역에 일시적으로 할당될 수도 있으나, 고정적인 메모리 영역 또는 독립적 메모리로 구성될 수도 있음은 물론이다. 그리고 상기 플래시 메모리(222)는 갱신 가능한 각종 보관용 데이터를 저장하기 위한 영역을 제공한다. 그리고 상기 캐쉬 메모리(20)로부터 입력되는 데이터를 상기 제어부(200)의 제어에 따라 기록한다. The
그리고 키 입력부(204)는 상기한 바와 같이 숫자키들을 포함한 각종 키들을 구비하며, 사용자로부터 입력되는 키 입력을 제어부(200)에 제공한다. 그리고 RF부(208)는 기지국과 RF신호를 송, 수신하는 역할을 한다. 그리고 수신된 신호를 IF(Intermediate Frequency)신호로 변환하여 상기한 제어부(200)와 연결되어 있는 베이스밴드 처리부(210)로 출력하고 베이스밴드 처리부(210)로부터 입력되는 IF신호를 RF신호로 변환하여 송신한다. 그리고 상기한 베이스밴드 처리부(210)는 제어부(200)와 RF부(208)간의 인터페이스를 제공하는 BBA(Baseband Analog ASIC)로서, 제어부(200)로부터 인가되는 베이스밴드의 디지털 신호를 아날로그 IF신호로 변환하여 RF부(208)에 인가하며, RF부(208)로부터 인가되는 아날로그 IF신호를 베이스밴드의 디지털 신호로 변환하여 제어부(200)에 인가한다. 그리고 제어부(200)와 연결된 코덱(212)은 증폭부(214)를 통해 마이크 및 스피커와 접속되며, 마이크로부터 입력되는 음성 신호를 PCM(Pulse Code Modulation) 부호화(Encoding)하여 음성 데이터를 제어부(200)에 출력하고 제어부(200)로부터 입력되는 음성 데이터를 PCM 복호화(Decoding)하여 증폭부(214)를 통해 스피커로 출력한다. 그리고 증폭부(214)는 마이크로부터 입력되는 음성 신호나 스피커로 출력되는 음성 신호를 증폭하는데, 스피커의 음량과 마이크의 이득을 제어부(200)의 제어에 따라 조절한다. The
도 3은 이러한 본 발명의 실시 예에 따른 파일 시스템을 구비한 이동통신 단말기의 제어부(200)가 본 발명의 실시 예에 따라 캐쉬 메모리(220)을 설정하고, 기 설정된 조건에 따라 데이터를 플래시 메모리(222)에 기록하는 동작의 과정을 보이는 흐름도이다. 여기서 상기 도 3은, 설명상 편의를 위해 상기 제어부(200)가 파일 시스템의 사용이 요청되었을 경우 일시적으로 램(218)의 일부 영역을 캐쉬 메모리(220)로 설정하는 경우를 예로 들어 설명하기로 한다. 3 is a block diagram of a mobile communication terminal having a file system according to an embodiment of the present invention, the
도 3을 참조하여 살펴보면, 본 발명의 실시 예에 따른 파일 시스템을 구비한 이동통신 단말기의 제어부(200)는 300단계로 진행하여 적어도 하나 이상의 애플리케이션의 요청에 따른 동작을 수행한다. 여기서 상기 애플리케이션의 요청에 따른 동작이라는 것은, 이동통신 단말기에 구비된 카메라부가 특정 이미지를 촬상할 경우, 상기 이미지를 촬상하는 애플리케이션과 같이, 일반적인 이동통신 단말기 동작을 위한 애플리케이션일 수도 있으며, 프로그래머(Programmer)에 의해 작성된 프로그램이 상기 이동통신 단말기에 입력되기 위한 애플리케이션일 수도 있다. 또한 상기 이동통신 단말기가 전원이 입력된 후, 사용자의 키 입력과 같은 이벤트(event)의 발생을 감지하는 애플리케이션일 수도 있음은 물론이다. Referring to FIG. 3, the
그리고 본 발명의 실시 예에 따른 이동통신 단말기의 제어부(200)는 302단계로 진행하여 특정 애플리케이션으로부터 파일 시스템의 사용이 요청되었는지를 체크한다. 여기서 상기 파일 시스템의 사용을 요청하는 애플리케이션은 하나 이상이 될 수도 있음은 물론이다. 그리고 일반적으로 파일 시스템에서 사용되는 동작 명령을 참조하여 살펴보면 하기 표 1과 같다. The
따라서 상기 fs_open 명령에 따른 동작과 같은 동작이 수행될 경우, 상기 제어부(200)는 상기 302단계에서 특정 애플리케이션으로부터의 파일 시스템 사용 요청이 있다고 판단한다. 이 경우 상기 제어부(200)는 304단계로 진행하여 램(218)의 일부 영역을 데이터의 저장 시 이를 임시 저장할 수 있는 캐쉬 메모리(220)로 설정한다. 여기서 상기 캐쉬 메모리(220)로 설정되는 영역의 크기는, 상기 캐쉬 메모리로 설정되는 영역의 크기에 따라 상기 플래시 메모리(222)에 데이터가 기록되는 속도의 향상 정도를 분석하기 위한 실험의 결과에 따라 가장 적절한 값으로 튜닝(tuning)된 크기로 설정한다. Therefore, when an operation such as an operation according to the fs_open command is performed, the
상기 304단계에서 기 설정된 값으로 램(218)의 일부 영역에 캐쉬 메모리 영역이 설정되면, 제어부(200)는 306단계로 진행하여, 상기 파일 시스템의 사용을 요청한 애플리케이션으로부터 데이터의 기록 요청이 있는지를 체크한다. 여기서 상기 데이터의 기록 요청을 상기 표 1을 참조하여 살펴보면, 상기 fs_write 명령에 따른 동작이 수행될 경우를 예로 들 수 있다. 그리고 만약 상기 306단계에서 데이터의 기록 요청이 감지되지 않은 경우, 제어부(200)는 316단계로 진행하여 상기 파일 시스템 사용을 요청한 애플리케이션으로부터 파일 시스템의 사용 종료 요청이 있는지를 체크한다. 여기서 상기 파일 시스템의 사용 종료 요청을 상기 표 1을 참조하여 살펴보면, 상기 fs_close 명령에 따른 동작이 수행될 경우를 예로 들 수 있다. If a cache memory area is set in a portion of the
그리고 만약 상기 316단계에서 상기 파일 시스템의 사용 종료 요청이 감지되지 않은 경우, 제어부(200)는 다시 306단계로 진행하여 상기 데이터 기록 요청이 있는지를 감지한다. 이 경우 상기 302단계에서 파일 시스템의 사용이 요청된 애플리케이션의 개수가 하나 이상일 경우에는 각각의 애플리케이션으로부터 모두 상기 파일 시스템의 사용 종료 요청이 감지되었는 지를 체크한다. 그리고 만약 상기 316단계에서 파일 시스템의 사용을 요청한 모든 애플리케이션들로부터 파일 시스템의 사용 종료 요청이 감지된 경우라면, 제어부(200)는 318단계로 진행하여 현재까지 캐쉬 메모리(220)에 저장된 데이터를 플래시 메모리(222)로 이동시킨다. 그리고 320단계로 진행하여 상기 304단계에서 램(218)의 일부 영역에 할당한 캐쉬 메모리(220) 설정을 해제하여, 상기 램(218)의 전체 영역을 상기 제어부(200)의 워킹 메모리를 제공하는 램(218) 본래의 동작을 위한 영역으로 사용될 수 있도록 한다. If the use end request of the file system is not detected in
그러나 만약 상기 306단계에서 데이터의 기록 요청이 감지된 경우, 제어부(200)는 308단계로 진행하여 상기 기록이 요청된 데이터를 캐쉬 메모리(220)에 저장한다. 그리고 제어부(200)는 310단계로 진행하여 상기 캐쉬 메모리(220)에 저장된 데이터의 상태를 체크하여 상기 저장된 데이터의 크기가 일정 크기 이상인지를 체크한다. 여기서 상기 캐쉬 메모리(220)에 저장된 데이터의 일정 크기라는 것은 상기 플래시 메모리(222)의 데이터 기록 단위에 해당하는 페이지에 해당되는 데이터 크기일 수도 있음은 물론이다. 이에 따라 본 발명에서는 상기 플래시 메모리(220)의 이용 효율을 높일 수 있다. However, if a data write request is detected in
그리고 만약 상기 310단계에서 캐쉬 메모리(220)의 상태를 체크한 결과 상기 캐쉬 메모리(220)에 저장된 데이터가 상기 일정 크기가 되지 않은 경우, 제어부(200)는 파일 시스템 사용을 요청한 적어도 하나의 애플리케이션들로부터 플래시 메모리(222)에 기록된 데이터의 검색(seek) 또는 독출(read) 요구가 있는지를 체크한다. 그리고 상기 데이터의 검색 또는 독출 요구가 있을 경우 현재 캐쉬 메모리(220)에 저장된 데이터의 크기에 관계없이 상기 캐쉬 메모리(220)에 저장된 데이터를 상기 플래시 메모리(222)로 이동시킨다. 이는 데이터의 무결성을 유지하기 위한 것으로, 상기 애플리케이션이 데이터를 기록하는 경우, 기록된 데이터가 바로 플래시 메모리(222)로 기록되는 것이 아니라 상기 캐쉬 메모리(220)를 거쳐서 기록되기 때문에, 상기 애플리케이션이 비록 데이터를 기록하였다고 할지라도 상기 기록된 데이터가 미쳐 플래시 메모리(222)에 저장되어 있지 않음에 따라 오류가 발생하는 것을 막기 위함이다. 이러한 상기 314단계에 대해서는 하기 도 4에서 좀 더 자세히 살펴보기로 한다. If the data stored in the
한편 만약 상기 310단계에서, 상기 캐쉬 메모리(220)에 저장된 데이터의 크기가 상기 일정 크기 이상일 경우에는 제어부(200)는 312단계로 진행하여 상기 캐쉬 메모리(220)에 저장된 데이터를 플래시 메모리(222)로 이동시킨다. 그리고 상기 제어부(200)는 다시 상기 306단계로 진행하여 상기 파일 시스템의 사용을 요청한 애플리케이션으로부터 데이터의 기록 요청이 있는지를 체크한다. 그리고 상기 306단계에서, 제어부(200)는 데이터의 기록 요청이 없을 경우 상기 316단계로 진행하여 현재 램(218)에 설정된 캐쉬 메모리(220)를 유지할 것인지 아니면 이를 해제할 것인지를 판단한다. 따라서 본 발명은 플래시 메모리의 데이터 무결성을 유지하면서, 상기 플래시 메모리의 이용 효율성을 감소시키지 않고, 데이터의 기록 속도를 증가시킬 수 있다. If the size of the data stored in the
도 4는 본 발명의 실시 예에 따른 파일 시스템을 구비한 이동통신 단말기에서 데이터의 독출 요구 또는 데이터의 검색 요구가 있을 경우 이에 따라 상기 임시 설정된 캐쉬 메모리(220)에 저장되어 있는 데이터를 상기 플래시 메모리(222)로 이동시키는 동작을 보이고 있는 흐름도이다. 도 4를 참조하여 살펴보면, 상기 도 3의 310단계에서 캐쉬 메모리(220)에 저장된 데이터의 크기가 일정 크기 이상이 아닐 경우, 제어부(200)는 400단계로 진행하여 데이터의 독출 요구가 있는 애플리케이션이 있는지를 체크한다. 여기서, 상기 데이터의 독출을 요구하는 애플리케이션은 상기 302단계에서 파일 시스템의 사용을 요청한 적어도 하나의 애플리케이션 중 하나임은 물론이다. 4 illustrates data stored in the temporarily set
그리고 상기 400단계에서 데이터의 독출 요구가 있을 경우, 제어부(200)는 404단계로 진행하여 현재까지 캐쉬 메모리(220)에 저장되어 있는 데이터를 플래시 메모리(222)로 이동시킨다. 여기서 상기 플래시 메모리(222)로 이동되는 데이터의 크기는 상기 310단계에서 언급한 일정 크기 미만일 수도 있음은 물론이다. 그리고 만약 상기 400단계에서 데이터의 독출 요구가 감지되지 않았을 경우, 제어부(200)는 402단계로 진행하여 상기 특정 데이터의 검색을 요청한 애플리케이션이 있는 지를 체크한다. 여기서 상기 데이터의 검색을 요청한 애플리케이션 역시 상기 302단계에서 파일 시스템의 사용을 요청한 적어도 하나의 애플리케이션 중 하나임은 물론이다. 그리고 만약 상기 402단계에서 데이터의 검색을 요구한 애플리케이션이 있을 경우 제어부(200)는 404단계로 진행하여 제어부(200)는 404단계로 진행하여 현재까지 캐쉬 메모리(220)에 저장되어 있는 데이터를 플래시 메모리(222)로 이동시킨다. 이 경우도 상기한 바와 마찬가지로 상기 플래시 메모리(222)로 이동되는 데이터의 크기는 상기 310단계에서 언급한 일정 크기 미만일 수도 있음은 물론이다. 그러나 만약 상기 402단계에서도 특정 데이터의 검색을 요구한 애플리케이션이 없을 경우에는, 제어부(200)는 다시 306단계로 진행하여 데이터의 상기 파일 시스템의 사용을 요청한 애플리케이션들 중에서 데이터의 기록을 요청한 애플리케이션이 있는 지를 체크한다. 이에 따라서 본 발명은 데이터의 독출 요구 또는 데이터의 검색 요구가 있을 경우, 상기 캐쉬 메모리(220)에 저장된 데이터의 크기가 기 설정된 크기 이상이 아니라고 할지라도, 상기 캐쉬 메모리(220)에 저장된 데이터를 플래시 메모리(222)에 저장한다. 이에 따라 본 발명의 실시 예에 따른 파일 시스템을 구비한 이동통신 단말기에서는, 데이터의 독출 요구 또는 특정 데이터의 검색 요구가 있을 경우, 상기 캐쉬 메모리(220)과 플래시 메모리(222)간에 데이터 무결성이 유지되므로 데이터 무결성 결여로 인한 오류의 발생을 방지할 수 있다. If there is a request to read data in
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 특히 본 발명의 실시 예에서는 본 발명의 실시 예에 따른 파일 시스템이 이동통신 단말기에 구비되어 있는 경우를 예로 들어 설명하였으나, 일정 부분을 캐쉬 메모리로 할당하여 사용할 수 있는 램과, 플래시 메모리, 그리고 상기 램의 일정 영역을 애플리케이션의 파일 시스템 사용 요청에 따라 상기 캐쉬 메모리로 설정하고, 데이터의 기록 요청이 있는 경우, 상기 기록이 요청된 데이터를 상기 캐쉬 메모리에 저장하며, 또한 상기 캐쉬 메모리에 저장된 데이터가 일정 크기 이상인 경우 또는 데이터의 독출 요구나 특정 데이터의 검색 요구가 있는 경우, 상기 캐쉬 메모리에 저장된 데이터를 상기 플래시 메모리로 이동시키도록 제어하는 제어부를 구비하는 본 발명의 실시 예에 따른 파일 시스템이, 이동통신 단말기 외에 다른 기기에도 사용될 수도 있음은 물론이다. 그리고 이에 따라 본 발명의 범위가 상기 이동통신 단말기에 국한되지 않음은 물론이다. Meanwhile, in the above description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Particularly, in the embodiment of the present invention, a case in which a file system according to an embodiment of the present invention is provided in a mobile communication terminal has been described as an example. However, a RAM, a flash memory, and the above may be allocated and used as a cache memory. A certain area of RAM is set as the cache memory according to an application file system use request, and when there is a request for writing data, the write requested data is stored in the cache memory, and the data stored in the cache memory The file system according to the embodiment of the present invention includes a control unit which controls to move the data stored in the cache memory to the flash memory when there is a predetermined size or more, or when there is a request for reading data or searching for specific data. It can also be used for other devices besides mobile terminals. As a matter of course. And, of course, the scope of the present invention is not limited to the mobile communication terminal.
아울러 본 발명의 실시 예에서는 플래시 메모리의 형태가 페이지 단위로 데이터를 입출력 하는 NAND 플래시 메모리의 경우를 예로 들어 설명하였으나 이에 국한되지 않고, 상기 데이터의 기록이 일정 데이터 크기의 단위를 기준으로 기록되는 메모리인 경우에도 적용될 수 있음은 물론이다. 따라서 발명의 범위는 설명된 실시 예에 의해 정할 것이 아니고, 특허청구범위와 특허청구범위의 균등한 것에 의해 정하여져야 한다. In addition, the embodiment of the present invention has been described as an example of a NAND flash memory in which the shape of the flash memory input and output data in units of pages, but is not limited to this, the memory in which the recording of the data is recorded based on a unit of a certain data size Of course, it can also be applied to. Therefore, the scope of the invention should not be defined by the described embodiments, but should be determined by the equivalent of claims and claims.
본 발명에서는, 일반적으로 접근 속도가 훨씬 빠른 램의 일부 영역을 상기 플래시 메모리에 데이터를 기록하기 위한 캐쉬 메모리로 사용할 수 있도록 한다. 그리고 상기 캐시 메모리에 저장된 데이터의 크기가 상기 플래시 메모리의 데이터 크기 단위 이상이 되는 경우, 또는 적어도 하나 이상의 애플리케이션으로부터의 데이터 독출(Read) 요구 또는 특정 데이터의 검색(seek) 요구가 감지된 경우에 상기 캐쉬 메모리에 저장된 데이터를 상기 플래시 메모리로 이동시키도록 한다. 이에 따라 본 발명에서는 플래시 메모리의 데이터 무결성을 유지하면서, 상기 플래시 메모리의 이용 효율성을 감소시키지 않고, 데이터의 기록 속도를 증가시킬 수 있다.In the present invention, a portion of the RAM which is generally much faster than the access speed can be used as a cache memory for writing data to the flash memory. And when a size of data stored in the cache memory is equal to or larger than a data size unit of the flash memory, or when a data read request or a seek of specific data is detected from at least one or more applications. The data stored in the cache memory is moved to the flash memory. Accordingly, in the present invention, it is possible to increase the data writing speed without reducing the efficiency of use of the flash memory while maintaining the data integrity of the flash memory.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050043056A KR20060120850A (en) | 2005-05-23 | 2005-05-23 | Data writing apparatus and method for improved flash memory's performance in file system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050043056A KR20060120850A (en) | 2005-05-23 | 2005-05-23 | Data writing apparatus and method for improved flash memory's performance in file system |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20060120850A true KR20060120850A (en) | 2006-11-28 |
Family
ID=37706828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050043056A KR20060120850A (en) | 2005-05-23 | 2005-05-23 | Data writing apparatus and method for improved flash memory's performance in file system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20060120850A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101014573B1 (en) * | 2007-06-21 | 2011-02-16 | 주식회사 코아로직 | Memory access apparatus, method and computer readable medium recorded with program executing the method |
KR101023013B1 (en) * | 2009-03-19 | 2011-03-24 | 주식회사 에이텍 | Method for data saving of file system based nand flash memory |
-
2005
- 2005-05-23 KR KR1020050043056A patent/KR20060120850A/en not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101014573B1 (en) * | 2007-06-21 | 2011-02-16 | 주식회사 코아로직 | Memory access apparatus, method and computer readable medium recorded with program executing the method |
KR101023013B1 (en) * | 2009-03-19 | 2011-03-24 | 주식회사 에이텍 | Method for data saving of file system based nand flash memory |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307769B2 (en) | Data storage method, apparatus and storage medium | |
EP2732374B1 (en) | Mobile memory cache read optimization | |
KR101940963B1 (en) | Volatile memory architecture in non-volatile memory devices and related controllers | |
WO2022134741A1 (en) | Reread command processing method, flash memory controller, and solid-state drive | |
US9978384B2 (en) | Audio decoding using modulator-demodulator | |
US6944060B2 (en) | Non-volatile storage device and control method thereof | |
US20080125170A1 (en) | Apparatus and method for mobile communication by using non-volatile memory device | |
US10416907B2 (en) | Storage system, storage control apparatus, and method of controlling a storage device | |
KR101970712B1 (en) | Device and method for moving data in terminal | |
US20180032264A1 (en) | Reducing read latency | |
US20090313420A1 (en) | Method for saving an address map in a memory device | |
KR20070063132A (en) | Apparatus and method for manage a bad block | |
US20140258247A1 (en) | Electronic apparatus for data access and data access method therefor | |
JP5330549B2 (en) | Communication device with storage function | |
KR20060120850A (en) | Data writing apparatus and method for improved flash memory's performance in file system | |
WO2021184996A1 (en) | Data storage method and apparatus for database | |
KR100651370B1 (en) | Method for processing file of sub memory in wireless terminal | |
CN102467557B (en) | Data de-duplication processing method | |
CN113010514B (en) | Thermal loading method and device | |
US20100099466A1 (en) | Communication device and power saving method thereof | |
KR20240010042A (en) | Data access methods, devices, and non-transitory computer-readable storage media | |
JP5269213B2 (en) | Communication device with storage function | |
US8539170B2 (en) | Decoding circuit | |
US11726978B2 (en) | Computer program for providing efficient change data capture in a database system | |
US11055231B2 (en) | Data storage devices and data processing methods of skipping editing of fields in H2F table when consecutive addresses are present in F2H table |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |