KR20120035070A - Methods of managing buffer cache using solid state disk as an extended buffer and apparatuses for using solid state disk as an extended buffer - Google Patents

Methods of managing buffer cache using solid state disk as an extended buffer and apparatuses for using solid state disk as an extended buffer Download PDF

Info

Publication number
KR20120035070A
KR20120035070A KR1020100096562A KR20100096562A KR20120035070A KR 20120035070 A KR20120035070 A KR 20120035070A KR 1020100096562 A KR1020100096562 A KR 1020100096562A KR 20100096562 A KR20100096562 A KR 20100096562A KR 20120035070 A KR20120035070 A KR 20120035070A
Authority
KR
South Korea
Prior art keywords
page
buffer
lru
ssd
reference time
Prior art date
Application number
KR1020100096562A
Other languages
Korean (ko)
Other versions
KR101144321B1 (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 KR1020100096562A priority Critical patent/KR101144321B1/en
Publication of KR20120035070A publication Critical patent/KR20120035070A/en
Application granted granted Critical
Publication of KR101144321B1 publication Critical patent/KR101144321B1/en

Links

Images

Classifications

    • 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
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Abstract

PURPOSE: A buffer cache management method and an apparatus for using an SSD(Solid State Disk) as an expansion buffer are provided to reduce a writing/reading operation of a disk by referring to an SSD expansion buffer when a page having previous time information is read. CONSTITUTION: A main memory device(510) includes an LRU-K list using an LRU-K algorithm, a first priority queue, and a second priority queue. In case there is no buffer space for a reference page in a main memory, an SSD expansion buffer(520) records a page including longest second reference time information or a page excluding second reference time information. The page excluding the second reference time information is included on the LRU-K list.

Description

에스에스디를 확장 버퍼로 이용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장 버퍼로 사용한 장치{METHODS OF MANAGING BUFFER CACHE USING SOLID STATE DISK AS AN EXTENDED BUFFER AND APPARATUSES FOR USING SOLID STATE DISK AS AN EXTENDED BUFFER}METHODS OF MANAGING BUFFER CACHE USING SOLID STATE DISK AS AN EXTENDED BUFFER AND APPARATUSES FOR USING SOLID STATE DISK AS AN EXTENDED BUFFER}

본 발명은 버퍼 캐쉬 관리 방법 및 버퍼 캐쉬 관리 방법을 사용하는 장치에 관한 것으로 더욱 상세하게는 확장 버퍼를 이용한 버퍼 캐쉬 관리 방법 및 이러한 방법을 사용한 장치에 관한 것이다. The present invention relates to a buffer cache management method and an apparatus using the buffer cache management method. More particularly, the present invention relates to a buffer cache management method using an extended buffer and an apparatus using the method.

컴퓨터와 같은 디지털 단말기에 포함된 각 구성부들, 예를 들어, 중앙처리장치(CPU), 메모리, 하드디스크, CD-ROM 등은 각각 개별적으로 데이터를 처리하는 속도가 다르기 때문에 데이터 입출력시 동일한 속도를 가지고 동작할 수 없다. 따라서, 단말기에 포함되는 각 구성부의 데이터 처리 속도의 불균형을 해소하지 못하는 경우 전체적인 데이터 처리속도가 하향 평준화될 수 있다. Each component included in a digital terminal such as a computer, for example, a central processing unit (CPU), a memory, a hard disk, a CD-ROM, etc., has different speeds for processing data individually, so that the same speed is used for data input and output. Can't work with it. Therefore, when the imbalance of the data processing speed of each component included in the terminal cannot be solved, the overall data processing speed can be leveled down.

이러한 문제점을 해결하기 위한 하드웨어적인 해결책으로 단말기의 각 구성부 사이에서 입출력 속도 차이를 커버해주는 버퍼(BUFFER)를 사용하거나 또는 캐쉬(CACHE)를 사용해 단말기의 각 구성부 상호간 속도 차이로 인해 발생되는 병목현상 즉, 고속으로 데이터를 처리하는 구성부가 저속으로 데이터를 처리하는 장치의 작업수행을 기다려야 하는 현상을 줄여줄 수 있다. As a hardware solution to solve this problem, a bottleneck caused by the speed difference between each component of the terminal using a buffer (BUFFER) or a cache (CACHE) to cover the difference between the input and output speed between each component of the terminal The phenomenon, that is, a component that processes data at high speed can reduce the phenomenon of waiting for a work performed by a device that processes data at low speed.

데이터 처리 속도를 향상시키기 위한 버퍼 캐시를 이용한 페이지 교체 정책은 다양한 알고리즘으로 발전해왔는데, 해당 페이지를 빠르게 입출력하기 위해 특정 페이지를 버퍼 캐쉬에 둘 것인지 아니면 하드디스크로 내려보낼 것인지 결정하는 알고리즘이 많이 연구되었다. The policy of page replacement using buffer cache to improve data processing speed has evolved into various algorithms, and many algorithms have been studied to decide whether to put a specific page in the buffer cache or to send it down to the hard disk for fast I / O. .

버퍼 캐쉬를 이용한 페이지 교체 알고리즘은 LRU(Least Recently Used), 2Q, EELRU(Early Eviction Least Recently Used). LRFU(Least Recently/Frequency Used), UBM(Unified Buffer Management) 등 여러 가지 형태의 알고리즘이 존재한다. The page replacement algorithm using the buffer cache is Least Recently Used (LRU), 2Q, and Early Eviction Least Recently Used (EELRU). There are various types of algorithms such as Least Recently / Frequency Used (LRFU) and Unified Buffer Management (UBM).

페이지 교체 알고리즘 중 하나인 LRU-K 알고리즘은 최근 K번의 참조로부터 추정된 참조 조밀성에 근거하여 교체 블록을 결정하는 알고리즘이다. 즉, 버퍼 캐쉬 안의 블록들 중에서 최근 K번째의 참조 시간이 가장 오래 전인 블록을 교체한다. 최근 K번째의 참조시간을 고려하기 때문에 LRU-K 교체 정책은 빈번하게 참조되는 블록들과 그렇지 못한 블록들을 구별할 수 있어 최근 참조 횟수가 적은 블록들을 버퍼 캐쉬에서 우선적으로 교체할 수 있다.The LRU-K algorithm, which is one of the page replacement algorithms, is an algorithm that determines replacement blocks based on reference densities estimated from recent K references. That is, among the blocks in the buffer cache, the block whose last K-th reference time is the longest is replaced. Since the latest K-th reference time is taken into account, the LRU-K replacement policy can distinguish blocks that are frequently referenced from those that are not, so that the blocks having the latest reference count can be replaced in the buffer cache first.

만약 K를 2로 가정하는 경우, LRU-K 알고리즘을 사용하기 위해서는 버퍼의 헤더에 해당 페이지의 마지막 참조시간과 마지막 참조시간의 바로 이전 시간 정보인 마지막 이전의 참조시간 정보를 유지하고, 이러한 참조시간 정보는 버퍼에 포함된 해당 페이지가 참조될 때 마다 갱신되어야 한다. If K is assumed to be 2, in order to use the LRU-K algorithm, in the header of the buffer, the last reference time information, which is the last reference time of the page and the immediately preceding time information of the last reference time, is maintained. The information must be updated whenever the corresponding page in the buffer is referenced.

하드 디스크와 같은 보조 기억 장치에서 특정 페이지가 참조되어 주기억 장치로 올라오게 되면 상기 특정 페이지의 마지막 참조시간 정보가 갱신되고, 상기 특정 페이지가 다시 주기억 장치에서 참조 되는 경우, 마지막 참조시간 정보는 마지막 이전의 참조시간으로 기록되고 다시 주기억 장치에서 참조된 시간이 마지막 참조 시간으로 갱신된다. When a specific page is referred to the main memory in a secondary storage device such as a hard disk, the last reference time information of the specific page is updated, and when the specific page is referenced in the main memory again, the last reference time information is changed to the last previous time. The time recorded by the reference time of and referenced by the main memory device is updated to the last reference time.

도 1은 버퍼 캐쉬를 운영하기 위한 페이지 교체 알고리즘 중 LRU-K 알고리즘을 설명하기 위한 개념도이다. 1 is a conceptual diagram illustrating an LRU-K algorithm among page replacement algorithms for operating a buffer cache.

도 1을 참조하면 페이지 교체 알고리즘인 LRU-K 알고리즘을 구현하기 위해서, LRU-K 리스트(100) 제1 우선 순위 큐(110) 및 제2 우선 순위 큐(120)가 사용된다. Referring to FIG. 1, in order to implement the LRU-K algorithm, which is a page replacement algorithm, the first priority queue 110 and the second priority queue 120 of the LRU-K list 100 are used.

특정 페이지가 참조되고 참조되는 특정 페이지가 LRU-K 리스트(100)에 있는 경우, LRU-K 리스트(100)에서 참조된 특정 페이지는 LRU-K 리스트(100)의 헤더로 이동된다. If a specific page is referenced and the specific page referenced is in the LRU-K list 100, the specific page referenced in the LRU-K list 100 is moved to the header of the LRU-K list 100.

LRU-K 리스트(100)에 포함된 페이지들은 LRU-K 리스트(100)의 특정 페이지가 참조되는 경우, 참조된 특정 페이지의 참조 시간 정보가 변하기 때문에 재배열될 수 있다. Pages included in the LRU-K list 100 may be rearranged when reference time information of the referenced specific page changes when a specific page of the LRU-K list 100 is referred to.

K를 2라고 가정하고, LRU-K 리스트(100)에 참조 페이지를 기록할 공간이 없는 경우, LRU-K 리스트(100)를 순차적으로 스캔하면서 Victim이 될 페이지를 찾을 수 있다. 우선적으로 Victim이 되는 페이지는 LRU-K 리스트(100)에 존재하면서, 마지막 이전 참조 시간 정보가 존재하지 않는 페이지이다. Assuming K is 2 and there is no space to record the reference page in the LRU-K list 100, the page to be the Victim may be found while sequentially scanning the LRU-K list 100. The page which becomes the first Victim is a page which exists in the LRU-K list 100 and does not have the last previous reference time information.

LRU-K 리스트(100)를 스캔하면서 마지막 이전 참조 시간 정보가 존재하는 페이지는 제1 우선 순위 큐(110)로 삽입하고, 마지막 이전 참조 시간 정보가 존재하지 않는 페이지는 LRU-K 리스트(100)에 유지한다. 스캔이 종료하게 되면 마지막 이전 참조 시간 정보가 존재하지 않는 페이지는 Victim으로 선정되어 보조 기억 장치로 삽입되고 참조하고자 하는 페이지는 LRU-K 리스트(100)의 헤더에 삽입되게 된다.Scanning the LRU-K list 100, the page in which the last previous reference time information exists is inserted into the first priority queue 110, and the page in which the last previous reference time information does not exist is displayed in the LRU-K list 100. To keep on. When the scan ends, the page for which the last previous reference time information does not exist is selected as Victim and inserted into the auxiliary memory, and the page to be referred to is inserted into the header of the LRU-K list 100.

LRU-K 리스트(100)를 스캔하는 도중 마지막 이전 시간 정보가 존재하지 않는 페이지가 없는 경우, 스캔하는 도중, 마지막 이전 참조 시간 정보가 존재하여 제1 우선 순위 큐로 밀려난 페이지 중 가장 오래된 마지막 이전 참조 시간 정보가 있는 페이지가 Victim으로 선정하여 보조기억장치에 쓰고 해당 참조 페이지를 제1 우선순위 큐(110)에 삽입한다. If there are no pages that do not have last previous time information while scanning the LRU-K list 100, the oldest last previous reference among the pages that were pushed to the first priority queue because the last previous reference time information was present during the scan. The page with the time information is selected as Victim and written to the auxiliary memory device, and the reference page is inserted into the first priority queue 110.

