KR100847021B1 - Data storage apparatus, method for data storage and computer readable record medium on which the method is recorded - Google Patents

Data storage apparatus, method for data storage and computer readable record medium on which the method is recorded Download PDF

Info

Publication number
KR100847021B1
KR100847021B1 KR1020060104446A KR20060104446A KR100847021B1 KR 100847021 B1 KR100847021 B1 KR 100847021B1 KR 1020060104446 A KR1020060104446 A KR 1020060104446A KR 20060104446 A KR20060104446 A KR 20060104446A KR 100847021 B1 KR100847021 B1 KR 100847021B1
Authority
KR
South Korea
Prior art keywords
data
storage device
block
temporary storage
blocks
Prior art date
Application number
KR1020060104446A
Other languages
Korean (ko)
Other versions
KR20080037385A (en
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 KR1020060104446A priority Critical patent/KR100847021B1/en
Publication of KR20080037385A publication Critical patent/KR20080037385A/en
Application granted granted Critical
Publication of KR100847021B1 publication Critical patent/KR100847021B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 데이터 저장 장치, 데이터 저장 방법 및 그 방법이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 더욱 상세하게는 임시 저장 장치에 저장되는 데이터의 관리 정책을 개선하여 그 성능을 향상하기 위한 데이터 저장 장치, 데이터 저장 방법 및 그 방법이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to a data storage device, a data storage method, and a computer-readable recording medium on which the method is recorded. More particularly, the present invention provides a method for improving performance by improving a management policy of data stored in a temporary storage device. A data storage device, a data storage method, and a computer readable recording medium having recorded thereon the method.

본 발명의 데이터 저장 장치는 복수의 데이터를 블록 단위로 저장하는 주 저장 장치, 주 저장 장치로 입출력되는 데이터 중 일부를 임시로 저장하는 임시 저장 장치를 포함하고, 임시 저장 장치로 입출력되는 데이터를 블록 단위로 처리하는 것을 특징으로 한다. 이러한 본 발명의 데이터 저장 장치는 임시 저장 장치의 데이터 입출력을 주 기억 장치의 특성에 맞추어 처리함으로써, 데이터 저장 장치의 성능을 최적화시킬 수 있는 효과가 있다. 또한, 플래시 메모리를 주 기억 장치로 사용하는 데이터 저장 장치에서 주 기억 장치에 대하여 수행되는 연산 중 비교적 많은 시간을 소모하는 삭제 연산과 쓰기 연산의 연산 횟수를 줄일 수 있는 효과가 있다.The data storage device of the present invention includes a main storage device for storing a plurality of data in block units, a temporary storage device for temporarily storing some of data input / output to the main storage device, and blocks data input / output to the temporary storage device. It is characterized by processing in units. The data storage device of the present invention has an effect of optimizing the performance of the data storage device by processing the data input and output of the temporary storage device in accordance with the characteristics of the main storage device. In addition, in the data storage device using the flash memory as the main memory device, the number of operations of the delete operation and the write operation that consumes a relatively large time among operations performed on the main memory device can be reduced.

플래시 메모리, 버퍼, 캐시 메모리, 블록 노드, 페이지 노드 Flash memory, buffers, cache memory, block nodes, page nodes

Description

데이터 저장 장치, 데이터 저장 방법 및 그 방법이 기록된 컴퓨터로 읽을 수 있는 기록매체{DATA STORAGE APPARATUS, METHOD FOR DATA STORAGE AND COMPUTER READABLE RECORD MEDIUM ON WHICH THE METHOD IS RECORDED}DATA STORAGE APPARATUS, METHOD FOR DATA STORAGE AND COMPUTER READABLE RECORD MEDIUM ON WHICH THE METHOD IS RECORDED}

도 1은 본 발명의 일 실시예에 따른 데이터 저장 장치를 설명하기 위한 도면이다.1 is a diagram for describing a data storage device according to an exemplary embodiment.

도 2는 본 발명의 일 실시예에 따른 임시 저장 장치로 입출력되는 데이터의 구조를 설명하기 위한 도면이다.2 is a view for explaining the structure of data input and output to the temporary storage device according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 임시 저장 장치에 쓰기 연산을 수행할 때의 동작 특성을 설명하기 위한 도면이다.FIG. 3 is a diagram for describing operation characteristics when performing a write operation on a temporary storage device according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 임시 저장 장치의 읽기 연산을 수행할 때의 동작 특성을 설명하기 위한 도면이다.FIG. 4 is a diagram for describing operation characteristics when performing a read operation of a temporary storage device according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 임시 저장 장치의 저장 공간이 포화된 경우의 동작 특성을 설명하기 위한 도면이다.5 is a diagram for describing an operating characteristic when a storage space of a temporary storage device according to an embodiment of the present invention is saturated.

****** 도면의 주요부분에 대한 부호의 설명 ************ Explanation of symbols for main parts of the drawings ******

110 : 주 저장 장치 120 : 임시 저장 장치110: main storage device 120: temporary storage device

130 : 중앙처리 장치130: central processing unit

본 발명은 데이터 저장 장치, 데이터 저장 방법 및 그 방법이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 더욱 상세하게는 임시 저장 장치에 저장되는 데이터의 관리 정책을 개선하여 그 성능을 향상하기 위한 데이터 저장 장치, 데이터 저장 방법 및 그 방법이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to a data storage device, a data storage method, and a computer-readable recording medium on which the method is recorded. More particularly, the present invention provides a method for improving performance by improving a management policy of data stored in a temporary storage device. A data storage device, a data storage method, and a computer readable recording medium having recorded thereon the method.

플래시 메모리(flash memory)는 종래의 주 저장 장치인 하드 디스크에 비해서 작고, 가볍고, 충격에 안정적이며, 전력 소모가 적은 등의 장점들을 많이 가지고 있다. 이러한 장점들은 이동통신 단말기, 휴대용 멀티미디어 플레이어(PMP, Portable Multimedia Player), 노트북 등과 같은 이동성을 필요로 하는 모바일 디바이스에 있어서 주요한 특성이 되기 때문에, 모바일 디바이스에 더욱더 많이 사용될 것으로 예상된다.Flash memory has many advantages over conventional hard disks, which are small, light, shock-resistant, and low power, compared to conventional hard disks. These advantages are expected to be used more and more in mobile devices because they are a major feature in mobile devices that require mobility, such as mobile communication terminals, portable multimedia players (PMPs), notebook computers, and the like.

하지만, 플래시 메모리는 다음과 같은 몇 가지 단점도 가지고 있다.However, flash memory also has some disadvantages:

(a) 불균형한 연산 수행 시간: 플래시 메모리는 읽기 연산과 쓰기 연산을 수행하는데 있어서 소모되는 시간이 동일하지 않다. 예컨대, 쓰기 연산이 읽기 연산 보다 8배에서 수십배 정도 느리다.(a) Unbalanced execution time: Flash memory does not have the same amount of time spent performing read and write operations. For example, a write operation is eight to ten times slower than a read operation.

(b) 직접 업데이트 불가능: 플래시 메모리는 특정 데이터 영역에 바로 새로운 데이터를 저장할 수 없다. 따라서, 데이터를 저장하기 위해서는 해당 영역에 먼저 삭제 연산을 수행한 후, 쓰기 연산을 수행하도록 하고 있다. 여기서, 삭제 연산 은 쓰기 연산에 비해 수십배 느리고, 읽기 연산해 비해서는 수백배 느리다는 단점을 가지고 있다.(b) Direct update not possible: Flash memory cannot store new data directly in a specific data area. Therefore, in order to store data, a delete operation is first performed in a corresponding area, and then a write operation is performed. Here, the delete operation is tens of times slower than the write operation and hundreds of times slower than the read operation.

(c) 물리적 마모: 플래시 메모리는 하드웨어 특성상 삭제 연산시 물리적으로 마모되기 때문에 삭제 연산을 수행할 수 있는 횟수가 제한된다. 일반적으로 플래시 메모리는 108 번 정도의 삭제 연산이 가능하다. 따라서, 플래시 메모리의 전체적 수명을 연장시키기 위해서 플래시 메모리의 모든 영역을 골고루 사용하는 것을 필요로 한다.(c) Physical wear: The flash memory is physically worn during the erase operation due to the hardware characteristics, so the number of times the erase operation can be performed is limited. Generally, flash memory can perform 10 8 erase operations. Therefore, it is necessary to use all the regions of the flash memory evenly in order to extend the overall life of the flash memory.

한편, 종래에는 플래시 메모리를 주 저장 장치로 사용하려는 시도가 있었다. 하지만, 종래 디바이스 시스템은 하드 디스크를 기반으로 한 주 저장 장치를 사용하고 있었기 때문에, 종래의 디바이스 시스템에서 플래시 메모리를 직접 적용하는데 한계가 있고, 플래시 메모리의 특성을 충분히 활용하지 못하는 문제점이 있었다. 예를 들어, 플래시 메모리의 입출력 수행은 중앙처리 장치의 연산 속도에 비해 수백에서 수천배 느린 문제점이 있었다.On the other hand, there has been an attempt to use a flash memory as a main storage device. However, since the conventional device system uses a main storage device based on a hard disk, there is a limit in directly applying the flash memory in the conventional device system, and there is a problem in that the characteristics of the flash memory are not fully utilized. For example, the input / output performance of flash memory has been a problem that is hundreds to thousands of times slower than the processing speed of the central processing unit.

따라서, 본 발명이 이루고자 하는 기술적 과제는 주 저장 장치로의 입출력 성능을 향상시킬 수 있는 데이터 저장 장치를 제공하는 것이다.Accordingly, an object of the present invention is to provide a data storage device capable of improving input / output performance to a main storage device.

본 발명이 이루고자 하는 다른 기술적 과제는 플래시 메모리를 주 저장 장치로 사용하는 시스템에 있어서, 플래시 파일 시스템이나 플래시 변환 계층 등의 플래시 메모리 관리 정책을 변경 없이 적용할 수 있도록 유연성을 가지는 데이터 저 장 장치를 제공하는 것이다.Another technical problem to be solved by the present invention is to provide a data storage device having a flexibility to apply a flash memory management policy such as a flash file system or a flash translation layer without change in a system using a flash memory as a main storage device. To provide.

본 발명이 이루고자 하는 또 다른 기술적 과제는 플래시 메모리를 주 저장 장치로 사용하는 경우, 플래시 메모리의 물리적 수명을 연장시킬 수 있는 데이터 저장 장치를 제공하는 것이다.Another object of the present invention is to provide a data storage device that can extend the physical life of a flash memory when using the flash memory as a main storage device.

본 발명이 이루고자 하는 또 다른 기술적 과제는 상술한 기술적 과제를 이루기 위한 데이터 저장 방법 및 그 방법이 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공하는 것이다.Another object of the present invention is to provide a data storage method for achieving the above technical problem and a computer readable recording medium on which the method is recorded.

본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Technical problems to be achieved by the present invention are not limited to the above-mentioned technical problems, and other technical problems not mentioned above may be clearly understood by those skilled in the art from the following description. There will be.

제1 발명에 관련되는 데이터 저장 장치는 복수의 데이터를 블록 단위로 저장하는 주 저장 장치, 주 저장 장치로 입출력되는 데이터 중 일부를 임시로 저장하는 임시 저장 장치를 포함하고, 임시 저장 장치로 입출력되는 데이터를 블록 단위로 처리하는 것을 특징으로 한다.The data storage device according to the first invention includes a main storage device for storing a plurality of data in block units, a temporary storage device for temporarily storing some of data input / output to the main storage device, and input / output to the temporary storage device. The data is processed in units of blocks.

이 데이터 저장 장치는 주 저장 장치와 임시 저장 장치를 포함한다. 주 저장 장치는 복수의 데이터를 블록 단위로 저장하고, 나아가 쓰기 연산과 읽기 연산 시에 블록 단위로 데이터를 처리한다. 임시 저장 장치는 주 저장 장치를 이용하는 중앙처리 장치의 처리 속도와 주 저장 장치의 처리 속도의 차이를 개선하기 위한 것 으로, 주 저장 장치로 입출력되는 데이터 중 일부를 임시로 저장한다. 여기서, 임시 저장 장치에 수행되는 모든 데이터 처리를 블록 단위로 행하도록 한다. 따라서, 임시 저장 장치의 데이터 처리 특성을 주 저장 장치의 특성에 맞춤으로써, 주 저장 장치를 보다 효율적으로 동작시킬 수 있다.This data storage device includes a main storage device and a temporary storage device. The main storage device stores a plurality of data in block units, and further processes data in block units in write and read operations. The temporary storage device is to improve the difference between the processing speed of the central processing unit using the main storage device and the processing speed of the main storage device. The temporary storage device temporarily stores some of data input and output to and from the main storage device. Here, all data processing performed on the temporary storage device is performed in units of blocks. Therefore, by adjusting the data processing characteristics of the temporary storage device to the characteristics of the main storage device, the main storage device can be operated more efficiently.

제2 발명에 관련되는 데이터 저장 장치는 제1 발명에 관련되는 데이터 저장 장치에 있어서, 임시 저장 장치의 블록은 블록 번호 정보 및 블록에 포함되는 데이터 개수 정보를 포함하는 블록 노드와, 데이터를 포함하는 페이지 노드로 구성되는 것이 바람직하다.A data storage device according to the second invention is a data storage device according to the first invention, wherein a block of the temporary storage device includes a block node including block number information and data number information included in the block, and data; It is preferably composed of page nodes.

이 데이터 저장 장치는 블록 단위로 데이터를 처리하는데 있어서, 하나의 블록의 구성을 블록 노드와 페이지 노드로 구성한다. 블록 노드는 블록 번호 및 데이터 개수에 대한 정보를 포함하고, 페이지 노드는 적어도 하나의 실제 데이터를 포함한다. 따라서, 복수의 데이터들의 묶음인 블록을 체계적으로 구성함으로써, 블록 관리가 수월하고, 연산 수행시 해당 데이터가 포함된 블록을 쉽게 찾을 수 있으며, 블록이 복수인 경우여도 데이터 처리를 효율 좋게 행할 수 있다.In the data storage device, data is processed in units of blocks. One block includes a block node and a page node. The block node includes information on the block number and the number of data, and the page node includes at least one actual data. Therefore, by systematically constructing a block, which is a bundle of a plurality of data, it is easy to manage the block, and it is easy to find a block including the corresponding data when performing an operation, and even if there are a plurality of blocks, data processing can be efficiently performed. .

제3 발명에 관련되는 데이터 저장 장치는, 제1 발명에 관련되는 데이터 저장 장치에 있어서, 주 저장 장치는 플래시 메모리인 것이 바람직하다.The data storage device according to the third invention is the data storage device according to the first invention, wherein the main storage device is preferably a flash memory.

이 데이터 저장 장치는 주 저장 장치로서 플래시 메모리를 사용한다. 플래시 메모리는 종래의 주 저장 장치인 하드 디스크에 비해서 작고, 가볍고, 충격에 안정적이며, 전력 소모가 적은 등의 장점을 가지고 있다. 따라서, 본 발명의 일 실시예에서는 주 저장 장치로서 플래시 메모리를 사용함과 함께, 주 저장 장치의 특성에 맞추어 블록 단위로 데이터를 처리하는 임시 저장 장치를 사용함으로써, 플래시 메모리를 주 저장 장치로서 효율 좋게 사용할 수 있고, 또한 모바일 디바이스 등에 더욱더 많이 활용할 수 있다.This data storage device uses flash memory as its primary storage device. Flash memory has advantages such as small size, light weight, impact resistance, and low power consumption compared to a conventional hard disk. Accordingly, in an embodiment of the present invention, the flash memory is efficiently used as the main storage device by using the flash memory as the main storage device and by using the temporary storage device that processes data in units of blocks in accordance with the characteristics of the main storage device. It can be used, and also can be used more and more for mobile devices.

제4 발명에 관련되는 데이터 저장 장치는, 제1 발명에 관련되는 데이터 저장 장치에 있어서, 임시 저장 장치는 버퍼 또는 캐시 메모리 중 적어도 어느 하나인 것이 바람직하다.In the data storage device according to the fourth invention, in the data storage device according to the first invention, the temporary storage device is preferably at least one of a buffer and a cache memory.

이 데이터 저장 장치는 임시 저장 장치로서 버퍼 또는 캐시 메모리 중 적어도 어느 하나를 사용한다. 버퍼 또는 캐시 메모리는 그 처리 속도가 하드 디스크나 플래시 메모리보다 빠른 특징을 가지고 있다. 따라서, 본 발명의 일 실시예에 있어서는 주 저장 장치와 이를 사용하는 중앙처리 장치 간의 속도 밸런스를 맞추기 위한 임시 저장 장치로서 버퍼 또는 캐시 메모리를 사용함과 함께, 주 저장 장치의 특성에 맞추어 블록 단위로 데이터를 처리하는 버퍼 또는 캐시 메모리를 사용함으로써, 주 저장 장치의 성능을 더욱더 향상시킬 수 있다.This data storage device uses at least either buffer or cache memory as temporary storage. Buffer or cache memory is faster than hard disk or flash memory. Accordingly, in an embodiment of the present invention, a buffer or cache memory is used as a temporary storage device to balance the speed between the main storage device and the central processing unit using the same, and data is stored in block units according to the characteristics of the main storage device. By using a buffer or cache memory to process the performance of the main storage device can be further improved.