제2 우선 순위 큐(120)는 LRU-K 리스트(100)에서 밀려난 페이지들의 참조 기록 정보를 기록하여 이후 밀려난 페이지가 LRU-K 리스트(100)에 다시 삽입될 경우 밀려날 페이지를 결정하기 위해 사용할 수 있다. The second priority queue 120 records the reference record information of the pages pushed out of the LRU-K list 100 so as to determine which page is to be pushed out when the next pushed page is inserted into the LRU-K list 100 again. Can be used.

기존의 LRU-K 알고리즘을 사용한 페이지 교체 정책을 사용시 마지막 이전 참조 시간 정보가 존재하는 페이지도 LRU-K 리스트 및 제1 우선 순위 큐의 버퍼의 수가 한정되어 있기 때문에, 다른 페이지에 비해 마지막 이전 참조 시간이 오래되었다면 LRU-K 리스트에서 밀려나 보조기억장치에 기록된다. 따라서, 밀려난 마지막 이전 참조 시간이 있는 페이지가 실행중인 프로그램에서 다시 참조가 될 경우 보조 메모리 장치에서 해당 페이지를 다시 읽어와야 하기 때문에 디스크의 쓰기/읽기 연산이 추가적으로 발생하여 데이터 처리 시간이 늦어진다. When using the page replacement policy using the existing LRU-K algorithm, the page with the last previous reference time information also has a limited number of buffers in the LRU-K list and the first priority queue. If it is older, it is pushed out of the LRU-K list and written to the secondary memory. Therefore, when the page with the last previous reference time that is pushed back is referred to by the executing program, the page needs to be read again from the auxiliary memory device, which causes additional write / read operations of the disk and slows down the data processing time.

따라서, 본 발명의 제1 목적은 SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 방법을 제공하는 것이다. Accordingly, a first object of the present invention is to provide a buffer cache management method implementing an LRU-K algorithm using a solid state disk (SSD) as an expansion buffer.

또한, 본 발명의 제2 목적은 SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치를 제공하는 것이다. In addition, a second object of the present invention is to provide a buffer cache management apparatus implementing the LRU-K algorithm using a solid state disk (SSD) as an expansion buffer.

상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일 측면에 따른 SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 방법은 주 메모리 장치에 소정의 프로그램에서 요청한 참조 페이지를 삽입할 버퍼 공간이 없는 경우, LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지 및 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지 중에서 적어도 하나를 SSD 확장 버퍼에 기록하는 단계와 상기 SSD 확장 버퍼에 포함된 상기 제2 참조 시간 정보가 없는 페이지 및 상기 제2 참조 시간 정보가 있는 페이지 중 적어도 하나를 기록할 버퍼 공간이 상기 SSD 확장 버퍼에 없는 경우, 상기 제2 참조 시간 정보가 없는 페이지를 우선적으로 보조 메모리 장치에 기록하고, 상기 제2 참조 시간 정보가 있는 페이지는 상기 보조 메모리 장치에 기록하지 않고 상기 SSD 확장 버퍼에 유지하는 단계를 포함할 수 있다. SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 방법은 상기 주 메모리 장치에 상기 참조 페이지를 삽입할 버퍼 공간이 있는 경우, 해당 페이지를 상기 주 메모리 장치의 상기 버퍼 공간에 삽입하고 참조하는 단계를 더 포함할 수 있다. SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 방법은 상기 주 메모리 장치에 존재하던 페이지가 상기 SSD 확장 버퍼에 기록되어 상기 주 메모리 장치에 버퍼 공간이 생긴 경우 상기 버퍼 공간에 상기 참조 페이지를 기록하는 단계를 더 포함할 수 있다. 상기 주 메모리 장치에 참조 페이지를 삽입할 버퍼 공간이 없는 경우, LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지 및 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지 중에서 적어도 하나를 SSD 확장 버퍼에 기록하는 단계는 상기 LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지가 있는 경우, 상기 페이지를 상기 SSD 확장 버퍼에 기록하고 상기 참조 페이지를 상기 LRU-K 리스트에 기록하는 단계와 상기 LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지가 없는 경우, 상기 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지를 상기 SSD 확장 버퍼에 기록하고 상기 참조 페이지를 상기 제1 우선 순위 큐에 기록하는 단계를 포함할 수 있다. SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 방법은 상기 참조 페이지가 상기 LRU-K 리스트에 없는 경우, 상기 제1 우선 순위 큐에 상기 참조 페이지가 있는지 여부를 판단하고 상기 제1 우선 순위 큐에 상기 참조 페이지가 없는 경우, 상기 SSD 확장 버퍼에 상기 참조 페이지가 있는지 여부를 판단할 수 있다. 상기 제2 참조 시간 정보는 소정의 페이지가 마지막으로 참조된 시간 정보인 마지막 참조 시간 정보를 제1 참조 시간 정보라고 할 때, 상기 페이지의 마지막 참조 시간 이전에 참조된 시간에 대한 정보인 마지막 이전 참조 시간 정보일 수 있다. 상기 LRU-K 알고리즘은 K의 값은 2일 수 있다. The buffer cache management method implementing the LRU-K algorithm by using a solid state disk (SSD) as an expansion buffer according to an aspect of the present invention for achieving the first object of the present invention includes a predetermined program in a main memory device. If there is no buffer space for inserting the reference page requested by, the first page among the pages without the second reference time information included in the LRU-K list and the second reference time information included in the first priority queue exist. 2 writing at least one of the pages having the oldest reference time to the SSD expansion buffer, and writing at least one of a page without the second reference time information included in the SSD expansion buffer and a page with the second reference time information. If there is no buffer space to be in the SSD expansion buffer, a page without the second reference time information is preferentially written to the auxiliary memory device, The page including the second reference time information may be maintained in the SSD expansion buffer without writing to the auxiliary memory device. The buffer cache management method implementing the LRU-K algorithm using a solid state disk (SSD) as an expansion buffer, when the main memory device has a buffer space for inserting the reference page, inserts the page into the main memory device. The method may further include inserting into the buffer space and referencing the buffer space. In the buffer cache management method using the SSD (Solid State Disk) as an expansion buffer and implementing the LRU-K algorithm, when a page existing in the main memory device is written to the SSD expansion buffer, buffer space is generated in the main memory device. The method may further include writing the reference page in the buffer space. If there is no buffer space in the main memory device to insert the reference page, the page without the second reference time information included in the LRU-K list and the page with the second reference time information included in the first priority queue exist The writing of the at least one page of the oldest of the second reference time in the SSD expansion buffer, if there is a page without the second reference time information included in the LRU-K list, the page is the SSD expansion buffer And writing the reference page to the LRU-K list, and if there is no page without the second reference time information included in the LRU-K list, a second reference included in the first priority queue. Write the page with the oldest second reference time among the pages in which time information exists in the SSD expansion buffer and write the reference page in the first priority order. And recording to the queue above. The buffer cache management method implementing the LRU-K algorithm using a solid state disk (SSD) as an expansion buffer may include whether the reference page exists in the first priority queue when the reference page is not in the LRU-K list. If there is no reference page in the first priority queue, it may be determined whether the reference page exists in the SSD expansion buffer. The second reference time information refers to the last reference time information, which is information on a time referenced before the last reference time of the page, when the last reference time information, which is time information on which a predetermined page was last referred to, is first reference time information. Time information. In the LRU-K algorithm, the value of K may be 2.

또한 상술한 본 발명의 제2 목적을 달성하기 위한 본 발명의 일 측면에 따른 SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치는 페이지 교체 정책으로 LRU-K 알고리즘을 사용하여 LRU-K 리스트, 제1 우선 순위 큐 및 제2 우선 순위 큐를 포함하는 주 메모리 장치와 상기 주 메모리 장치에 소정의 프로그램에서 요청한 참조 페이지를 삽입할 버퍼 공간이 없는 경우, 상기 LRU-K 리스트에 포함된 제2 참조 시간 정보가 없는 페이지 및 상기 제1 우선 순위 큐에 포함된 상기 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지 중 적어도 하나를 기록하는 SSD 확장 버퍼를 포함할 수 있다. SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치는 상기 주 메모리 장치에 상기 참조 페이지를 삽입할 버퍼 공간이 없는 경우, 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지와 LRU-K 리스트에 포함된 제2 참조 시간 정보가 없는 페이지 중에서 적어도 하나를 SSD 확장 버퍼에 기록하고 상기 SSD 확장 버퍼에 포함된 상기 제2 참조 시간 정보가 없는 페이지 및 상기 제2 참조 시간 정보가 있는 페이지 중 적어도 하나를 기록할 버퍼 공간이 상기 SSD 확장 버퍼에 없는 경우, 상기 제2 참조 시간 정보가 없는 페이지를 우선적으로 보조 메모리 장치에 기록하고, 상기 제2 참조 시간 정보가 있는 페이지는 상기 보조 메모리 장치에 기록하지 않고 상기 SSD 확장 버퍼에 유지할 수 있다. 주 메모리 장치에 참조 페이지를 삽입할 버퍼 공간이 없는 경우, LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지 및 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지 중에서 적어도 하나를 SSD 확장 버퍼에 기록하는 것은 상기 LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지가 있는 경우, 상기 페이지를 상기 SSD 확장 버퍼에 기록하고 상기 참조 페이지를 상기 LRU-K 리스트에 기록하고, 상기 LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지가 없는 경우 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지를 상기 SSD 확장 버퍼에 기록하고 상기 참조 페이지를 상기 제1 우선 순위 큐에 기록할 수 있다. SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치는 상기 참조 페이지가 상기 LRU-K 리스트에 없는 경우, 상기 제1 우선 순위 큐에 상기 참조 페이지가 있는지 여부를 판단하고 상기 제1 우선 순위 큐에 상기 참조 페이지가 없는 경우, 상기 SSD 확장 버퍼에 상기 참조 페이지가 있는지 여부를 판단할 수 있다. 상기 제2 참조 시간 정보는 소정의 페이지가 마지막으로 참조된 시간 정보인 마지막 참조 시간 정보를 제1 참조 시간 정보라고 할 때, 상기 페이지의 마지막 참조 시간 이전에 참조된 시간에 대한 정보인 마지막 이전 참조 시간 정보일 수 있다. 상기 LRU-K 알고리즘은 K의 값은 2일 수 있다. In addition, the buffer cache management apparatus implementing the LRU-K algorithm using an SSD (Solid State Disk) according to an aspect of the present invention as an expansion buffer to achieve the above-described second object of the present invention is LRU- If the main memory device including the LRU-K list, the first priority queue, and the second priority queue using the K algorithm and there is no buffer space in the main memory device to insert a reference page requested by a predetermined program, At least one of a page having no second reference time information included in an LRU-K list and a page having the second reference time oldest among the pages in which the second reference time information included in the first priority queue exists are recorded. SSD expansion buffer may be included. The buffer cache management apparatus that implements the LRU-K algorithm by using a solid state disk (SSD) as an expansion buffer may include the first cache included in the first priority queue when there is no buffer space in the main memory device to insert the reference page. 2 Write at least one of a page having the reference time information with the oldest second reference time and a page without the second reference time information included in the LRU-K list in the SSD expansion buffer and include in the SSD expansion buffer If there is no buffer space in the SSD expansion buffer to record at least one of the page without the second reference time information and the page with the second reference time information, the page without the second reference time information is preferentially assisted. A page written to a memory device and having the second reference time information is written to the SSD expansion buffer without writing to the auxiliary memory device. I can keep it. If there is no buffer space in the main memory device to insert the reference page, the page without the second reference time information included in the LRU-K list and the page including the second reference time information included in the first priority queue are present. Writing at least one of the oldest pages of the second reference time to the SSD expansion buffer writes the page to the SSD expansion buffer when there is a page without the second reference time information included in the LRU-K list. The reference page is recorded in the LRU-K list, and when there is no page without the second reference time information included in the LRU-K list, the second reference time information included in the first priority queue is present. Write the oldest page of the page to the SSD expansion buffer and write the reference page to the first priority queue. The. The buffer cache management apparatus implementing the LRU-K algorithm by using a solid state disk (SSD) as an expansion buffer may determine whether the reference page is in the first priority queue when the reference page is not in the LRU-K list. If there is no reference page in the first priority queue, it may be determined whether the reference page exists in the SSD expansion buffer. The second reference time information refers to the last reference time information, which is information on a time referenced before the last reference time of the page, when the last reference time information, which is time information on which a predetermined page was last referred to, is first reference time information. Time information. In the LRU-K algorithm, the value of K may be 2.

상술한 바와 같이 본 발명의 실시예에 따른 에스에스디를 확장 버퍼로 이용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장 버퍼로 사용한 장치에 따르면, 마지막 이전 참조 시간 정보가 존재하는 페이지가 LRU-K 알고리즘을 사용한 페이지 교체 정책에 의해 밀려날 경우, 마지막 이전 참조 시간 정보가 존재하지 않는 페이지와 마찬가지로 바로 하드 디스크와 같은 보조 메모리 장치에 바로 내려 보내는 것이 아니라 한번의 기회를 추가적으로 부여해 SSD를 사용한 확장 버퍼에 유지시킴으로서 마지막 이전 참조 시간 정보가 존재하는 페이지들이 재참조 될 때 하드디스크가 아닌 SSD 확장버퍼를 통해 참조하게 함으로서 디스크의 쓰기/읽기 연산을 줄여 페이지의 입출력 속도를 증가시킬 수 있다. As described above, according to the buffer cache management method using the SD as an extension buffer and the apparatus using the SD as the extension buffer, the page in which the last previous reference time information exists uses the LRU-K algorithm as described above. When pushed back by a page replacement policy, the last previous reference time information is not sent directly to a secondary memory device, such as a hard disk, just like a page that does not exist, but instead has one additional opportunity to keep it in an expansion buffer using SSDs. When pages with reference time information are rereferenced, they can be referred to through the SSD expansion buffer instead of the hard disk, thereby reducing the write / read operation of the disk and increasing the input / output speed of the page.

도 1은 버퍼 캐쉬를 운영하기 위한 페이지 교체 알고리즘 중 LRU-K 알고리즘을 설명하기 위한 개념도이다.
도 2는 SSD에서 데이터 영역과 로그 영역을 사용하여 특정 페이지에 랜덤 쓰기(Random Write)를 실행하는 방법을 나타내는 개념도이다.
도 3은 본 발명의 일실시예에 따른 SSD를 확장 버퍼로 사용하기 위한 SSD의 순차 쓰기(Sequential Write)를 설명하기 위한 개념도이다.
도 4는 본 발명의 일실시예에 따른 원형 큐 구조를 이용해 SSD를 확장 버퍼로 사용하는 것을 나타낸 개념도이다.
도 5는 본 발명의 일실시예에 따른 SSD를 확장 버퍼로 사용한 장치를 나타낸 개념도이다.
도 6은 본 발명의 일실시예에 따른 SSD 확장 버퍼를 사용한 페이지 교체 방법을 나타낸 순서도이다.
도 7은 본 발명의 실시예에 따른 SSD를 확장버퍼로 LRU-K 페이지 교체 알고리즘을 사용하였을 때 수행성능을 나타낸 그래프이다.
1 is a conceptual diagram illustrating an LRU-K algorithm among page replacement algorithms for operating a buffer cache.
2 is a conceptual diagram illustrating a method of executing a random write on a specific page by using a data area and a log area in an SSD.
3 is a conceptual diagram illustrating a sequential write of an SSD for using an SSD as an expansion buffer according to an embodiment of the present invention.
4 is a conceptual diagram illustrating the use of an SSD as an expansion buffer using a circular queue structure according to an embodiment of the present invention.
5 is a conceptual diagram illustrating a device using an SSD as an expansion buffer according to an embodiment of the present invention.
6 is a flowchart illustrating a page replacement method using an SSD expansion buffer according to an embodiment of the present invention.
7 is a graph illustrating performance when the LRU-K page replacement algorithm is used as an expansion buffer of an SSD according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. Hereinafter, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

이하 본 발명의 실시예에서는, 페이지 교체 알고리즘으로 LRU-K 알고리즘을 사용한다. 설명의 편의상 LRU-K 알고리즘의 K의 값을 2로 가정하여 페이지 교체 정책을 적용할 수 있다. 하지만 본 발명의 본질에서 벋어나지 않는 한 K의 값은 2로 제한되는 값이 아닌 2 이상의 값이 될 수 있다. 이하, K가 2라고 가정하고 특정 페이지가 참조된 경우, 상기 특정 페이지의 가장 최근의 참조된 시간 정보를 마지막 참조 시간 정보라고 정의하고, 상기 특정 페이지의 가장 최근의 참조된 시간 이전에 참조된 시간을 마지막 이전 참조 시간 정보라고 정의한다. 이하 본 발명의 실시예에서 상기 마지막 참조 시간 정보를 제1 참조 시간 정보라는 용어로 사용하고 마지막 이전 참조 시간 정보를 제2 참조 시간 정보라는 용어로 사용한다.
In the following embodiment of the present invention, the LRU-K algorithm is used as the page replacement algorithm. For convenience of explanation, the page replacement policy may be applied by assuming that the K value of the LRU-K algorithm is 2. However, the value of K may be two or more values, not limited to two, unless it departs from the essence of the present invention. Hereinafter, when K is 2 and a specific page is referenced, the most recently referenced time information of the specific page is defined as last reference time information, and the time referenced before the most recent referenced time of the specific page is referred to. Is defined as the last previous reference time information. Hereinafter, in the embodiment of the present invention, the last reference time information is used as the term of the first reference time information and the last previous reference time information is used as the term of the second reference time information.

이하, LRU-K 알고리즘을 각 페이지에 적용하기 위해 페이지의 속성을 핫 페이지(Hot Page), 웜 페이지(Warm Page), 콜드 페이지(Cold Page)로 구분하고, 핫 페이지는 지금 주 메모리에 존재하는 페이지, 웜 페이지는 마지막 이전 참조 시간 정보(제2 참조 시간 정보) 및 마지막 참조 시간 정보(제1 참조 시간 정보)가 모두 존재하는 페이지, 콜드 페이지는 마지막 참조 시간 정보(제1 참조 시간 정보)를 가지는 페이지 및 참조 시간 정보가 없는 페이지로서 정의한다. Hereinafter, in order to apply the LRU-K algorithm to each page, the attributes of the page are divided into a hot page, a warm page, and a cold page, and the hot page is present in main memory. Pages, warm pages are pages where both the last previous reference time information (second reference time information) and the last reference time information (first reference time information) exist, and the cold page shows the last reference time information (first reference time information). The branch is defined as a page without a page and reference time information.

이하 본 발명의 일시예에 따르면 버퍼 캐쉬를 운영하기 위한 LRU-K 알고리즘을 구현 시 주 메모리 장치에는 LRU-K 리스트, 제1 우선 순위 큐 및 제2 우선 순위 큐가 있고 특정 페이지가 참조되고 참조되는 특정 페이지가 LRU-K 리스트에 있는 경우, LRU-K 리스트에서 참조된 특정 페이지는 LRU-K 리스트의 헤더로 이동될 수 있다. LRU-K 리스트의 특정 페이지가 참조되는 경우, 참조된 특정 페이지의 참조 시간 정보가 변하기 때문에 LRU-K 리스트가 재배열될 수 있다. Hereinafter, according to an embodiment of the present invention, when implementing an LRU-K algorithm for operating a buffer cache, a main memory device includes an LRU-K list, a first priority queue, and a second priority queue, in which a specific page is referred and referenced. If a specific page is in the LRU-K list, the specific page referenced in the LRU-K list may be moved to the header of the LRU-K list. When a specific page of the LRU-K list is referenced, the LRU-K list may be rearranged because the reference time information of the referenced specific page changes.

K를 2라고 가정하면, LRU-K 리스트에 참조 페이지를 기록할 공간이 없는 경우, LRU-K 리스트를 순차적으로 스캔하면서 Victim이 될 페이지를 찾을 수 있고 우선적으로 Victim이 되는 페이지는 LRU-K 리스트에 존재하면서, 마지막 이전 참조 시간 정보가 존재하지 않는 페이지가 될 수 있다. LRU-K 리스트를 스캔하면서 마지막 이전 참조 시간 정보가 존재하는 페이지는 제1 우선 순위 큐로 삽입하고, 마지막 이전 참조 시간 정보가 존재하지 않는 페이지는 LRU-K 리스트에 유지될 수 있다. 스캔이 종료하게 되면 마지막 이전 참조 시간 정보가 존재하지 않는 페이지는 Victim으로 선정될 수 있다.Assuming K is 2, if there is no space in the LRU-K list to record the reference page, the LRU-K list can be scanned sequentially to find the page to be the Victim, and the page that becomes the Victim is the LRU-K list. It may be a page that exists at, but does not have the last previous reference time information. While scanning the LRU-K list, pages in which the last previous reference time information exists may be inserted into the first priority queue, and pages in which the last previous reference time information does not exist may be maintained in the LRU-K list. When the scan ends, the page for which the last previous reference time information does not exist may be selected as Victim.

LRU-K 리스트를 스캔하는 도중 마지막 이전 시간 정보가 존재하지 않는 페이지가 없는 경우, 스캔하는 도중, 마지막 이전 참조 시간 정보가 존재하여 제1 우선 순위 큐로 밀려난 페이지 중 가장 오래된 마지막 이전 참조 시간 정보가 있는 페이지가 Victim으로 선정될 수 있다.If there are no pages that do not have the last previous time information while scanning the LRU-K list, the oldest previous previous time reference information among the pages that were pushed to the first priority queue because of the last previous reference time information was present during the scan. A page that can be selected as Victim.

제2 우선 순위 큐는 LRU-K 리스트에서 밀려난 페이지들의 참조 기록 정보를 기록하여 이후 밀려난 페이지가 LRU-K 리스트에 다시 삽입될 경우 밀려날 페이지를 결정하기 위해 사용할 수 있다. The second priority queue may record reference record information of pages pushed out of the LRU-K list and use it to determine pages to be pushed out when the pushed pages are inserted again into the LRU-K list.

본 발명에서는 LRU-K 리스트 및 제1 우선 순위 큐에서 밀려난 페이지를 SSD에 기록하는 방법을 사용하여 기존의 LRU-K 알고리즘 보다 데이터의 입출력 속도를 향상 시킬 수 있다.
The present invention can improve the input / output speed of data over the conventional LRU-K algorithm by using a method of writing the page pushed out of the LRU-K list and the first priority queue to the SSD.

본 발명의 일실시예에 따르면 본 발명에서는 LRU-K 리스트에서 밀려난 웜 페이지를 하드 디스크와 같은 보조 기억 장치로 내려 바로 보내지 않고 추가의 기회를 주어 유지하기 위한 확장 버퍼로서 SSD(Soild State Disk)를 사용할 수 있다. According to an embodiment of the present invention, in the present invention, an worm page pushed from an LRU-K list may be an extended buffer for providing an additional opportunity to maintain the worm page without being sent directly to an auxiliary storage device such as a hard disk. Can be used.