제5 발명에 관련되는 데이터 저장 장치는, 제1 발명에 관련되는 데이터 저장 장치에 있어서, 데이터는 블록 단위로 LRU, FIFO 또는 RANDOM 중 어느 하나의 관리 정책에 의하여 관리되는 것이 바람직하다.In the data storage device according to the fifth invention, in the data storage device according to the first invention, it is preferable that data is managed by a management policy of any one of LRU, FIFO, and RANDOM on a block basis.

이 데이터 저장 장치는 LRU, FIFO 또는 RANDOM 등의 데이터 관리 정책에 의하여 임시 저장 장치로 입출력되는 데이터를 관리하되, 데이터를 블록 단위로 관리하도록 한다. 또한, 플래시 메모리를 주 저장 장치로 사용하는 경우, 플래시 파일 시스템이나 플래시 변환 계층 등의 플래시 메모리 관리 정책을 적용할 수 있다. 따 라서, 본 발명의 일 실시예에 따른 데이터 저장 장치는 효율성과 함께, 유연성을 가질 수 있다.The data storage device manages data input and output to the temporary storage device by a data management policy such as LRU, FIFO, or RANDOM, and manages data in block units. In addition, when the flash memory is used as the main storage device, a flash memory management policy such as a flash file system or a flash translation layer may be applied. Accordingly, a data storage device according to an embodiment of the present invention may have flexibility with efficiency.

제6 발명에 관련되는 데이터 저장 장치는, 제1 발명에 관련되는 데이터 저장 장치에 있어서, 데이터의 읽기 또는 쓰기 요청시, 데이터가 임시 저장 장치에 저장되어 있는 경우, 임시 저장 장치에 데이터를 블록 단위로 읽기 또는 쓰기 처리하는 것이 바람직하다.The data storage device according to the sixth invention is a data storage device according to the first invention, wherein when data is stored or stored in a temporary storage device at the time of a read or write request of data, the data storage device includes a block unit of data in the temporary storage device. It is preferable to read or write.

이 데이터 저장 장치는 중앙처리 장치로부터 데이터의 읽기 또는 쓰기 요청이 있는 경우, 주 저장 장치에서 데이터를 검색하기 이전에 임시 저장 장치에서 데이터 유무를 검색한다. 이때, 데이터가 임시 저장 장치에 저장되어 있으면, 해당 데이터를 블록 단위로 읽어내는 한편, 해당 데이터를 블록 단위로 덮어쓰기 한다. 따라서, 주 저장 장치의 읽기 또는 쓰기 연산의 횟수를 줄일 수 있고, 주 저장 장치가 플래시 메모리인 경우 횟수가 줄어든 만큼 물리적 수명을 연장시킬 수 있으며, 읽기 또는 쓰기의 처리 속도를 높일 수 있다.When there is a request to read or write data from the central processing unit, the data storage device searches for the presence or absence of data in the temporary storage device before retrieving the data from the main storage device. At this time, if the data is stored in the temporary storage device, the data is read in block units and the data is overwritten in block units. Therefore, the number of read or write operations of the main storage device can be reduced, the physical life can be extended as the number of times decreases when the main storage device is a flash memory, and the processing speed of read or write can be increased.

제7 발명에 관련되는 데이터 저장 장치는, 제1 발명에 관련되는 데이터 저장 장치에 있어서, 데이터의 읽기 또는 쓰기 요청시, 데이터가 임시 저장 장치에 저장되어 있지 않은 경우, 임시 저장 장치에 데이터를 저장하기 위한 새로운 블록을 할당한 후에, 읽기 또는 쓰기 처리하는 것이 바람직하다.The data storage device according to the seventh invention is a data storage device according to the first invention, wherein when data is read or written, when the data is not stored in the temporary storage device, the data storage device stores the data in the temporary storage device. After allocating a new block to perform the read or write process, it is desirable.

이 데이터 저장 장치는 중앙처리 장치로부터 데이터의 읽기 또는 쓰기 요청이 있는 경우, 주 저장 장치에서 데이터를 검색하기 이전에 임시 저장 장치에서 데이터 유무를 검색한다. 이때, 데이터가 임시 저장 장치에 저장되어 있지 않으면, 읽기 또는 쓰기 처리를 하기에 앞서, 임시 저장 장치에 데이터를 저장하기 위한 새로운 블록을 할당한다. 이후, 주 기억 저장 장치로부터 해당 데이터를 읽어온 후, 임시 저장 장치의 생성된 블록에 저장하여 읽어내는 한편, 해당 데이터를 임시 저장 장치의 생성된 블록에 쓰기 한다. 따라서, 주 저장 장치의 읽기 또는 쓰기 연산의 횟수를 줄일 수 있고, 주 저장 장치가 플래시 메모리인 경우 횟수가 줄어든 만큼 물리적 수명을 연장시킬 수 있으며, 읽기 또는 쓰기의 처리 속도를 높일 수 있다.When there is a request to read or write data from the central processing unit, the data storage device searches for the presence or absence of data in the temporary storage device before retrieving the data from the main storage device. In this case, if the data is not stored in the temporary storage device, a new block for storing data is allocated to the temporary storage device prior to the read or write process. Thereafter, the corresponding data is read from the main storage device, and then stored and read in the created block of the temporary storage device, and the data is written to the created block of the temporary storage device. Therefore, the number of read or write operations of the main storage device can be reduced, the physical life can be extended as the number of times decreases when the main storage device is a flash memory, and the processing speed of read or write can be increased.

제8 발명에 관련되는 데이터 저장 장치는 제1 발명에 관련되는 데이터 저장 장치에 있어서, 데이터의 읽기 또는 쓰기 요청시, 임시 저장 장치 내에서 데이터의 수정이 가장 많은 블록을 선택하고, 선택된 블록의 데이터를 주 저장 장치로 전송시키는 것이 바람직하다.In the data storage device according to the eighth invention, in the data storage device according to the first invention, a request for reading or writing data selects a block having the most data modification in the temporary storage device, and selects the data of the selected block. Is preferably sent to the primary storage device.

이 데이터 저장 장치는 중앙처리 장치로부터 데이터의 읽기 또는 쓰기 요청이 있는 경우, 읽기 또는 쓰기 처리에 앞서, 임시 저장 장치에 저장되어 있는 데이터 중 일부를 주 저장 장치로 전송한다. 이때, 전송되는 데이터는 블록 단위로 전송됨과 아울러, 그 전송되는 순위에 규칙을 가진다. 전송되는 순위는 임시 저장 장치 내에서 데이터의 수정이 가장 많은 블록의 데이터가 된다. 바꾸어 말하면, 수정된 데이터를 가장 많이 가지고 있는 블록을 선택한다. 따라서, 수정이 가장 많은 블록의 데이터를 주 저장 장치로 전송한 공간에 새로운 블록의 데이터를 읽기 또는 쓰기 처리할 수 있고, 주 저장 장치의 읽기 또는 쓰기 연산의 횟수를 줄일 수 있고, 주 저장 장치가 플래시 메모리인 경우 횟수가 줄어든 만큼 물리적 수명을 연장 시킬 수 있으며, 읽기 또는 쓰기의 처리 속도를 높일 수 있다.When there is a request to read or write data from the central processing unit, the data storage device transfers some of the data stored in the temporary storage device to the main storage device prior to the read or write processing. At this time, the transmitted data is transmitted in units of blocks and has a rule in the order of transmission. The transmitted rank is the data of the block with the most data modification in the temporary storage device. In other words, select the block with the most modified data. Therefore, the new block data can be read or written in the space where the data of the block with the most modifications is transferred to the main storage device, the number of read or write operations of the main storage device can be reduced, and the main storage device can be In the case of flash memory, as the number of times is reduced, the physical life can be extended and the processing speed of reading or writing can be increased.

제9 발명에 관련되는 데이터 저장 장치는, 제8 발명에 관련되는 데이터 저장 장치에 있어서, 임시 저장 장치의 저장 공간이 포화된 경우, 블록을 선택하고, 전송시키는 것이 바람직하다.In the data storage device according to the ninth invention, in the data storage device according to the eighth invention, when the storage space of the temporary storage device is saturated, the block is preferably selected and transmitted.