SDD는 일종의 플래쉬 메모리로서 랜덤 읽기(Random Read) 측면에서 일반적인 자기적인 성질을 가진 하드 디스크에 비해 좋은 성능을 가진다. SDD is a kind of flash memory that has better performance than hard disks that have general magnetic properties in terms of random read.

하지만, SSD는 NAND를 사용하는 구조이기 때문에 HDD와 달리 오버라이트(Overwrite)를 하지 못한다. 따라서, SSD에 페이지를 오버라이트 해야 할 경우, 오버라이트를 해야 할 페이지를 제외한 블록의 나머지 페이지들을, 기록된 페이지가 없는 자유 블록(Free Block)에 복사하고, 그 후에 오버라이트를 해야 할 페이지를 해당 위치에 다시 쓰는 방식을 사용하게 된다. 이전의 데이터 블록은 지움(Erase) 연산을 통해 자유 블록(Free Block)으로 전환된다. 전술한 복잡한 절차로 인해 오버라이트를 해야 할 경우 바로 해당 페이지를 오버라이트 할 수 있는 하드 디스크에 비해 SSD는 데이터의 처리 속도가 상대적으로 느려지게 된다.However, unlike HDD, SSD cannot be overwritten because it uses NAND. Therefore, if you need to overwrite a page on the SSD, copy the remaining pages of the block, except the page that needs to be overwritten, to a free block with no written pages, and then rewrite the page to overwrite. The rewrite method is used. The previous data block is converted into a free block through an erase operation. When the overwrite is required due to the above-described complicated procedure, the SSD is relatively slow in processing data compared to a hard disk capable of overwriting the corresponding page.

SSD가 가진 오버라이트의 문제점을 해결하기 위한 방법으로, SSD의 영역을 로그 영역(Log Area)와 데이터 영역(Data Area)으로 나누어 사용할 수 있다. 데이터 영역(Data Area)은 실제의 데이터를 저장하는 부분이고 로그 영역(Log Area)은 데이터 영역에서 발생한 오버라이트로 인한 지움(Erase) 연산을 미루기 위해 사용될 수 있다.
As a method for solving the problem of overwriting of an SSD, an area of the SSD may be divided into a log area and a data area. The data area is a part for storing actual data, and the log area may be used to postpone erase operations due to overwrite occurring in the data area.

도 2는 SSD에서 데이터 영역과 로그 영역을 사용하여 특정 페이지에 랜덤 쓰기(Random Write)를 실행하는 방법을 나타내는 개념도이다.2 is a conceptual diagram illustrating a method of executing a random write on a specific page by using a data area and a log area in an SSD.

도 2를 참조하면, 랜덤 쓰기 1단계(200)에서는 SSD의 데이터 영역에 포함되는 특정 페이지에 랜덤 쓰기를 해야 한다면 우선 랜덤 쓰기를 해야 하는 페이지를 Invaild시킨 후 갱신될 페이지를 SSD의 로그 영역에 기록한다. Referring to FIG. 2, in the random write first step 200, if a random write is required on a specific page included in the data area of the SSD, first, a page to be randomly written is invaild and then the page to be updated is written to the log area of the SSD. do.

랜덤 쓰기 2단계(210)에서는 계속적인 랜덤 쓰기의 필요로 인해 각 데이터 영역의 블록에 포함된 랜덤 쓰기를 해서 갱신되어야 할 페이지들이 SSD의 로그 영역에 꽉 찰 수 있다. In the random writing step 210, pages to be updated by random writing included in blocks of each data area may be filled in the log area of the SSD due to the need for continuous random writing.

다음으로, 랜덤 쓰기 3단계(220)에서는 데이터 영역에서 저장된 페이지가 없는 자유 블록(220-1)을 할당받고 로그 영역에 기록된 페이지 중 Merge를 수행할 블록의 페이지(220-2)를 자유블록(220-1)에 랜덤 쓰기를 할 해당 페이지 위치에 복사한다. Next, in the third random writing step 220, the free block 220-1 having no page stored in the data area is allocated and the free block page 220-2 of the block to be merged among the pages written in the log area is free block. Copies to the corresponding page position for random writing to (220-1).

랜덤 쓰기 4단계(230)에서는 원래의 데이터 블록에서 갱신할 필요가 없는 나머지 블록들을 자유블록으로 복사한다. 이러한 랜덤쓰기 3단계(220)와 랜덤쓰기 4단계(230)의 절차는 로그 영역에서 갱신할 페이지들을 대상으로 모두 일어나게 된다. In the random write step 4 230, the remaining blocks that do not need to be updated from the original data blocks are copied into the free blocks. The procedure of the random write step 3 220 and the random write step 4 230 occurs for all pages to be updated in the log area.

즉, SSD에서는 로그 영역을 이용해 데이터 영역에서 발생한 오버라이트로 인한 지움 연산을 수행하는 시간을 미룸으로서 SSD의 단점인 느린 오버라이트 동작을 어느 정도 개선할 수 있다. That is, in the SSD, the delay of the erase operation due to the overwrite occurring in the data area may be delayed using the log area, thereby improving the slow overwrite operation, which is a disadvantage of the SSD, to some extent.

본 발명의 일실시예에 따르면 SSD 확장버퍼는 LRU-K 알고리즘을 사용할 경우 발생하는 웜 데이터를 하드 디스크로 바로 반환하여 결과적으로 페이지를 재참조시 부가적인 입출력 동작으로 인해 데이터의 입출력 속도가 저하되는 문제를 해결하기 위해 웜 데이터를 SSD에 추가의 기회를 주어 저장하는 기능을 수행할 수 있다. SSD를 확장 버퍼로 이용하여 웜 데이터를 저장하는 기능을 수행하기 위해서, SSD는 오버라이트 동작을 수행시 도 2에서 설명한 랜덤 쓰기(Random Write)를 수행할 필요가 없이 순차 쓰기(Sequential Write)만을 수행하면 되기 때문에 결과적으로 오버라이트의 속도가 향상된다.
According to an embodiment of the present invention, the SSD expansion buffer directly returns worm data generated when the LRU-K algorithm is used to the hard disk. As a result, the input / output speed of the data is reduced due to additional input / output operations when the page is referred to again. In order to solve the problem, the worm data can be added to the SSD and stored. In order to perform the function of storing the warm data by using the SSD as an expansion buffer, the SSD only performs sequential writes without performing the random write described in FIG. 2 when performing the overwrite operation. As a result, the overwrite speed is improved.

도 3은 본 발명의 일실시예에 따른 SSD를 확장 버퍼로 사용하기 위한 SSD의 순차 쓰기(Sequential Write)를 설명하기 위한 개념도이다.3 is a conceptual diagram illustrating a sequential write of an SSD for using an SSD as an expansion buffer according to an embodiment of the present invention.

도 3을 참조하면, LRU-K 리스트에서 밀려난 페이지는 SSD 확장 버퍼의 로그 영역 및 데이터 영역에 순차적으로 기록될 수 있다.Referring to FIG. 3, pages pushed from the LRU-K list may be sequentially recorded in the log area and the data area of the SSD expansion buffer.

순차 쓰기 1단계(310)에서는 LRU-K 리스트에서 밀려난 페이지가 SSD 확장 버퍼의 데이터 영역(310-1)에 순차적으로 기록되고 데이터 영역(310-1)이 다 찬 후, 오버라이트 동작으로서 로그 영역(310-2)에 순차적으로 기록되게 된다. In the sequential write first step 310, pages pushed from the LRU-K list are sequentially written to the data area 310-1 of the SSD expansion buffer, and after the data area 310-1 is full, the log is written as an overwrite operation. The data is recorded sequentially in the area 310-2.

순차 쓰기 2단계(320)에서는 오버라이트가 발생한 로그 영역의 블록(320-2)을 Merge 연산 없이 바로 데이터 영역의 블록으로 바로 전환하고 이전의 데이터 블록(320-1)은 지움 연산을 수행함으로서 오버라이트 될 수 있다.In the sequential write step 320, the block 320-2 of the overwritten log area is immediately converted to a block of the data area without a merge operation, and the previous data block 320-1 is overwritten by performing an erase operation. Can be lighted.

즉, 본 발명에서 확장 버퍼로 사용하는 SSD의 순차 쓰기 동작은 랜덤 쓰기 동작에 비해 추가적인 삭제 연산 및 페이지 복사 동작이 없이도 간단하게 실행될 수 있어 오버라이트 동작 시 속도가 향상된다.
That is, the sequential write operation of the SSD used as the expansion buffer in the present invention can be executed simply without additional delete operation and page copy operation, compared to the random write operation, thereby improving the speed during the overwrite operation.

도 4는 본 발명의 일실시예에 따른 원형 큐 구조를 이용해 SSD를 확장 버퍼로 사용하는 것을 나타낸 개념도이다. 4 is a conceptual diagram illustrating the use of an SSD as an expansion buffer using a circular queue structure according to an embodiment of the present invention.

SSD 확장 버퍼에 LRU-K 리스트에서 밀려난 페이지 또는 제1 우선 순위 큐에서 밀려난 페이지가 기록될 빈 버퍼 공간이 없는 경우, SSD 확장 버퍼에 존재하는 페이지를 하드 디스크에 기록하고 새롭게 LRU-K 리스트 또는 제1 우선 순위 큐에서 밀려난 페이지를 SSD 확장 버퍼에 기록할 수 있다. 이때 제1 우선 순위 큐에서 밀려난 페이지는 마지막 이전 참조 시간 정보(제 2 참조 시간 정보)가 기록된 웜 페이지이고 LRU-K 리스트에서 밀려난 페이지는 마지막 참조 시간 정보(제1 참조 시간 정보)만이 있는 콜드 페이지가 될 수 있다.If there is no free buffer space in the SSD expansion buffer to write the pages pushed out of the LRU-K list or the pages pushed out of the first priority queue, the pages existing in the SSD expansion buffer are written to the hard disk and a new LRU-K list is created. Alternatively, the page pushed out of the first priority queue may be written to the SSD expansion buffer. At this time, the page pushed out of the first priority queue is a warm page in which the last previous reference time information (second reference time information) is recorded, and the page pushed out of the LRU-K list is only the last reference time information (first reference time information). Can be a cold page.

제1 SSD 확장 버퍼(410)은 콜드 페이지만이 SSD 확장 버퍼에 존재할 때를 나타낸 것이다.The first SSD expansion buffer 410 shows when only cold pages exist in the SSD expansion buffer.

예를 들어, 제1 SSD 확장 버퍼(410)의 경우, 1번 버퍼(410-1)부터 10번 버퍼(410-10)까지 해당 버퍼에 LRU-K 리스트에서 밀려난 콜드 페이지가 기록되어 SSD 확장 버퍼가 모두 찬 경우, 기존의 1번 버퍼(410-1)에 존재하는 페이지를 하드 디스크에 기록하고 다시 1번 버퍼(410-1)에 새로 LRU-K 리스트에서 밀려난 페이지를 기록할 수 있다. For example, in the case of the first SSD expansion buffer 410, a cold page pushed out of the LRU-K list is recorded in the corresponding buffer from the first buffer 410-1 to the tenth buffer 410-10 to expand the SSD. When the buffer is full, the existing page in the first buffer 410-1 can be written to the hard disk, and the newly pushed page in the LRU-K list can be written to the first buffer 410-1. .

제2 SSD 확장 버퍼(420)은 콜드 페이지뿐만 아니라 제1 참조 시간 정보 및 제2 참조 시간 정보가 포함된 제1 우선 순위 큐에서 밀려난 웜 페이지(420-6, 420-7)도 SSD 확장 버퍼에 존재할 때를 나타낸 것이다. In addition to the cold page, the second SSD expansion buffer 420 may also include the warm pages 420-6 and 420-7 that are pushed out of the first priority queue including the first reference time information and the second reference time information. When present in.

본 발명의 일실시예에 따르면 본 발명에서는 웜 페이지(420-6, 420-7)는 콜드 페이지와 다르게 SSD 확장 버퍼가 모두 찬 경우에도 바로 하드 디스크에 기록하지 않고 한번의 기회를 추가적으로 더 주어 SSD 확장 버퍼에 한번 더 유지시킬 수 있다. 웜 페이지(420-6, 420-7)에 추가의 기회를 더 주어 SSD 확장 버퍼에 유지시킴으로서 웜 페이지(420-6, 420-7)에 대한 SSD 확장 버퍼의 Hit Rate를 증가시킬 수 있고 웜 페이지(420-6, 420-7)에 대한 하드 디스크 읽기/쓰기 연산을 줄일 수 있다. According to an embodiment of the present invention, in the present invention, unlike the cold page, the worm pages 420-6 and 420-7 may additionally give the SSD one more chance without writing to the hard disk even when the SSD expansion buffer is full. You can keep it in the extension buffer once more. By adding additional opportunities to the warm pages 420-6 and 420-7 and maintaining them in the SSD expansion buffer, the hit rate of the SSD expansion buffer for the warm pages 420-6 and 420-7 can be increased and the warm page Reduce hard disk read / write operations for (420-6, 420-7).

웜 페이지(420-6, 420-7)를 SSD 확장 버퍼에 유지시키는 기회를 주는 횟수는 조절이 가능하다. 즉, 전술한 바와 같이 웜페이지(420-6, 420-7)에 한번의 기회를 더 주고 그 이후에 다시 순차 쓰기 동작을 통해 웜 페이지(420-6, 420-7)가 위치한 블록이 오버라이트의 대상이 된 경우 하드 디스크에 웜 페이지(420-6, 420-7)를 내려보낼 기록할 수 있고, 경우에 따라서 웜 데이터가 SSD 확장 버퍼에 유지되는 기회를 주는 횟수를 1회 이상으로 조절하는 것도 가능하다.
The number of times the opportunity to keep the warm pages 420-6 and 420-7 in the SSD expansion buffer is adjustable. That is, as described above, the block in which the warm pages 420-6 and 420-7 are located is overwritten by giving the warm pages 420-6 and 420-7 one more chance and then sequentially writing them again. If the target of the worm can write down the worm pages (420-6, 420-7) to the hard disk, and in some cases, the number of times that the worm data is kept in the SSD expansion buffer can be adjusted more than once. It is also possible.

도 5는 본 발명의 일실시예에 따른 SSD를 확장 버퍼로 사용한 장치를 나타낸 개념도이다. 5 is a conceptual diagram illustrating a device using an SSD as an expansion buffer according to an embodiment of the present invention.

도 5를 참조하면 SSD 확장 버퍼(520)를 사용한 장치는 주 메모리 장치(510)와 SSD 확장 버퍼(520) 및 하드 디스크(530)를 포함할 수 있다. Referring to FIG. 5, a device using the SSD expansion buffer 520 may include a main memory device 510, an SSD expansion buffer 520, and a hard disk 530.

주 메모리 장치(510)는 DRAM으로 구현될 수 있다. 주 메모리 장치(510)에는 하드 디스크(530)에서 올라온 참조 페이지 및 SSD 확장 버퍼(520)에서 올라온 페이지가 포함될 수 있다. 주 메모리 장치(510)에는 LRU-K 페이지 교체 알고리즘을 사용하는 LRU-K 리스트, 제1 우선 순위 큐, 제2 우선 순위 큐가 포함될 수 있고 LRU-K 리스트에는 제1 참조 시간 정보를 가지는 핫 페이지가 포함되고 제1 우선 순위 큐에는 제1 참조 시간 정보 및 제2 참조 시간 정보를 가지는 웜페이지가 포함되며, 제2 우선 순위 큐에는 하드디스크로 밀려나서 기록된 페이지들의 참조 시간 관련 정보가 저장될 수 있다. The main memory device 510 may be implemented as a DRAM. The main memory device 510 may include a reference page uploaded from the hard disk 530 and a page uploaded from the SSD expansion buffer 520. The main memory device 510 may include an LRU-K list, a first priority queue, and a second priority queue using the LRU-K page replacement algorithm, and the hot page having the first reference time information in the LRU-K list. The first priority queue includes a warm page having first reference time information and second reference time information, and the second priority queue stores reference time related information of pages that are pushed to the hard disk and recorded. Can be.

주 메모리 장치(510)에서 밀려난 페이지는 SSD 확장 버퍼(520)에 기록될 수 있다. The page pushed from the main memory device 510 may be written to the SSD expansion buffer 520.

SSD 확장 버퍼(520)는 SSD로 구현될 수 있다. SSD 확장 버퍼(520)에는 주 메모리 장치(510)의 LRU-K 리스트 또는 제1 우선 순위 큐에서 밀려난 콜드 페이지 또는 웜 페이지가 기록될 수 있다. SSD 확장 버퍼(520)는 데이터 영역과 로그 영역으로 구분 될 수 있고 주 메모리 장치(510)에서 밀려난 페이지는 순차 쓰기를 통해 SSD 확장 버퍼(520)에 기록될 수 있다. The SSD expansion buffer 520 may be implemented as an SSD. The SSD expansion buffer 520 may record a cold page or a warm page pushed out of the LRU-K list or the first priority queue of the main memory device 510. The SSD expansion buffer 520 may be divided into a data area and a log area, and pages pushed from the main memory device 510 may be written to the SSD expansion buffer 520 through sequential writing.

SSD 확장 버퍼(520)에 포함된 마지막 참조 시간 정보인 제1 참조 시간 정보를 가진 콜드 페이지는 SSD 확장 버퍼(520)에 주 메모리 장치(510)의 LRU-K 리스트에서 밀려난 페이지를 기록하기 위한 버퍼 공간이 부족할 경우, 오버라이트 동작으로 통해 순차적으로 하드 디스크(530)로 밀려나 기록될 수 있다. 즉, 주 메모리 장치로부터 새로 밀려온 페이지는 SSD 확장 버퍼(520)에 콜드 페이지가 있었던 공간에 오버라이트되어 기록될 수 있다. The cold page having the first reference time information, which is the last reference time information included in the SSD expansion buffer 520, is used to write a page pushed from the LRU-K list of the main memory device 510 to the SSD expansion buffer 520. When the buffer space is insufficient, the data may be sequentially pushed to the hard disk 530 through the overwrite operation. That is, the page newly pushed from the main memory device may be overwritten in the space where the cold page existed in the SSD expansion buffer 520.

하지만, SSD 확장 버퍼(520)에 포함된 제1 우선 순위 큐로부터 밀려난 웜 페이지는 하드 디스크(530)로 바로 밀려나 기록되지 않고 SSD 확장 버퍼(520)에 유지될 추가의 기회를 더 줄 수 있다. SSD 확장 버퍼(520)에 웜 페이지를 유지할 기회를 한번 더 줌으로서 웜 페이지에 대한 Hit Rate를 높힐 수 있고, 웜 페이지에 대한 하드 디스크의 읽기/쓰기 연산을 감소시킬 수 있다. However, a warm page pushed out of the first priority queue included in the SSD expansion buffer 520 may be further pushed directly into the hard disk 530 and further give an additional opportunity to be maintained in the SSD expansion buffer 520 without being written. . By giving the SSD expansion buffer 520 another chance to maintain the warm page, the hit rate for the warm page can be increased, and the hard disk read / write operations for the warm page can be reduced.

본 발명의 일실시예에 따르면 웜 페이지는 한번의 SSD 확장 버퍼(520)에 유지될 기회를 준 후 다음번에 오버라이트가 발생할 때에는 콜드 페이지와 동일하게 하드 디스크로 밀려 내려가 기록될 수 있지만, 경우에 따라 SSD 확장 버퍼(520)에 유지될 수 있는 기회의 횟수를 달리하여 1회 이상의 기회를 줄 수 있다.According to an embodiment of the present invention, the warm page may be pushed down to the hard disk in the same manner as the cold page and recorded when the next overwrite occurs after giving a chance to be maintained in one SSD expansion buffer 520. Accordingly, one or more opportunities may be provided by varying the number of opportunities that may be maintained in the SSD expansion buffer 520.

하드 디스크(530)는 SSD 확장 버퍼(520)에서 밀려난 페이지를 기록할 수 있고 주 메모리 장치(510)에서 필요한 참조 페이지가 있는 경우 해당 페이지를 주 메모리 장치(510)로 바로 제공할 수 있다.
The hard disk 530 may record a page pushed out of the SSD expansion buffer 520, and if a reference page is required in the main memory device 510, the hard disk 530 may provide the page directly to the main memory device 510.

도 6은 본 발명의 일실시예에 따른 SSD 확장 버퍼를 사용한 페이지 교체 방법을 나타낸 순서도이다. 도면 도 수정(~ 음, ~넣음), 613 문구 수정. 621단계 2문장임. 830 오타 수정. 6 is a flowchart illustrating a page replacement method using an SSD expansion buffer according to an embodiment of the present invention. Correct drawing (~ um, ~), edit 613 text. 621 Two sentences. 830 Correct typos.

도 6을 참조하면, CPU에서 필요한 페이지를 요청받는다(단계 601). Referring to FIG. 6, a required page is requested from a CPU (step 601).

특정 프로그램에서 참조할 페이지가 있는 경우, CPU에서는 프로그램을 실행 도중 필요한 페이지를 요청하는 명령을 내릴 수 있다.If there are pages to be referenced in a particular program, the CPU can issue commands to request the necessary pages during program execution.

CPU로부터 페이지를 요청받은 후 우선적으로 요청된 페이지가 LRU-K 리스트(LRU 리스트도 동일한 의미임)에 포함되어 있는지에 대해 판단한다(단계 603).After receiving the page request from the CPU, it is first determined whether the requested page is included in the LRU-K list (the LRU list has the same meaning) (step 603).

가장 먼저 주 메모리 장치에 존재하는 LRU-K 리스트를 확인하여 해당 페이지가 존재하는지 여부를 검색할 수 있다.First of all, the LRU-K list existing in the main memory device may be checked to determine whether the corresponding page exists.

LRU-K 리스트에 해당 페이지가 존재하는 경우, 해당 페이지를 참조한 후, LRU-K 리스트를 조정한다(단계 605).If the page exists in the LRU-K list, the page is referenced, and then the LRU-K list is adjusted (step 605).

해당 페이지가 참조된 경우 LRU-K 리스트 내의 해당 참조 페이지의 마지막 참조 시간 정보(제1 참조 시간 정보) 및 마지막 이전 참조 시간 정보(제2 참조 시간 정보)가 달라지기 때문에 해당 페이지를 참조한 후 변경된 시간 정보에 따라 LRU-K 리스트를 재정렬 할 수 있다.The time that has changed since the page was referenced because the last reference time information (first reference time information) and the last previous reference time information (second reference time information) of that reference page in the LRU-K list are different. You can reorder the LRU-K lists according to the information.

LRU-K 리스트에 해당 페이지가 존재하지 않는 경우, LRU-K의 제1 우선 순위 큐(Priority queue)에 해당 페이지가 존재하는지 여부를 판단한다(단계 607).If the page does not exist in the LRU-K list, it is determined whether the page exists in the first priority queue of the LRU-K (step 607).

LRU-K 알고리즘을 사용하는 경우 제1 우선 순위 큐를 사용하여 LRU-K 리스트를 스캔하는 과정에서 마지막 이전 참조 시간 정보(제2 참조 시간 정보)가 존재하는 페이지를 LRU-K 리스트에서 제1 우선 순위 큐로 밀어내어 기록할 수 있다. When the LRU-K algorithm is used, a page in which the last previous reference time information (second reference time information) is present in the LRU-K list is scanned first using the first priority queue. You can record it by pushing it to the ranking queue.