이 데이터 저장 장치는 임시 저장 장치의 저장 공간이 포화된 경우, 즉 임시 저장 장치의 저장 공간에 데이터가 모두 채워져 더 이상 데이터를 저장할 공간이 없는 경우, 읽기 또는 쓰기 처리에 앞서, 임시 저장 장치에 저장되어 있는 데이터 중 일부를 주 저장 장치로 전송한다. 따라서, 수정이 가장 많은 블록의 데이터를 주 저장 장치로 전송하고, 그 공간에 새로운 블록의 데이터를 읽기 또는 쓰기 처리할 수 있다.This data storage device is stored on the temporary storage device prior to read or write processing when the storage space of the temporary storage device is saturated, that is, when the storage space of the temporary storage device is filled with data and there is no more space for storing data. Transfer some of the data to the primary storage device. Therefore, the data of the block with the most modifications can be transferred to the main storage device, and the data of the new block can be read or written in the space.

제10 발명에 관련되는 데이터 저장 장치는, 제8 발명에 관련되는 데이터 저장 장치에 있어서, 선택되는 블록이 복수일 경우, 선택된 블록 중 가장 오랫동안 액세스가 없었던 블록을 재선택하는 것이 바람직하다.In the data storage device according to the tenth invention, in the data storage device according to the eighth invention, when there are a plurality of selected blocks, it is preferable to reselect a block that has not been accessed for the longest time among the selected blocks.

이 데이터 저장 장치는 수정이 가장 많은 블록의 데이터가 복수개이면, 선택된 블록 중 가장 오랫동안 액세스가 없었던 블록을 재선택하여 주 저장 장치로 전송한다. 따라서, 전송되는 데이터의 전송 순위를 보다 신뢰성 있게 할 수 있고, 주 저장 장치의 읽기 또는 쓰기 연산의 횟수를 줄일 수 있다.If the data of the block with the most modifications is plural, the data storage device reselects the block that has not been accessed for the longest time among the selected blocks and transmits the data to the main storage device. Therefore, the transmission order of the transmitted data can be made more reliable, and the number of read or write operations of the main storage device can be reduced.

제11 발명에 관련되는 데이터 저장 방법은, 복수의 데이터를 블록 단위로 저장하는 주 저장 장치와 상기 주 저장 장치로 입출력되는 데이터 중 일부를 임시로 저장하는 임시 저장 장치의 데이터 저장 방법이고, 임시 저장 장치로 데이터를 블 록 단위로 입력하는 단계 및 임시 저장 장치에서 데이터를 블록 단위로 출력하는 단계를 포함한다.A data storage method according to the eleventh invention is a data storage method of a main storage device for storing a plurality of data in units of blocks and a temporary storage device for temporarily storing some of data input / output to the main storage device. Inputting data in units of blocks to the device, and outputting data in units of blocks from the temporary storage device.

제12 발명에 관련되는 데이터 저장 방법은, 제11 발명에 관련되는 데이터 저장 방법에 있어서, 블록은 블록 번호 정보 및 블록에 포함되는 데이터 개수 정보를 포함하는 블록 노드와, 상기 데이터를 포함하는 페이지 노드로 구성되는 것이 바람직하다.In the data storage method according to the twelfth invention, the data storage method according to the eleventh invention includes a block node including block number information and data number information included in the block, and a page node including the data. It is preferable that it consists of.

제13 발명에 관련되는 데이터 저장 방법은, 제11 발명에 관련되는 데이터 저장 방법에 있어서, 주 저장 장치는 플래시 메모리인 것이 바람직하다.In the data storage method according to the thirteenth invention, in the data storage method according to the eleventh invention, the main storage device is preferably a flash memory.

제14 발명에 관련되는 데이터 저장 방법은, 제11 발명에 관련되는 데이터 저장 방법에 있어서, 데이터는 블록 단위로 LRU, FIFO 또는 RANDOM 중 어느 하나의 관리 정책에 의하여 관리되는 것이 바람직하다.In the data storage method according to the fourteenth invention, in the data storage method according to the eleventh invention, it is preferable that data is managed by a management policy of any one of LRU, FIFO, and RANDOM on a block basis.

제15 발명에 관련되는 데이터 저장 방법은, 제11 발명에 관련되는 데이터 저장 방법에 있어서, 데이터의 읽기 또는 쓰기 요청시, 데이터가 임시 저장 장치에 저장되어 있는 경우, 임시 저장 장치에 데이터를 블록 단위로 읽기 또는 쓰기 처리하는 것이 바람직하다.The data storage method according to the fifteenth invention is a data storage method according to the eleventh invention, in which data is stored in a temporary storage device in block units when the data is stored in the temporary storage device when a data read or write request is made. It is preferable to read or write.

제16 발명에 관련되는 데이터 저장 방법은, 제11 발명에 관련되는 데이터 저장 방법에 있어서, 데이터의 읽기 또는 쓰기 요청시, 데이터가 임시 저장 장치에 저장되어 있지 않은 경우, 임시 저장 장치에 데이터를 저장하기 위한 새로운 블록을 할당한 후에, 읽기 또는 쓰기 처리하는 것이 바람직하다.A data storage method according to the sixteenth invention is a data storage method according to the eleventh invention, wherein when data is read or written, when the data is not stored in the temporary storage device, the data is stored in the temporary storage device. After allocating a new block to perform the read or write process, it is desirable.

제17 발명에 관련되는 데이터 저장 방법은, 제11 발명에 관련되는 데이터 저 장 방법에 있어서, 데이터의 읽기 또는 쓰기 요청시, 임시 저장 장치 내에서 데이터의 수정이 가장 많은 블록을 선택하고, 선택된 블록의 데이터를 주 저장 장치로 전송시키는 것이 바람직하다.In the data storage method according to the seventeenth aspect of the invention, in the data storage method according to the eleventh aspect of the invention, when a read or write request of data is made, the block which has the most data modification in the temporary storage device is selected, It is desirable to transfer the data of the data to the primary storage device.

제18 발명에 관련되는 데이터 저장 방법은, 제17 발명에 관련되는 데이터 저장 방법에 있어서, 임시 저장 장치의 저장 공간이 포화된 경우, 블록을 선택하고, 전송시키는 것이 바람직하다.In the data storage method according to the eighteenth invention, in the data storage method according to the seventeenth invention, when the storage space of the temporary storage device is saturated, the block is preferably selected and transmitted.

제19 발명에 관련되는 데이터 저장 방법은, 제17 발명에 관련되는 데이터 저장 방법에 있어서, 선택되는 블록이 복수일 경우, 선택된 블록 중 가장 오랫동안 액세스가 없었던 블록을 재선택하는 것이 바람직하다.In the data storage method according to the nineteenth invention, in the data storage method according to the seventeenth invention, when there are a plurality of selected blocks, it is preferable to reselect a block that has not been accessed for the longest of the selected blocks.

제20 발명에 관련되는 기록매체는, 복수의 데이터를 블록 단위로 저장하는 주 저장 장치와 주 저장 장치로 입출력되는 데이터 중 일부를 임시로 저장하는 임시 저장 장치의 데이터 저장 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체이고, 임시 저장 장치로 데이터를 블록 단위로 입력하는 단계 및 임시 저장 장치에서 데이터를 블록 단위로 출력하는 단계를 포함하는 데이터 저장 방법을 실행하기 위한 프로그램을 기록하여 컴퓨터로 읽을 수 있다.A recording medium according to the twentieth aspect of the present invention provides a program for executing a data storage method of a main storage device for storing a plurality of data in units of blocks and a temporary storage device for temporarily storing some of data input and output to and from the main storage device. A computer-readable recording medium having recorded thereon, wherein a computer program is recorded for executing a data storage method including inputting data in units of blocks into a temporary storage device and outputting data in units of blocks in a temporary storage device. Can be read as

기타 본 발명의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Other specific details of the present invention are included in the detailed description and drawings. Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. Like reference numerals refer to like elements throughout.

이하에서는 본 발명에 따른 구체적인 실시예를 첨부된 도면을 참조하여 설명 한다.Hereinafter, with reference to the accompanying drawings, a specific embodiment according to the present invention will be described.

도 1은 본 발명의 일 실시예에 따른 데이터 저장 장치를 설명하기 위한 도면이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 데이터 저장 장치는 주 저장 장치(110) 및 임시 저장 장치(120)를 구비한다.1 is a diagram for describing a data storage device according to an exemplary embodiment. As shown in FIG. 1, a data storage device according to an embodiment of the present invention includes a main storage device 110 and a temporary storage device 120.

주 저장 장치(110)는 복수의 데이터를 블록 단위로 저장한다. 여기서, 본 발명의 일 실시예에서는 주 저장 장치(110)로 플래시 메모리를 사용한다. 주 저장 장치(110)인 플래시 메모리는 내부에 블록과 페이지로 나누어 데이터를 관리한다. 블록은 데이터를 처리하는 단위 묶음이고, 페이지는 블록 내에 실제 데이터가 저장되는 부분이다. 여기서, 블록의 크기는 블록 특성에 따라 달라질 수 있으며, 하나의 블록은 일정한 크기의 복수의 페이지로 나뉜다.The main storage device 110 stores a plurality of data in units of blocks. Here, in an embodiment of the present invention, a flash memory is used as the main storage device 110. The flash memory, which is the main storage device 110, manages data by dividing it into blocks and pages therein. A block is a group of units for processing data, and a page is a part in which actual data is stored in the block. Here, the size of the block may vary according to the characteristics of the block, and one block is divided into a plurality of pages of a predetermined size.

임시 저장 장치(120)는 주 저장 장치(110)로 입출력되는 데이터 중 일부를 임시로 저장한다. 임시 저장 장치(120)로는 주 저장 장치(110)와 중앙처리 장치(130)의 처리 속도 차이를 개선하기 위한 것으로, 처리 속도가 주 저장 장치(110)보다 빠른 버퍼 또는 캐시 메모리 중 적어도 어느 하나를 사용한다. 또한, 임시 저장 장치(120)는 중앙처리 장치(130)로부터의 데이터의 읽기 또는 쓰기 요청을 받아들여 임시 저장 장치(120)의 저장 공간을 활용하여 데이터를 저장하고 있다가 임시 저장 장치(120)의 저장 공간이 포화되거나 필요시에 데이터를 주 저장 장치(110)로 전송함으로써, 주 저장 장치(110)의 입출력 횟수를 줄이는 역할을 수행한다.The temporary storage device 120 temporarily stores some of data input and output to and from the main storage device 110. The temporary storage device 120 is to improve the processing speed difference between the main storage device 110 and the central processing unit 130. The temporary storage device 120 may include at least one of a buffer or a cache memory whose processing speed is faster than that of the main storage device 110. use. In addition, the temporary storage device 120 receives a read or write request of data from the CPU 130 to store data using the storage space of the temporary storage device 120, and then temporarily stores the data. When the storage space of the saturation or when necessary to transmit data to the main storage device 110, thereby reducing the number of input and output of the main storage device (110).

본 발명의 일 실시예에서는 임시 저장 장치(120)로 입출력되는 데이터를 블록 단위로 처리하여 관리한다. 즉, 주 저장 장치(110)가 블록 단위로 쓰기 연산 및 삭제 연산을 하므로, 이러한 특성에 맞추어 임시 저장 장치(120)의 데이터 또한 블록 단위로 처리한다. 본 발명의 일 실시예에 따른 데이터를 블록 단위로 처리하는 임시 저장 장치(120)에 관해서는 다음 도 2 내지 도 5를 통하여 더욱 상세하게 기술하기로 한다. 이러한 특성 때문에 임시 저장 장치(120)는 주 저장 장치(110)가 보다 효율적으로 동작하는 데에 큰 도움을 줄 수 있고, 플래시 메모리의 비교적 읽기 연산보다 시간이 많이 소모되는 쓰기 연산과 더 많은 시간이 소모되는 삭제 연산의 상당량을 줄여줄 수 있다. 이로써, 주 저장 장치(110)의 성능을 보다 효과적으로 발휘할 수 있다.In an embodiment of the present invention, the data input / output to the temporary storage device 120 is processed and managed in units of blocks. That is, since the main storage device 110 performs write and delete operations in units of blocks, the data of the temporary storage device 120 is also processed in units of blocks in accordance with these characteristics. A temporary storage device 120 for processing data in block units according to an embodiment of the present invention will be described in more detail with reference to FIGS. 2 to 5. Because of this characteristic, temporary storage device 120 can greatly help main storage device 110 operate more efficiently, and write operations and time-consuming operations are more time consuming than comparative read operations of flash memory. This can reduce the amount of delete operations consumed. As a result, the performance of the main storage device 110 can be more effectively exhibited.

한편, 임시 저장 장치(120)는 실질적인 하드웨어 구성에 있어서 전체 시스템에 사용되는 버퍼 또는 캐시 메모리로 구성하거나, 주 저장 장치(110) 만을 위해 별도의 버퍼 또는 캐시 메모리로 구성하는 것이 가능하다.Meanwhile, the temporary storage device 120 may be configured as a buffer or cache memory used for the entire system in a substantial hardware configuration, or may be configured as a separate buffer or cache memory for the main storage device 110 only.

또한, 주 저장 장치(110)인 플래시 메모리는 운영체제에 하드 디스크와 동일한 인터페이스를 제공하기 위하여, 운영체제 내부의 파일 시스템이나 플래시 메모리와 운영체제 사이 등에서 사용되는 플래시 메모리용 파일 시스템이나 플래시 변환 계층을 사용하는 것이 가능하다. 본 발명의 일 실시예에 따른 데이터 저장 장치는 임시 저장 장치(120)의 데이터 처리 특성을 주 저장 장치(110)의 특성에 맞춘 것으로, 플래시 파일 시스템이나 플래시 변환 계층 등을 변경 없이 적용할 수 있는 유연성을 가진다.In addition, the flash memory, which is the main storage device 110, uses a file system for flash memory or a flash translation layer used between the flash memory and the operating system, or the like, to provide an operating system with the same interface as a hard disk. It is possible. The data storage device according to an exemplary embodiment of the present invention adjusts data processing characteristics of the temporary storage device 120 to the characteristics of the main storage device 110, and can apply a flash file system or a flash conversion layer without change. Have flexibility.

도 2는 본 발명의 일 실시예에 따른 임시 저장 장치로 입출력되는 데이터의 구조를 설명하기 위한 도면이다.2 is a view for explaining the structure of data input and output to the temporary storage device according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 임시 저장 장치로 입출력되는 복수의 데이터는 적어도 하나의 블록 단위로 처리된다. 하나의 블록의 구성은 블록 노드와 페이지 노드로 구성된다. 블록 노드는 블록 번호 및 해당 블록에 포함되는 데이터 개수, 즉 페이지 개수에 대한 정보를 포함하고, 페이지 노드는 적어도 하나의 실제 데이터를 포함한다. 여기서, 페이지 노드는 복수의 페이지로 구성되며, 하나의 페이지에는 하나의 실제 데이터가 저장되어 있다. 도 2에서, 복수의 블록 노드가 가로로 나열되어 있는 것처럼, 블록 노드들은 링크 연결 구조를 가지고 있으며, 블록 노드는 임시 저장 장치의 적중률(hit ratio)을 높이기 위하여 LRU(Least Recently Used) 방식의 데이터 관리 정책을 유지하고 있다.As illustrated in FIG. 2, a plurality of data input and output to the temporary storage device is processed in at least one block unit. One block consists of a block node and a page node. The block node includes information about a block number and the number of data included in the block, that is, the number of pages, and the page node includes at least one actual data. Here, the page node is composed of a plurality of pages, and one page stores one actual data. In FIG. 2, block nodes have a link connection structure, as a plurality of block nodes are arranged horizontally, and block nodes have LRU (Least Recently Used) data in order to increase the hit ratio of temporary storage devices. Maintain a management policy.

LRU 방식은 가장 최근에 액세스된 데이터는 가까운 시간 내에 다시 액세스될 가능성이 높은 컴퓨팅의 특성을 가지므로, 이를 이용하여 가장 오랫동안 액세스되지 않은 데이터를 임시 저장 장치에서 송출하는 방식이다. 본 발명의 일 실시예에서는 블록 노드를 LRU 방식으로 처리하되, 블록 단위로 데이터들이 묶여 있으므로 블록 내에서 하나의 페이지만 액세스되어도 블록에 속한 데이터 전체를 LRU 리스트의 앞으로 이동시킨다. 따라서, 주 저장 장치가 플래시 메모리인 경우 그 성능을 높일 수 있다. 본 발명의 일 실시예에서는 LRU 방식에 대한 일례만을 들었지만, FIFO(first in, first out) 또는 RANDOM 등의 데이터 관리 정책에 의하여 임시 저장 장치로 입출력되는 데이터를 관리하는 것도 가능하다. FIFO 또는 RANDOM 등의 데이터 관리 정책에서도, 데이터는 블록 단위로 처리된다.The LRU method has a characteristic of computing in which the most recently accessed data is more likely to be accessed again within a short time, and thus, the data that has not been accessed for the longest time is used to transmit data from the temporary storage device. In an embodiment of the present invention, a block node is processed in an LRU method, but data is bundled in units of blocks, so that even if only one page is accessed in the block, the entire data belonging to the block is moved to the front of the LRU list. Therefore, when the main storage device is a flash memory, its performance can be improved. In one embodiment of the present invention, only one example of the LRU method is described, but it is also possible to manage data input and output to the temporary storage device by a data management policy such as FIFO (first in, first out) or RANDOM. Even in data management policies such as FIFO or RANDOM, data is processed in blocks.