LRU-K 리스트에는 마지막 이전 참조시간 정보가 없는 페이지인 핫 페이지 및 보조 메모리 장치로부터 바로 참조되어 올라온 페이지가 저장될 수 있어 가장 최근에 참조된 페이지가 존재하는 곳이 될 수 있다. The LRU-K list may store hot pages, which are pages without last reference time information, and pages directly referenced from the auxiliary memory device, where the most recently referenced page exists.

다음으로 LRU-K에서 밀려나 기록된 웜페이지들이 존재하는 제1 우선 순위 큐를 검색하여 해당 페이지가 존재하는지 여부에 대해 검색한다(단계 607). Next, the first priority queue in which the recorded warm pages are pushed out of the LRU-K is searched for whether the corresponding page exists (step 607).

제1 우선 순위 큐(Priority queue)에 참조하고자 하는 페이지가 존재하는 경우 해당 페이지를 참조한 후, 제1 우선 순위 큐에서 해당 노드를 삭제하고 해당 페이지를 LRU-K 리스트에 반환한다(단계 609).If there is a page to be referred to in the first priority queue, the page is referred to, and then the node is deleted from the first priority queue and the page is returned to the LRU-K list (step 609).

제1 우선 순위 큐에 해당 페이지가 존재하지 않는 경우, SSD 확장 버퍼에 해당 페이지가 존재하는지 여부를 판단한다(단계 611). If the page does not exist in the first priority queue, it is determined whether the page exists in the SSD expansion buffer (step 611).

메인 메모리의 LRU-K 리스트나 제1 우선 순위 큐에서 밀려난 페이지들은 순차적으로 SSD 확장 버퍼에 기록될 수 있고 해당 페이지가 SSD 확장 버퍼에 존재하는지 여부를 판단할 수 있다. Pages pushed out of the LRU-K list or the first priority queue of the main memory may be sequentially written to the SSD expansion buffer, and it may be determined whether the page exists in the SSD expansion buffer.

SSD 확장 버퍼에 해당 페이지가 존재하지 않는 경우 하드디스크와 같은 보조메모리 장치에서 해당 페이지를 읽고 해당 페이지를 참조하기 위해 LRU-K에 해당 페이지를 저장할 빈 버퍼 공간이 있는지 여부를 판단한다(단계 613).If the page does not exist in the SSD expansion buffer, it is determined whether the LRU-K has an empty buffer space to store the page in order to read the page from the auxiliary memory device such as a hard disk and refer to the page (step 613). .

LRU-K 리스트에 해당 페이지를 저장할 버퍼 공간이 존재하는 경우, 해당 페이지를 LRU-K 리스트에 삽입한다(단계 615).If there is buffer space to store the page in the LRU-K list, the page is inserted into the LRU-K list (step 615).

LRU-K에 해당 페이지를 저장할 빈 버퍼 공간이 없는 경우, LRU-K 리스트에 마지막 이전 참조 시간 정보(제2 참조 시간 정보)가 없는 페이지가 존재하는지 여부를 판단한다(단계 617).If there is no empty buffer space to store the page in the LRU-K, it is determined whether a page without the last previous reference time information (second reference time information) exists in the LRU-K list (step 617).

LRU-K 페이지 교체 알고리즘에서 LRU-K 리스트에서 가장 우선적으로 Victim이 되어 밀려나는 페이지는 LRU-K 리스트에 존재하는 마지막 이전 참조 시간 정보(제 2 참조 시간 정보)가 없는 페이지이고, 다음으로 Victim이 되어 밀려나는 페이지는 제1 우선 순위 큐에 존재하는 마지막 이전 참조 시간 정보(제2 참조 시간 정보)가 가장 오래된 페이지이므로 첫 번째 Victim을 선정하기 위해 우선적으로 마지막 이전 참조 시간 정보(제2 참조 시간 정보)가 없는 페이지가 LRU-K 리스트 내에 존재하는지 여부를 판단할 수 있다. In the LRU-K page replacement algorithm, the page that is first pushed out of the LRU-K list is the page without the last previous reference time information (second reference time information) that exists in the LRU-K list, and then Victim The pushed back page is the oldest last reference time information (second reference time information) existing in the first priority queue, so that the last previous reference time information (second reference time information) is first selected to select the first Victim. It may be determined whether a page without) is present in the LRU-K list.

LRU-K 리스트 내에 마지막 이전 참조 시간 정보가 없는 페이지가 존재하는 경우, LRU-K 리스트의 마지막 이전 참조 시간 정보가 없는 페이지를 밀어내어 SSD 확장 버퍼에 기록하고 마지막 이전 참조 시간 정보가 없는 페이지가 밀려난 버퍼 공간에 해당 참조 페이지를 쓴다(단계 619).If a page without last previous reference time information exists in the LRU-K list, the page without the last previous reference time information is pushed out of the LRU-K list, written to the SSD expansion buffer, and the page without the last previous reference time information is pushed. I write that reference page to the buffer space (step 619).

이전 참조 시간 정보가 없는 페이지가 존재하지 않는 경우, 스캔하는 도중 LRU-K 리스트에서 제1 우선 순위 큐로 밀려난 페이지 중 마지막 이전 시간 정보가 가장 오래된 페이지가 Victim이 되어 SSD 확장 버퍼로 밀려나 기록될 수 있다. 제1 우선 순위 큐에서 밀려난 페이지는 마지막 이전 시간 정보가 있는 페이지인 웜 페이지로서 본 발명의 일실시예에 따르면 웜페이지는 SSD 확장 버퍼에서 순차 쓰기가 발생하여 오버라이트 될 때 하드디스크로 밀려나지 않을 수 있는 기회를 추가적으로 줄 수 있다. 웜페이지가 제1 우선 순위 큐에서 SSD 확장 버퍼로 밀려난 공간에 참조될 페이지를 기록한다(단계 621). If a page without previous reference time information does not exist, the oldest page of the last previous time information in the LRU-K list that was pushed to the first priority queue during scanning could be pushed into the SSD expansion buffer and written to the Victim. have. The page pushed out of the first priority queue is a warm page which is a page having last previous time information. According to an embodiment of the present invention, a warm page is pushed to the hard disk when overwriting occurs due to a sequential write in the SSD expansion buffer. It may give you an opportunity not to. The page to be referred to in the space pushed from the first priority queue to the SSD expansion buffer is written (step 621).

SSD 확장 버퍼에 해당 페이지가 존재하는 여부를 판단하는 단계(단계 611)의 판단 결과 해당 페이지가 존재하는 경우, LRU-K 리스트에 빈 버퍼 공간이 존재하는지 여부를 판단한다(단계 623).As a result of the determination of whether the page exists in the SSD expansion buffer (step 611), if the page exists, it is determined whether an empty buffer space exists in the LRU-K list (step 623).

단계 623의 판단 결과 LRU-K 리스트에 빈공간이 존재하지 않는 경우, 단계 617에서 다시 전술한 절차를 진행할 수 있다.If there is no empty space in the LRU-K list as a result of the determination of step 623, the above-described procedure may be performed again in step 617.

단계 623의 판단 결과 LRU-K 리스트에 빈 버퍼 공간이 존재하는 경우, 해당 페이지를 SSD 확장 버퍼로부터 읽어 LRU 리스트의 빈 버퍼 공간에 삽입한다(단계 625).
If an empty buffer space exists in the LRU-K list as a result of the determination of step 623, the corresponding page is read from the SSD expansion buffer and inserted into the empty buffer space of the LRU list (step 625).

도 7은 본 발명의 일실시예에 따른 SSD를 확장버퍼로 LRU-K 페이지 교체 알고리즘을 사용하였을 때 수행 성능을 나타낸 그래프이다. FIG. 7 is a graph illustrating performance when an LRU-K page replacement algorithm is used as an extension buffer of an SSD according to an embodiment of the present invention. FIG.

도 7의 그래프는 TPC-C(The Transaction Processing Performance Council (TPC) benchmarks C) 테스트를 통해 나온 결과값을 그래프로 비교한 것이다. TPC-C는 OLTP(Online Transaction Processing)의 워크로드, 즉 온라인에서 이루어지는 전자상거래시에 발생하는 워크로드 값을 사용하여 데이터 처리 성능을 측정한 것이다. TPC-C의 결과값은 전자상거래에 발생하는 비즈니스 모델을 기준으로 만들어진 것으로 5가지 종류의 비즈니스 트랜잭션(Transaction)인 (New-Order, Payment, Order-Status, Delivery, Stock-Level)을 일정한 비율로 발생시킨 후 정상 상태(Steady State)에서 분당 처리되는 거래의 처리 건수를 계산하여 나타낸 값이다. 7 is a graph comparing the results obtained through the TPC-C (T Transaction Processing Performance Council (TPC) benchmarks C) test. TPC-C measures data processing performance using the workload of online transaction processing (OLTP), that is, the workload value generated during online e-commerce transactions. The result of TPC-C is based on the business model that occurs in e-commerce, and the five kinds of business transactions (New-Order, Payment, Order-Status, Delivery, and Stock-Level) are in proportion. This is the value calculated by counting the number of transactions processed per minute in Steady State after generating.

도 7의 그래프는 워크로드(Workload)로 1기가바이트(Gigabyte)를 사용하여 테스트한 그래프이다. 각 그래프들은 기존의 HDD만 사용하여 페이지 교체 알고리즘을 LRU(710), LRU-K(720), 2Q(730)로 사용하였을 때 그래프와 LRU에서 SSD 확장버퍼의 용량의 가격만큼 RAM의 용량를 늘려 처리 시간을 측정한 그래프(740), LRU 알고리즘을 사용하고 확장 버퍼로 SSD를 사용한 경우의 그래프(750), 2Q 알고리즘을 사용하고 확장 버퍼로 SSD를 사용한 경우의 그래프(760), LRU-K 알고리즘을 사용하고 확장 버퍼로 SSD를 사용한 경우의 그래프(770)가 각각 개시되어 있다. The graph of FIG. 7 is a graph tested using 1 gigabyte as a workload. Each graph is processed by increasing the capacity of RAM by the price of the capacity of SSD expansion buffer in the graph and LRU when the page replacement algorithm is used as LRU (710), LRU-K (720), and 2Q (730) using only the existing HDD. Time-measuring graph (740), LRU algorithm with SSD as expansion buffer (750), 2Q algorithm with SSD as expansion buffer (760), LRU-K algorithm The graphs 770 of using and using an SSD as an expansion buffer are disclosed, respectively.

그래프의 가로축은 데이터 베이스의 크기 대비 SSD 확장 버퍼의 크기를 나타낸 것이고 그래프의 세로축은 전체 워크로드를 수행하는 데 걸리는 시간으로 단위는 초이다. The horizontal axis of the graph represents the size of the SSD expansion buffer compared to the size of the database. The vertical axis of the graph is the time taken to perform the entire workload. The unit is seconds.

도 7을 참조하면 하드디스크만을 사용하여 페이지 교체를 실시한 경우(710, 720, 730)는 RAM 또는 SSD 확장 버퍼를 사용한 경우 보다 현저히 처리 속도가 떨어지는 것을 확인할 수 있다. SSD 확장 버퍼를 사용한 경우는 SSD 확장 버퍼의 크기가 커질수록 페이지의 입출력이 줄어들어 테스트 시간이 점점 줄어드는 것을 확인 할 수 있다. Referring to FIG. 7, when page replacement using only a hard disk is performed (710, 720, and 730), the processing speed is significantly lower than that of using a RAM or an SSD expansion buffer. In the case of using the SSD expansion buffer, as the size of the SSD expansion buffer grows, the input / output of the page decreases and the test time decreases gradually.

본 발명의 일실시예에 따른 그래프인 LRU-K 페이지 교체 알고리즘을 SSD 확장 버퍼와 함께 사용한 그래프(770)은 기존의 2Q 페이지 교체 알고리즘 및 LRU 페이지 교체 알고리즘을 SSD 확장 버퍼와 함께 사용한 경우의 처리속도를 나타내는 그래프(750, 760)과 비교하여 상대적으로 우위에 있는 처리속도를 가지는 것을 확인할 수 있다. 즉, 본 발명에 기초한 SSD를 확장 버퍼로 사용한 LRU-K 알고리즘은 기존의 페이지 교체 정책들보다 데이터의 처리 속도에 있어 향상된 효과를 보인다.
The graph 770 using the LRU-K page replacement algorithm, which is a graph according to an embodiment of the present invention, with the SSD expansion buffer, shows a processing speed when the existing 2Q page replacement algorithm and the LRU page replacement algorithm are used with the SSD expansion buffer. Compared with the graphs 750 and 760, it can be seen that the processing speed is relatively superior. That is, the LRU-K algorithm using the SSD based on the present invention as an expansion buffer shows an improved effect on the data processing speed than the existing page replacement policies.

도 8은 본 발명의 일실시예에 따른 SSD 확장버퍼를 사용한 LRU-K 페이지 교체 알고리즘을 구현하는 방법을 간략화한 순서도이다.8 is a simplified flowchart illustrating a method of implementing an LRU-K page replacement algorithm using an SSD expansion buffer according to an embodiment of the present invention.

도 8을 참조하면, 주 메모리 장치에 참조 페이지를 삽입할 버퍼 공간이 있는지 여부를 판단할 수 있다(단계 810). Referring to FIG. 8, it may be determined whether there is a buffer space in the main memory device to insert a reference page (step 810).

주 메모리 장치에 포함된 LRU-K 리스트 또는 제1 우선 순위 큐에 해당 참조 페이지가 있는 경우 바로 참조할 수 있다(단계 850).If there is a corresponding reference page in the LRU-K list or the first priority queue included in the main memory device, the reference page may be directly referred to (step 850).

주 메모리 장치에 포함된 LRU-K 리스트 또는 제1 우선 순위 큐에 해당 참조 페이지가 없는 경우, LRU-K 리스트에 포함된 마지막 이전 참조 시간 정보(제2 참조 시간 정보)가 없는 페이지가 있는 여부를 판단하고, LRU-K 리스트에 마지막 이전 참조 시간 정보(제2 참조 시간 정보)가 없는 페이지가 있는 경우 해당 페이지를 SSD 확장버퍼로 내려보내 기록하고 LRU-K 리스트에 마지막 이전 참조 시간 정보(제2 참조 시간 정보)가 없는 페이지가 없는 경우, 제1 우선 순위 큐에 제2 참조 시간 정보가 존재하는 페이지 중 가장 제2 참조 시간이 오래된 페이지를 SSD 확장 버퍼에 내려보내 기록한 후 빈 버퍼 공간에 참조 페이지를 삽입할 수 있다(단계 820).  If there is no corresponding reference page in the LRU-K list or first priority queue included in the main memory device, whether there is a page without the last previous reference time information (second reference time information) included in the LRU-K list. If there is a page that does not have the last previous reference time information (second reference time information) in the LRU-K list, the page is sent down to the SSD expansion buffer for writing, and the last previous reference time information (second second) in the LRU-K list is recorded. If there are no pages without reference time information), the page with the oldest second reference time among the pages for which the second reference time information exists in the first priority queue is written down to the SSD expansion buffer and then written to the empty buffer space. Can be inserted (step 820).

즉, 주 메모리 장치의 버퍼에 참조 페이지를 삽입할 버퍼 공간이 없는 경우, LRU-K 리스트에 포함된 제2 참조 시간 정보가 없는 페이지 및 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지 중 적어도 하나를 SSD 확장 버퍼로 보내 기록하고 SSD 확장 버퍼로 밀려난 공간에 참조 페이지를 기록하여 참조할 수 있다(단계 840 및 단계 850). That is, when there is no buffer space for inserting a reference page in the buffer of the main memory device, pages without second reference time information included in the LRU-K list and second reference time information included in the first priority queue exist. At least one of the pages having the oldest second reference time among the pages may be sent to the SSD expansion buffer for writing, and the reference page may be recorded and referred to in the space pushed by the SSD expansion buffer (steps 840 and 850).

SSD 확장 버퍼에 밀려난 페이지들로 인해 주 메모리 장치에서 밀려난 페이지들을 기록할 빈 버퍼 공간이 없는 경우, 제2 참조 시간 정보가 없는 콜드 페이지를 우선적으로 보조 메모리 장치에 내려보내고 제2 참조 시간 정보가 있는 페이지는 적어도 한번의 기회를 더 부여하여 SSD 확장 버퍼에 유지할 수 있다(단계 830).If there is no free buffer space to write the pages pushed from the main memory device due to the pages pushed into the SSD expansion buffer, the cold page without the second reference time information is first sent down to the secondary memory device and the second reference time information Page with at least one more chance to maintain in the SSD expansion buffer (step 830).

단계 830, 840 및 850은 설명의 편의상 순차적으로 이루어지는 것으로 설명했지만, 단계 830, 840 및 850은 순차적으로 이루어질 수도 있고, 경우에 따라서 840 및 850 단계가 우선적으로 이루어지고 830단계가 추후에 이루어지는 것도 가능하다. 즉, 상기 단계들은 본 발명의 본질에서 벋어나지 않는 한 순차적으로 이루어지지 않을 수 있다. Although steps 830, 840, and 850 are described as being sequentially performed for convenience of description, steps 830, 840, and 850 may be sequentially performed, and in some cases, steps 840 and 850 may be prioritized, and step 830 may be performed later. Do. In other words, the steps may not be performed sequentially unless it departs from the essence of the present invention.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described with reference to the embodiments above, those skilled in the art will understand that the present invention can be variously modified and changed without departing from the spirit and scope of the invention as set forth in the claims below. Could be.

Claims (13)

SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 방법에 있어서,
주 메모리 장치에 소정의 프로그램에서 요청한 참조 페이지를 삽입할 버퍼 공간이 없는 경우, LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지 및 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지 중에서 적어도 하나를 SSD 확장 버퍼에 기록하는 단계;
상기 SSD 확장 버퍼에 포함된 상기 제2 참조 시간 정보가 없는 페이지 및 상기 제2 참조 시간 정보가 있는 페이지 중 적어도 하나를 기록할 버퍼 공간이 상기 SSD 확장 버퍼에 없는 경우, 상기 제2 참조 시간 정보가 없는 페이지를 우선적으로 보조 메모리 장치에 기록하고, 상기 제2 참조 시간 정보가 있는 페이지는 상기 보조 메모리 장치에 기록하지 않고 상기 SSD 확장 버퍼에 유지하는 단계를 포함하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 방법.
In the buffer cache management method implementing the LRU-K algorithm using a solid state disk (SSD) as an expansion buffer,
If there is no buffer space in the main memory device to insert the reference page requested by the predetermined program, the page without the second reference time information included in the LRU-K list and the second reference time information included in the first priority queue Writing at least one of the pages of which the oldest second reference time is among the pages in which the data exists in an SSD expansion buffer;
When there is no buffer space in the SSD expansion buffer to record at least one of the page without the second reference time information and the page with the second reference time information included in the SSD expansion buffer, the second reference time information is Writing the missing page to the auxiliary memory device preferentially, and maintaining the page with the second reference time information in the SSD expansion buffer without writing to the auxiliary memory device using the SSD as an expansion buffer. Buffer cache management method using the K algorithm.
제1항에 있어서, SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 방법은,
상기 주 메모리 장치에 상기 참조 페이지를 삽입할 버퍼 공간이 있는 경우, 해당 페이지를 상기 주 메모리 장치의 상기 버퍼 공간에 삽입하고 참조하는 단계를 더 포함하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 적용한 버퍼 캐쉬 관리 방법.
The buffer cache management method of claim 1, wherein the LRU-K algorithm is implemented using a solid state disk (SSD) as an expansion buffer.
If the main memory device has a buffer space for inserting the reference page, inserting the page into the buffer space of the main memory device and referencing the LRU-K algorithm using an SSD as an expansion buffer Buffer cache management applied.
제1항에 있어서, SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 방법은,
상기 주 메모리 장치에 존재하던 페이지가 상기 SSD 확장 버퍼에 기록되어 상기 주 메모리 장치에 버퍼 공간이 생긴 경우 상기 버퍼 공간에 상기 참조 페이지를 기록하는 단계를 더 포함하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 적용한 버퍼 캐쉬 관리 방법.
The buffer cache management method of claim 1, wherein the LRU-K algorithm is implemented using a solid state disk (SSD) as an expansion buffer.
And writing the reference page to the buffer space when the page existing in the main memory device is written to the SSD expansion buffer to create a buffer space in the main memory device. Buffer cache management with K algorithm.
제1항에 있어서, 상기 주 메모리 장치에 참조 페이지를 삽입할 버퍼 공간이 없는 경우, LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지 및 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지 중에서 적어도 하나를 SSD 확장 버퍼에 기록하는 단계는,
상기 LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지가 있는 경우, 상기 페이지를 상기 SSD 확장 버퍼에 기록하고 상기 참조 페이지를 상기 LRU-K 리스트에 기록하는 단계; 및
상기 LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지가 없는 경우, 상기 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지를 상기 SSD 확장 버퍼에 기록하고 상기 참조 페이지를 상기 제1 우선 순위 큐에 기록하는 단계를 포함하는 것을 특징으로 하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 적용한 버퍼 캐쉬 관리 방법.
The second reference included in the first priority queue and the page without the second reference time information included in the LRU-K list when the main memory device has no buffer space for inserting a reference page. The writing of at least one of the pages having the second reference time with the oldest time among the pages in which the time information exists in the SSD expansion buffer may include:
If there is a page without the second reference time information included in the LRU-K list, writing the page to the SSD expansion buffer and writing the reference page to the LRU-K list; And
If there is no page without the second reference time information included in the LRU-K list, the page with the oldest second reference time among the pages in which the second reference time information included in the first priority queue exists is present. And writing the reference page to the first priority queue, using the SSD as an extension buffer, and applying the LRU-K algorithm to the buffer cache management method.
제1항에 있어서, SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 방법은,
상기 참조 페이지가 상기 LRU-K 리스트에 없는 경우, 상기 제1 우선 순위 큐에 상기 참조 페이지가 있는지 여부를 판단하고 상기 제1 우선 순위 큐에 상기 참조 페이지가 없는 경우, 상기 SSD 확장 버퍼에 상기 참조 페이지가 있는지 여부를 판단하는 것을 특징으로 하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 적용한 버퍼 캐쉬 관리 방법.
The buffer cache management method of claim 1, wherein the LRU-K algorithm is implemented using a solid state disk (SSD) as an expansion buffer.
If the reference page is not in the LRU-K list, it is determined whether the reference page is in the first priority queue, and if the reference page is not in the first priority queue, the reference is added to the SSD expansion buffer. A buffer cache management method using the LRU-K algorithm by using an SSD as an extension buffer, which determines whether a page exists.
제1항에 있어서, 상기 제2 참조 시간 정보는,
소정의 페이지가 마지막으로 참조된 시간 정보인 마지막 참조 시간 정보를 제1 참조 시간 정보라고 할 때, 상기 페이지의 마지막 참조 시간 이전에 참조된 시간에 대한 정보인 마지막 이전 참조 시간 정보인 것을 특징으로 하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 적용한 버퍼 캐쉬 관리 방법.
The method of claim 1, wherein the second reference time information is
When the last reference time information, which is the time information referred to last by a predetermined page, is referred to as the first reference time information, the last reference time information, which is information about a time referenced before the last reference time of the page, may be used. Buffer cache management method using LRU-K algorithm using SSD as expansion buffer.
제1항에 있어서, 상기 LRU-K 알고리즘은,
K의 값은 2인 것을 특징으로 하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 적용한 버퍼 캐쉬 관리 방법.
The method of claim 1, wherein the LRU-K algorithm,
K is a buffer cache management method using the LRU-K algorithm using an SSD as an extension buffer, characterized in that 2.
SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치에 있어서,
페이지 교체 정책으로 LRU-K 알고리즘을 사용하여 LRU-K 리스트, 제1 우선 순위 큐 및 제2 우선 순위 큐를 포함하는 주 메모리 장치; 및
상기 주 메모리 장치에 소정의 프로그램에서 요청한 참조 페이지를 삽입할 버퍼 공간이 없는 경우, 상기 LRU-K 리스트에 포함된 제2 참조 시간 정보가 없는 페이지 및 상기 제1 우선 순위 큐에 포함된 상기 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지 중 적어도 하나를 기록하는 SSD 확장 버퍼를 포함하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치.
In the buffer cache management device implementing the LRU-K algorithm using a solid state disk (SSD) as an expansion buffer,
A main memory device including an LRU-K list, a first priority queue, and a second priority queue using an LRU-K algorithm as a page replacement policy; And
If there is no buffer space in the main memory device to insert a reference page requested by a predetermined program, a page without second reference time information included in the LRU-K list and the second included in the first priority queue And a buffer cache management apparatus implementing an LRU-K algorithm using an SSD including an SSD expansion buffer for recording at least one of the pages having the oldest second reference time among pages in which reference time information exists.
제8항에 있어서, SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치는,
상기 주 메모리 장치에 상기 참조 페이지를 삽입할 버퍼 공간이 없는 경우, 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지와 LRU-K 리스트에 포함된 제2 참조 시간 정보가 없는 페이지 중에서 적어도 하나를 SSD 확장 버퍼에 기록하고 상기 SSD 확장 버퍼에 포함된 상기 제2 참조 시간 정보가 없는 페이지 및 상기 제2 참조 시간 정보가 있는 페이지 중 적어도 하나를 기록할 버퍼 공간이 상기 SSD 확장 버퍼에 없는 경우, 상기 제2 참조 시간 정보가 없는 페이지를 우선적으로 보조 메모리 장치에 기록하고, 상기 제2 참조 시간 정보가 있는 페이지는 상기 보조 메모리 장치에 기록하지 않고 상기 SSD 확장 버퍼에 유지하는 것을 특징으로 하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치.
The buffer cache management apparatus of claim 8, wherein the buffer cache management apparatus implements the LRU-K algorithm by using a solid state disk (SSD) as an expansion buffer.
If there is no buffer space for inserting the reference page in the main memory device, the second reference time is the oldest page and the LRU-K list among the pages of the second reference time information included in the first priority queue. Write at least one of the pages without the second reference time information included in the SSD expansion buffer and at least one of the page without the second reference time information included in the SSD expansion buffer and the page with the second reference time information. If the buffer space to be written is not in the SSD expansion buffer, a page without the second reference time information is preferentially written to the auxiliary memory device, and the page with the second reference time information is not written to the auxiliary memory device. A buffer implementing the LRU-K algorithm by using the SSD as an expansion buffer, which is maintained in the SSD expansion buffer. Shh management apparatus.
제9항에 있어서, 주 메모리 장치에 참조 페이지를 삽입할 버퍼 공간이 없는 경우, LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지 및 제1 우선 순위 큐에 포함된 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지 중에서 적어도 하나를 SSD 확장 버퍼에 기록하는 것은,
상기 LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지가 있는 경우, 상기 페이지를 상기 SSD 확장 버퍼에 기록하고 상기 참조 페이지를 상기 LRU-K 리스트에 기록하고, 상기 LRU-K 리스트에 포함된 상기 제2 참조 시간 정보가 없는 페이지가 없는 경우 제1 우선 순위 큐에 포함된 상기 제2 참조 시간 정보가 존재하는 페이지 중 상기 제2 참조 시간이 가장 오래된 페이지를 상기 SSD 확장 버퍼에 기록하고 상기 참조 페이지를 상기 제1 우선 순위 큐에 기록하는 것을 특징으로 하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치.
10. The second reference time of claim 9, wherein the page having no second reference time information included in the LRU-K list and the second reference time included in the first priority queue when there is no buffer space in the main memory device to insert the reference page. Writing at least one of the pages having the oldest second reference time among the pages where the information exists in the SSD expansion buffer,
If there is a page without the second reference time information included in the LRU-K list, the page is written in the SSD expansion buffer and the reference page is written in the LRU-K list, and in the LRU-K list. If there is no page without the second reference time information included, the page having the oldest second reference time among the pages in which the second reference time information included in the first priority queue exists is written to the SSD expansion buffer. And an LRU-K algorithm using the SSD as an expansion buffer, wherein the reference page is written in the first priority queue.
제8항에 있어서, SSD(Solid State Disk)를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치는,
상기 참조 페이지가 상기 LRU-K 리스트에 없는 경우, 상기 제1 우선 순위 큐에 상기 참조 페이지가 있는지 여부를 판단하고 상기 제1 우선 순위 큐에 상기 참조 페이지가 없는 경우, 상기 SSD 확장 버퍼에 상기 참조 페이지가 있는지 여부를 판단하는 것을 특징으로 하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치.
The buffer cache management apparatus of claim 8, wherein the buffer cache management apparatus implements the LRU-K algorithm by using a solid state disk (SSD) as an expansion buffer.
If the reference page is not in the LRU-K list, it is determined whether the reference page is in the first priority queue, and if the reference page is not in the first priority queue, the reference is added to the SSD expansion buffer. A buffer cache management apparatus implementing the LRU-K algorithm using an SSD as an extension buffer, which determines whether a page exists.
제8항에 있어서, 상기 제2 참조 시간 정보는,
소정의 페이지가 마지막으로 참조된 시간 정보인 마지막 참조 시간 정보를 제1 참조 시간 정보라고 할 때, 상기 페이지의 마지막 참조 시간 이전에 참조된 시간에 대한 정보인 마지막 이전 참조 시간 정보인 것을 특징으로 하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치.
The method of claim 8, wherein the second reference time information is,
When the last reference time information, which is the time information referred to last by a predetermined page, is referred to as the first reference time information, the last reference time information, which is information about a time referenced before the last reference time of the page, may be used. Buffer cache management unit that implements the LRU-K algorithm using SSD as an expansion buffer.
제8항에 있어서, 상기 LRU-K 알고리즘은,
K의 값은 2인 것을 특징으로 하는 SSD를 확장 버퍼로 사용하여 LRU-K 알고리즘을 구현한 버퍼 캐쉬 관리 장치.
The method of claim 8, wherein the LRU-K algorithm,
A buffer cache management device implementing the LRU-K algorithm using an SSD as an extension buffer, wherein a value of K is 2.
KR1020100096562A 2010-10-04 2010-10-04 Methods of managing buffer cache using solid state disk as an extended buffer and apparatuses for using solid state disk as an extended buffer KR101144321B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100096562A KR101144321B1 (en) 2010-10-04 2010-10-04 Methods of managing buffer cache using solid state disk as an extended buffer and apparatuses for using solid state disk as an extended buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100096562A KR101144321B1 (en) 2010-10-04 2010-10-04 Methods of managing buffer cache using solid state disk as an extended buffer and apparatuses for using solid state disk as an extended buffer

Publications (2)

Publication Number Publication Date
KR20120035070A true KR20120035070A (en) 2012-04-13
KR101144321B1 KR101144321B1 (en) 2012-05-11

Family

ID=46137121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100096562A KR101144321B1 (en) 2010-10-04 2010-10-04 Methods of managing buffer cache using solid state disk as an extended buffer and apparatuses for using solid state disk as an extended buffer

Country Status (1)

Country Link
KR (1) KR101144321B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101295210B1 (en) * 2012-04-27 2013-08-12 엔에이치엔비즈니스플랫폼 주식회사 Method and device for managing database
US10891073B2 (en) 2018-04-05 2021-01-12 Research & Business Foundation Sungkyunkwan University Storage apparatuses for virtualized system and methods for operating the same
WO2022191622A1 (en) * 2021-03-10 2022-09-15 성균관대학교산학협력단 Cache management apparatus and method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100908637B1 (en) * 2007-10-10 2009-07-21 한양대학교 산학협력단 How to manage data in flash memory
KR100941382B1 (en) * 2008-07-10 2010-02-10 한양대학교 산학협력단 Apparatus and method for managing page buffer linked with flash memory and apparatus and method for changing page of flash memory
KR100951099B1 (en) * 2008-07-24 2010-04-07 인하대학교 산학협력단 Method for storing and managing of data, and record media recoded program for implement thereof
KR101505005B1 (en) * 2008-12-05 2015-03-24 삼성전자주식회사 Memory device and management method of memory device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101295210B1 (en) * 2012-04-27 2013-08-12 엔에이치엔비즈니스플랫폼 주식회사 Method and device for managing database
US10891073B2 (en) 2018-04-05 2021-01-12 Research & Business Foundation Sungkyunkwan University Storage apparatuses for virtualized system and methods for operating the same
WO2022191622A1 (en) * 2021-03-10 2022-09-15 성균관대학교산학협력단 Cache management apparatus and method
KR20220127080A (en) * 2021-03-10 2022-09-19 성균관대학교산학협력단 Cache management apparatus and method

Also Published As

Publication number Publication date
KR101144321B1 (en) 2012-05-11

Similar Documents

Publication Publication Date Title
US10216638B2 (en) Methods and systems for reducing churn in a caching device
US8364918B1 (en) Sensed opportunistic garbage collection in memory components
US10296219B2 (en) Data deduplication in a block-based storage system
US20100088459A1 (en) Improved Hybrid Drive
US9760309B2 (en) Method and device for managing a memory
US8032724B1 (en) Demand-driven opportunistic garbage collection in memory components
US8209503B1 (en) Digital locked loop on channel tagged memory requests for memory optimization
JP5418719B2 (en) Storage device
Liu et al. Hybrid storage management for database systems
JP2021513176A (en) Cache for efficient record lookup in LSM data structures
US9804971B2 (en) Cache management of track removal in a cache for storage
WO2016095151A1 (en) Storing log records in a non-volatile memory
JP6711121B2 (en) Information processing apparatus, cache memory control method, and cache memory control program
US10503608B2 (en) Efficient management of reference blocks used in data deduplication
CN111033478A (en) Dynamic TRIM processing using disk cache
US8732404B2 (en) Method and apparatus for managing buffer cache to perform page replacement by using reference time information regarding time at which page is referred to
KR101144321B1 (en) Methods of managing buffer cache using solid state disk as an extended buffer and apparatuses for using solid state disk as an extended buffer
CN106897311B (en) Database batch updating method, data reduction log generating method and storage device
US10430287B2 (en) Computer
CN111240591A (en) Operation request processing method of storage equipment and related device
US7979638B2 (en) Method and system for accessing data using an asymmetric cache device
US11853577B2 (en) Tree structure node compaction prioritization
US20210263648A1 (en) Method for managing performance of logical disk and storage array
JPH08272654A (en) File management device
Rohner State-of-the-art Garbage Collection Policies for NILFS2

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180502

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190430

Year of fee payment: 8