이와 같이, 복수의 데이터들의 묶음인 블록을 체계적으로 구성함으로써, 블 록 관리가 수월하고, 연산 수행시 해당 데이터가 포함된 블록을 쉽게 찾을 수 있으며, 블록이 복수인 경우여도 데이터 처리를 효율 좋게 행할 수 있다.As such, by systematically constructing a block, which is a bundle of a plurality of data, it is easy to manage the block, and when a calculation is performed, a block containing the data can be easily found, and data processing can be efficiently performed even when there are a plurality of blocks. Can be.

도 3은 본 발명의 일 실시예에 따른 임시 저장 장치에 쓰기 연산을 수행할 때의 동작 특성을 설명하기 위한 도면이다.FIG. 3 is a diagram for describing operation characteristics when performing a write operation on a temporary storage device according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 먼저, 데이터 쓰기 요청이 있는지 유무를 판단한다(S301). 이후, 쓰기 요청이 있으면, 임시 저장 장치 내에서 해당 데이터를 검색한다(S302). 검색 결과에 따라 해당 데이터가 임시 저장 장치 내에 존재하는지 유무를 판단한다(S303). 해당 데이터가 임시 저장 장치 내에 존재하면, 해당 데이터를 덮어쓰기 처리한다(S304). 해당 데이터가 임시 저장 장치 내에 존재하지 않으면, 임시 저장 장치에 새로운 블록 노드와 페이지 노드를 할당한다(S314). 할당된 블록에 해당 데이터를 쓰기 처리한다(S315). As shown in FIG. 3, first, it is determined whether there is a data write request (S301). Thereafter, if there is a write request, the corresponding data is retrieved from the temporary storage device (S302). It is determined whether the data exists in the temporary storage device according to the search result (S303). If the data exists in the temporary storage device, the data is overwritten (S304). If the data does not exist in the temporary storage device, new block nodes and page nodes are allocated to the temporary storage device (S314). The data is written to the allocated block (S315).

이러한 동작을 통하여, 주 저장 장치의 쓰기 연산의 횟수를 줄일 수 있고, 주 저장 장치가 플래시 메모리인 경우 횟수가 줄어든 만큼 물리적 수명을 연장시킬 수 있으며, 데이터 저장 장치의 쓰기의 처리 속도를 높일 수 있다.Through this operation, the number of write operations of the main storage device can be reduced, the physical life can be extended as the number of times decreases when the main storage device is a flash memory, and the processing speed of writing of the data storage device can be increased. .

도 4는 본 발명의 일 실시예에 따른 임시 저장 장치의 읽기 연산을 수행할 때의 동작 특성을 설명하기 위한 도면이다.FIG. 4 is a diagram for describing operation characteristics when performing a read operation of a temporary storage device according to an embodiment of the present invention.

도 4에 도시된 바와 같이, 먼저, 데이터 읽기 요청이 있는지 유무를 판단한다(S401). 이후, 쓰기 요청이 있으면, 임시 저장 장치 내에서 해당 데이터를 검색한다(S402). 검색 결과에 따라 해당 데이터가 임시 저장 장치 내에 존재하는지 유무를 판단한다(S403). 해당 데이터가 임시 저장 장치 내에 존재하면, 해당 데이터 를 읽기 처리하여 중앙처리 장치로 전송한다(S404). 해당 데이터가 임시 저장 장치 내에 존재하지 않으면, 임시 저장 장치에 새로운 블록 노드와 페이지 노드를 할당한다(S414). 이후, 해당 데이터를 주 저장 장치에서 읽어와 할당된 블록에 저장한다(S415). 이후, 임시 저장 장치에 저장된 해당 데이터를 읽기 처리하여 중앙처리 장치로 전송한다(S416). As shown in FIG. 4, first, it is determined whether there is a data read request (S401). Thereafter, if there is a write request, the corresponding data is retrieved from the temporary storage device (S402). The search result determines whether the data exists in the temporary storage device (S403). If the data exists in the temporary storage device, the data is read-processed and transmitted to the CPU (S404). If the data does not exist in the temporary storage device, new block nodes and page nodes are allocated to the temporary storage device (S414). Thereafter, the corresponding data is read from the main storage device and stored in the allocated block (S415). Thereafter, the corresponding data stored in the temporary storage device is read and transmitted to the CPU (S416).

이러한 동작을 통하여, 주 저장 장치의 읽기 연산의 횟수를 줄일 수 있고, 주 저장 장치가 플래시 메모리인 경우 횟수가 줄어든 만큼 물리적 수명을 연장시킬 수 있으며, 데이터 저장 장치의 읽기의 처리 속도를 높일 수 있다.Through this operation, the number of read operations of the main storage device can be reduced, the physical life can be extended as the number of times decreases when the main storage device is a flash memory, and the processing speed of reading of the data storage device can be increased. .

도 5는 본 발명의 일 실시예에 따른 임시 저장 장치의 저장 공간이 포화된 경우의 동작 특성을 설명하기 위한 도면이다.5 is a diagram for describing an operating characteristic when a storage space of a temporary storage device according to an embodiment of the present invention is saturated.

도 5에 도시된 바와 같이, 먼저, 임시 저장 장치의 저장 공간이 포화되었는지 유무를 판단한다(S501). 여기서, 임시 저장 장치의 저장 공간의 포화는 임시 저장 장치의 데이터를 저장할 수 있는 데이터 저장 공간에 데이터가 모두 채워져 더 이상 데이터를 저장할 수 없는 경우를 의미한다. 임시 저장 장치의 저장 공간이 포화된 것으로 판단되면, 임시 저장 장치 내의 블록 중에서 가장 수정된 페이지를 많이 가지고 있는 블록을 검색하여 선택한다(S502). 이후, 선택된 블록이 복수개인지 유무를 판단한다(S503). 선택된 블록이 하나이면, 선택된 블록에 해당하는 모든 페이지 노드의 데이터를 주 저장 장치로 전송한다(S504). 선택된 블록이 복수개이면, LRU 방식을 이용하여 선택된 블록 중에서 가장 오랫동안 액세스가 없었던 블록을 검색하여 재선택한다(S514). 이후, 재선택된 블록에 해당하는 모든 페이지 노드의 데이터를 주 저장 장치로 전송한다(S515).As shown in FIG. 5, first, it is determined whether the storage space of the temporary storage device is saturated (S501). Here, the saturation of the storage space of the temporary storage device means that the data cannot be stored anymore because the data is filled in the data storage space capable of storing the data of the temporary storage device. If it is determined that the storage space of the temporary storage device is saturated, the block having the most modified pages among the blocks in the temporary storage device is searched for and selected (S502). Thereafter, it is determined whether there are a plurality of selected blocks (S503). If there is only one selected block, data of all page nodes corresponding to the selected block are transmitted to the main storage device (S504). If there are a plurality of selected blocks, the LRU method is used to search for and reselect a block that has not been accessed for the longest time among the selected blocks (S514). Thereafter, data of all page nodes corresponding to the reselected block are transmitted to the main storage device (S515).

이와 같이, 본 발명의 일 실시예에 따른 데이터 저장 장치는 중앙처리 장치로부터 데이터의 읽기 또는 쓰기 요청이 있는 경우, 임시 저장 장치의 저장 공간이 포화되면, 읽기 또는 쓰기 처리에 앞서, 임시 저장 장치에 저장되어 있는 데이터 중 일부를 주 저장 장치로 전송한다. 이때, 전송되는 데이터는 블록 단위로 전송됨과 아울러, 그 전송되는 순위에 규칙을 가진다. 전송되는 순위는 임시 저장 장치 내에서 데이터의 수정이 가장 많은 블록의 데이터가 된다. 바꾸어 말하면, 수정된 데이터를 가장 많이 가지고 있는 블록을 선택한다. 이와 같이, 수정이 가장 많은 블록의 데이터를 전송 위선 순위로 하는 것은, 데이터의 수정이 많은 블록이 데이터의 수정이 적은 블록에 비하여 읽기 또는 쓰기 연산시 그 처리 효율성이 높으므로, 읽기 또는 쓰기 연산의 횟수를 줄일 수 있기 때문이다.As described above, when there is a request for reading or writing data from the central processing unit, the data storage device according to an embodiment of the present invention, if the storage space of the temporary storage device is saturated, prior to the read or write processing, Transfer some of the stored data to main storage. At this time, the transmitted data is transmitted in units of blocks and has a rule in the order of transmission. The transmitted rank is the data of the block with the most data modification in the temporary storage device. In other words, select the block with the most modified data. As described above, the data of the block with the most modifications is used as the transmission hypocrisy, since the block with the most data modifications has a higher processing efficiency during the read or write operation than the block with the smallest data modifications. This is because the number of times can be reduced.

따라서, 수정이 가장 많은 블록의 데이터를 주 저장 장치로 전송하고, 그 공간에 새로운 블록의 데이터를 읽기 또는 쓰기 처리할 수 있음으로써, 주 저장 장치의 읽기 또는 쓰기 연산의 횟수를 줄일 수 있고, 주 저장 장치가 플래시 메모리인 경우 횟수가 줄어든 만큼 물리적 수명을 연장시킬 수 있으며, 읽기 또는 쓰기의 처리 속도를 높일 수 있다.Therefore, the data of the most-modified block can be transferred to the main storage device, and the data of the new block can be read or written to the space, thereby reducing the number of read or write operations of the main storage device. If the storage device is a flash memory, the physical life can be extended as the number of times is reduced, and the processing speed of reading or writing can be increased.

또한, 본 발명의 일 실시예에 따른 데이터 저장 장치는 수정이 가장 많은 블록의 데이터가 복수개이면, 선택된 블록 중 가장 오랫동안 액세스가 없었던 블록을 재선택하여 주 저장 장치로 전송한다. 따라서, 전송되는 데이터의 전송 순위를 보다 신뢰성 있게 할 수 있고, 주 저장 장치의 읽기 또는 쓰기 연산의 횟수를 줄일 수 있다.In addition, when the data storage device according to an embodiment of the present invention has a plurality of blocks of the most modified blocks, the data storage device reselects a block that has not been accessed for the longest time among the selected blocks and transmits the block to the main storage device. Therefore, the transmission order of the transmitted data can be made more reliable, and the number of read or write operations of the main storage device can be reduced.

이와 같이, 상술한 본 발명의 기술적 구성은 본 발명이 속하는 기술분야의 당업자가 본 발명의 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.As such, the technical configuration of the present invention described above can be understood by those skilled in the art that the present invention can be implemented in other specific forms without changing the technical spirit or essential features of the present invention.

그러므로 이상에서 기술한 실시예는 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Therefore, the above-described embodiments are to be understood as illustrative and not restrictive in all respects, and the scope of the present invention is indicated by the following claims rather than the detailed description, and the meaning and scope of the claims and their All changes or modifications derived from an equivalent concept should be construed as being included in the scope of the present invention.

이상에서와 같이 본 발명은 임시 저장 장치의 데이터 입출력을 주 기억 장치의 특성에 맞추어 처리함으로써, 데이터 저장 장치의 성능을 최적화시킬 수 있는 효과가 있다. As described above, the present invention has an effect of optimizing the performance of the data storage device by processing the data input / output of the temporary storage device in accordance with the characteristics of the main storage device.

또한, 플래시 메모리를 주 기억 장치로 사용하는 데이터 저장 장치에서 주 기억 장치에 대하여 수행되는 연산 중 비교적 많은 시간을 소모하는 삭제 연산과 쓰기 연산의 연산 횟수를 줄일 수 있는 효과가 있다.In addition, in the data storage device using the flash memory as the main memory device, the number of operations of the delete operation and the write operation that consumes a relatively large time among operations performed on the main memory device can be reduced.

또한, 본 발명은 비교적 작은 부하와 빠른 속도로 데이터의 쓰기 연산과 읽기 연산을 수행할 수 있는 효과가 있다.In addition, the present invention has the effect of performing a write operation and a read operation of data at a relatively small load and a high speed.

또한, 본 발명은 주 기억 장치의 수명을 연장시킬 수 있는 효과가 있다.In addition, the present invention has the effect of extending the life of the main memory device.

Claims (20)

복수의 데이터를 블록 단위로 저장하는 주 저장 장치; 및A main storage device for storing a plurality of data in block units; And 상기 주 저장 장치로 입출력되는 데이터 중 일부를 임시로 저장하는 임시 저장 장치를 포함하고,And a temporary storage device that temporarily stores some of data input and output to and from the main storage device. 상기 임시 저장 장치로 입출력되는 데이터를 블록 단위로 처리하고,Process data input / output to the temporary storage device in block units, 상기 임시 저장 장치의 블록은 블록 번호 정보 및 상기 블록에 포함되는 데이터 개수 정보를 포함하는 블록 노드와, 상기 데이터를 포함하는 페이지 노드로 구성되고, 상기 블록 노드는 링크 연결 구조를 갖는, 데이터 저장 장치.The block of the temporary storage device includes a block node including block number information and data number information included in the block, and a page node including the data, wherein the block node has a link connection structure. . 삭제delete 제1항에 있어서,The method of claim 1, 상기 주 저장 장치는 플래시 메모리인 것을 특징으로 하는 데이터 저장 장치.And said main storage device is a flash memory. 제1항에 있어서,The method of claim 1, 상기 임시 저장 장치는 버퍼 또는 캐시 메모리 중 적어도 어느 하나인 것을 특징으로 하는 데이터 저장 장치.And the temporary storage device is at least one of a buffer and a cache memory. 제1항에 있어서,The method of claim 1, 상기 데이터는 블록 단위로 LRU, FIFO 또는 RANDOM 중 어느 하나의 관리 정책에 의하여 관리되는 것을 특징으로 하는 데이터 저장 장치.The data storage device, characterized in that the block is managed by a management policy of any one of the LRU, FIFO or RANDOM. 제1항에 있어서,The method of claim 1, 상기 데이터의 읽기 또는 쓰기 요청시, 상기 데이터가 상기 임시 저장 장치에 저장되어 있는 경우, 상기 임시 저장 장치에 상기 데이터를 블록 단위로 읽기 또는 쓰기 처리하는 것을 특징으로 하는 데이터 저장 장치.When the data is read or written, when the data is stored in the temporary storage device, the data storage device according to claim 1, wherein the data is read or written in units of blocks. 제1항에 있어서,The method of claim 1, 상기 데이터의 읽기 또는 쓰기 요청시, 상기 데이터가 상기 임시 저장 장치에 저장되어 있지 않은 경우, 상기 임시 저장 장치에 상기 데이터를 저장하기 위한 새로운 블록을 할당한 후에, 읽기 또는 쓰기 처리하는 것을 특징으로 하는 데이터 저장 장치.When the data is read or written, when the data is not stored in the temporary storage device, a new block for storing the data is allocated to the temporary storage device, and then read or write processing is performed. Data storage. 제1항에 있어서,The method of claim 1, 상기 데이터의 읽기 또는 쓰기 요청시, 상기 임시 저장 장치 내에서 데이터의 수정이 가장 많은 블록을 선택하고, 상기 선택된 블록의 데이터를 상기 주 저장 장치로 전송시키는 것을 특징으로 하는 데이터 저장 장치.When the read or write request of the data, the data storage device, characterized in that for selecting the block with the most data modification in the temporary storage device, and transmitting the data of the selected block to the main storage device. 제8항에 있어서,The method of claim 8, 상기 임시 저장 장치의 저장 공간이 포화된 경우, 상기 블록을 선택하고, 전송시키는 것을 특징으로 하는 데이터 저장 장치.And when the storage space of the temporary storage device is saturated, selects and transmits the block. 제8항에 있어서,The method of claim 8, 상기 선택되는 블록이 복수일 경우, 상기 선택된 블록 중 가장 오랫동안 액세스가 없었던 블록을 재선택하는 것을 특징으로 하는 데이터 저장 장치.And when there are a plurality of selected blocks, reselecting blocks that have not been accessed for the longest time among the selected blocks. 복수의 데이터를 블록 단위로 저장하는 주 저장 장치와 상기 주 저장 장치로 입출력되는 데이터 중 일부를 임시로 저장하는 임시 저장 장치의 데이터 저장 방법에 있어서,In the data storage method of the main storage device for storing a plurality of data in block units and the temporary storage device for temporarily storing some of the data input and output to the main storage device, 상기 임시 저장 장치로 상기 데이터를 블록 단위로 입력하는 단계; 및Inputting the data in units of blocks to the temporary storage device; And 상기 임시 저장 장치에서 상기 데이터를 블록 단위로 출력하는 단계를 포함하고,Outputting the data in units of blocks in the temporary storage device; 상기 임시 저장 장치의 블록은 블록 번호 정보 및 상기 블록에 포함되는 데이터 개수 정보를 포함하는 블록 노드와, 상기 데이터를 포함하는 페이지 노드로 구성되고, 상기 블록 노드는 링크 연결 구조를 갖는, 데이터 저장 방법.The block of the temporary storage device includes a block node including block number information and data number information included in the block, and a page node including the data, wherein the block node has a link connection structure. . 삭제delete 제11항에 있어서,The method of claim 11, 상기 주 저장 장치는 플래시 메모리인 것을 특징으로 하는 데이터 저장 방법.And said main storage device is a flash memory. 제11항에 있어서,The method of claim 11, 상기 데이터는 블록 단위로 LRU, FIFO 또는 RANDOM 중 어느 하나의 관리 정책에 의하여 관리되는 것을 특징으로 하는 데이터 저장 방법.The data is stored in a block unit, characterized in that the management policy of any one of the LRU, FIFO or RANDOM management policy. 제11항에 있어서,The method of claim 11, 상기 데이터의 읽기 또는 쓰기 요청시, 상기 데이터가 상기 임시 저장 장치에 저장되어 있는 경우, 상기 임시 저장 장치에 상기 데이터를 블록 단위로 읽기 또는 쓰기 처리하는 것을 특징으로 하는 데이터 저장 방법.When the data is read or written request, if the data is stored in the temporary storage device, the data storage method characterized in that for reading or writing the data in block units to the temporary storage device. 제11항에 있어서,The method of claim 11, 상기 데이터의 읽기 또는 쓰기 요청시, 상기 데이터가 상기 임시 저장 장치에 저장되어 있지 않은 경우, 상기 임시 저장 장치에 상기 데이터를 저장하기 위한 새로운 블록을 할당한 후에, 읽기 또는 쓰기 처리하는 것을 특징으로 하는 데이터 저장 방법.When the data is read or written, when the data is not stored in the temporary storage device, a new block for storing the data is allocated to the temporary storage device, and then read or write processing is performed. How data is stored. 제11항에 있어서,The method of claim 11, 상기 데이터의 읽기 또는 쓰기 요청시, 상기 임시 저장 장치 내에서 데이터의 수정이 가장 많은 블록을 선택하고, 상기 선택된 블록의 데이터를 상기 주 저장 장치로 전송시키는 것을 특징으로 하는 데이터 저장 방법.When the read or write request of the data, the data storage method, characterized in that for selecting the block with the most data modification in the temporary storage device, and transmitting the data of the selected block to the main storage device. 제17항에 있어서,The method of claim 17, 상기 임시 저장 장치의 저장 공간이 포화된 경우, 상기 블록을 선택하고, 전송시키는 것을 특징으로 하는 데이터 저장 방법.And when the storage space of the temporary storage device is saturated, selecting the block and transmitting the block. 제17항에 있어서,The method of claim 17, 상기 선택되는 블록이 복수일 경우, 상기 선택된 블록 중 가장 오랫동안 액세스가 없었던 블록을 재선택하는 것을 특징으로 하는 데이터 저장 방법.And when there are a plurality of selected blocks, reselecting blocks that have not been accessed for the longest of the selected blocks. 복수의 데이터를 블록 단위로 저장하는 주 저장 장치와 상기 주 저장 장치로 입출력되는 데이터 중 일부를 임시로 저장하는 임시 저장 장치의 데이터 저장 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서,In a computer-readable recording medium recording a program for executing a data storage method of a main storage device for storing a plurality of data in units of blocks and a temporary storage device for temporarily storing some of the data input and output to the main storage device. In 상기 임시 저장 장치로 상기 데이터를 블록 단위로 입력하는 단계; 및Inputting the data in units of blocks to the temporary storage device; And 상기 임시 저장 장치에서 상기 데이터를 블록 단위로 출력하는 단계를 포함하고,Outputting the data in units of blocks in the temporary storage device; 상기 임시 저장 장치의 블록은 블록 번호 정보 및 상기 블록에 포함되는 데이터 개수 정보를 포함하는 블록 노드와, 상기 데이터를 포함하는 페이지 노드로 구성되고, 상기 블록 노드는 링크 연결 구조를 갖는 데이터 저장 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.The block of the temporary storage device includes a block node including block number information and information about the number of data included in the block, and a page node including the data, wherein the block node has a link connection structure. A computer-readable recording medium that records a program for execution.
KR1020060104446A 2006-10-26 2006-10-26 Data storage apparatus, method for data storage and computer readable record medium on which the method is recorded KR100847021B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060104446A KR100847021B1 (en) 2006-10-26 2006-10-26 Data storage apparatus, method for data storage and computer readable record medium on which the method is recorded

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060104446A KR100847021B1 (en) 2006-10-26 2006-10-26 Data storage apparatus, method for data storage and computer readable record medium on which the method is recorded

Publications (2)

Publication Number Publication Date
KR20080037385A KR20080037385A (en) 2008-04-30
KR100847021B1 true KR100847021B1 (en) 2008-07-17

Family

ID=39575389

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060104446A KR100847021B1 (en) 2006-10-26 2006-10-26 Data storage apparatus, method for data storage and computer readable record medium on which the method is recorded

Country Status (1)

Country Link
KR (1) KR100847021B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100973496B1 (en) * 2008-05-16 2010-08-03 명지대학교 산학협력단 Read-ahead swap-in method considering flash memory erase block
KR101505005B1 (en) 2008-12-05 2015-03-24 삼성전자주식회사 Memory device and management method of memory device
US9201794B2 (en) 2011-05-20 2015-12-01 International Business Machines Corporation Dynamic hierarchical memory cache awareness within a storage system
US8656088B2 (en) 2011-05-20 2014-02-18 International Business Machines Corporation Optimized flash based cache memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000020105A (en) * 1998-09-17 2000-04-15 윤종용 Electronic device equipped with flash memory
KR100283588B1 (en) * 1998-11-30 2001-03-02 전주범 Memory control method of digital data processing system
JP2003248618A (en) 2002-02-22 2003-09-05 Matsushita Electric Ind Co Ltd Information storing device and method
KR20060090340A (en) * 2005-02-07 2006-08-10 삼성전자주식회사 Method for data copy and application processor for it
KR100673013B1 (en) 2005-09-21 2007-01-24 삼성전자주식회사 Memory controller and data processing system with the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000020105A (en) * 1998-09-17 2000-04-15 윤종용 Electronic device equipped with flash memory
KR100283588B1 (en) * 1998-11-30 2001-03-02 전주범 Memory control method of digital data processing system
JP2003248618A (en) 2002-02-22 2003-09-05 Matsushita Electric Ind Co Ltd Information storing device and method
KR20060090340A (en) * 2005-02-07 2006-08-10 삼성전자주식회사 Method for data copy and application processor for it
KR100673013B1 (en) 2005-09-21 2007-01-24 삼성전자주식회사 Memory controller and data processing system with the same

Also Published As

Publication number Publication date
KR20080037385A (en) 2008-04-30

Similar Documents

Publication Publication Date Title
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
US9928167B2 (en) Information processing system and nonvolatile storage unit
Jo et al. FAB: Flash-aware buffer management policy for portable media players
US8595451B2 (en) Managing a storage cache utilizing externally assigned cache priority tags
TWI464586B (en) Memory system
US8458394B2 (en) Storage device and method of managing a buffer memory of the storage device
CN106716334A (en) Efficient data movement within file system volumes
KR20100042455A (en) Flash memory system and method of flash translation layer design thereof
US7711905B2 (en) Method and system for using upper cache history information to improve lower cache data replacement
US20080120456A1 (en) Method for flash memory data management
KR102198615B1 (en) Non-volatile memory device using dual program operation, memory system including the same and operating method thereof
CN108139972B (en) Method and apparatus for managing memory fragmentation in hardware assisted data compression
US9304946B2 (en) Hardware-base accelerator for managing copy-on-write of multi-level caches utilizing block copy-on-write differential update table
US20180307426A1 (en) Storage apparatus and storage control method
KR100847021B1 (en) Data storage apparatus, method for data storage and computer readable record medium on which the method is recorded
CN109478164B (en) System and method for storing cache location information for cache entry transfer
JP4792335B2 (en) RAID device, RAID control program, and cache management method
Wongchaowart et al. A content-aware block placement algorithm for reducing PRAM storage bit writes
KR101191650B1 (en) Apparatus and method for mapping the data address in NAND flash memory
EP2381354A2 (en) Data recording device
JP6482322B2 (en) Memory device and program
JP6194875B2 (en) Cache device, cache system, cache method, and cache program
CN117667299A (en) Virtual machine migration method, chip, network card, processing equipment, system and medium
JP6112193B2 (en) Access control program, disk device, and access control method
JP6254986B2 (en) Information processing apparatus, access controller, and information processing method

Legal Events

Date Code Title Description
A201 Request for 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: 20120710

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee