KR101105127B1 - 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치 - Google Patents

에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치 Download PDF

Info

Publication number
KR101105127B1
KR101105127B1 KR1020100035264A KR20100035264A KR101105127B1 KR 101105127 B1 KR101105127 B1 KR 101105127B1 KR 1020100035264 A KR1020100035264 A KR 1020100035264A KR 20100035264 A KR20100035264 A KR 20100035264A KR 101105127 B1 KR101105127 B1 KR 101105127B1
Authority
KR
South Korea
Prior art keywords
memory
data block
referred
data
ssd
Prior art date
Application number
KR1020100035264A
Other languages
English (en)
Other versions
KR20110115759A (ko
Inventor
이상원
김성탄
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020100035264A priority Critical patent/KR101105127B1/ko
Publication of KR20110115759A publication Critical patent/KR20110115759A/ko
Application granted granted Critical
Publication of KR101105127B1 publication Critical patent/KR101105127B1/ko

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

데이터 블록 전체를 저장할 수 있어 참조될 페이지가 있는 경우 빠른 시간에 참조할 수 있는 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치가 개시되어 있다. 중앙처리장치에서 참조되는 데이터 블록을 제공하는 제1 메모리, 상기 참조되는 데이터 블록을 하드디스크로부터 제공받는 제2 메모리, 상기 참조되는 데이터 블록을 상기 제2 메모리로부터 제공받는 제3 메모리를 사용하는 2Q 알고리즘에서 제3 메모리를 SSD 확장버퍼로 사용한 버퍼 캐쉬 관리 방법은 제1 메모리와 제2 메모리에 참조할 데이터 블록이 없는 경우, SSD(Solid State Disk)로 구성된 제3 메모리에 참조할 데이터 블록이 있는지를 판단하는 단계와 제3 메모리에 상기 참조할 데이터 블록이 없는 경우 하드디스크로부터 참조할 데이터 블록을 제2 메모리에 제공하는 단계를 포함할 수 있다. 따라서, 데이터 처리 속도를 증가시키고 버퍼캐쉬내의 데이터 블록을 관리함에 있어 복잡도를 줄일 수 있다.

Description

에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치{BUFFER CACHE MANAGING METHOD USING SSD(SOLID STATE DISK) EXTENSION BUFFER AND APPARATUS FOR USING SSD(SOLID STATE DISK) AS EXTENSION BUFFER}
본 발명은 버퍼 캐쉬 관리 방법 및 버퍼 캐쉬를 사용하는 연산장치에 관한 것으로 더욱 상세하게는 2Q 알고리즘을 사용한 버퍼 캐쉬 관리 방법 및 이를 이용한 버퍼 캐쉬를 사용하는 연산장치에 관한 것이다.
컴퓨터와 같은 디지털 단말기에 포함된 각 구성부들, 예를 들어, 중앙처리장치(CPU), 메모리, 하드디스크, CD-ROM 등은 각각 개별적으로 데이터를 처리하는 속도가 다르기 때문에 동일한 속도를 가지고 작동할 수 없다. 따라서, 단말기를 구성하는 각 구성부간의 안정적인 입출력 관리는 단말기의 성능에 큰 영향을 끼칠 수 있다.
이러한 문제점을 해결하기 위한 버퍼 캐시를 이용한 데이터 관리 기법은, 한번 사용했던 디스크 블록을 주기억장치에 저장시켜 다음 참조 때 디스크에 대한 접근을 줄여 시스템의 성능을 향상시키는 방법이다. 버퍼 캐시 기법은, 버퍼 캐시의 제한된 용량 때문에 가장 오랫동안 참조되지 않을 것으로 추측되는 캐시블록을 버퍼에서 제거하는 캐시블록 교체 기법에 의해 관리되며 효과적인 캐시블록 교체기법을 사용한다면 단말기내의 각 구성부간의 데이터의 입출력 속도를 조절하여 시스템 전체의 성능을 향상시킬 수 있다.
시스템의 성능을 향상시키기 위해서는 단말기의 각 구성부 사이에서 입출력 속도 차이를 커버해주는 버퍼(BUFFER) 또는 캐쉬(CACHE)를 사용해 각 구성부의 상호간 속도 차이로 인해 발생되는 병목현상 즉, 고속으로 데이터를 처리하는 구성부가 저속으로 데이터를 처리하는 장치의 작업수행을 기다려야 하는 현상을 줄여줄 수 있다.
이러한 버퍼 또는 캐쉬를 운영하는 방안에 있어 여러 가지 알고리즘을 사용하여 데이터를 버퍼 캐쉬에 둘 것인지 아니면 하드디스크로 내려보낼 것인지 결정하는 정책이 많이 연구되어 왔다. 지금도 여전히 이러한 알고리즘을 사용하여 버퍼 캐쉬를 활용하여 단말기의 각 구성부간의 속도 차이를 줄이는 기술에 대한 연구가 지속적으로 이루어지고 있다.
버퍼 캐쉬를 관리함에 있어 관리를 효율적이고 단순하게 하기 위한 많은 알고리즘들이 현재 연구되고 있다. 예를 들어, LRU(Least Recently Used), 2Q, EELRU(Early Eviction Least Recently Used). LRFU(Least Recently/Frequency Used), UBM(Unified Buffer Management)등 여러 가지 기법들이 버퍼 캐쉬를 관리하는 알고리즘으로서 사용되고 연구되고 있다.
이러한 관리기법은 사용자의 데이터 접근 패턴을 통해 사용될 확률이 높은 데이터 블록을 선정하는 방식, 데이터 블록들이 과거에 참조되었던 시간 정보나 참조 사이의 시간 간격 등의 정보를 저장하고 이를 활용하여 희생될 데이터 블록들을 선택하는 방식, 참조의 패턴을 검출하고 이에 따라 분류하여 각각의 분류된 참조들에 대해 다른 기법을 적용하여 관리하는 기법 등으로 그 알고리즘이 기초하는 아이디어에 따라 여러 가지로 분류될 수 있다.
이러한 여러 가지 방식의 효율적인 버퍼 캐시의 관리 방법은 버퍼 캐쉬 알고리즘을 단순하게 만들고 버퍼 캐쉬의 관리 효율성을 높이는 것이 중요하다.
대표적인 버퍼 캐시의 알고리즘을 살펴보면, LRU 교체 정책은 데이터의 최근성(Recency)를 근거로 사용하는 알고리즘으로서 버퍼 캐쉬 안의 블록들 중에서 가장 오래 전에 사용되었던 블록을 교체하는 알고리즘이다. 이는 파일 참조의 시간적 지역성으로 인해 가장 오래 전에 사용되었던 블록이 재 참조될 확률이 가장 적다는 것을 전제하는 알고리즘이다.
LRU-K 정책은 최근 K번의 참조로부터 추정된 참조 조밀성에 근거하여 교체 블록을 결정하는 알고리즘이다. 즉, 버퍼 캐쉬 안의 블록들 중에서 최근 K번째의 참조 시간이 가장 오래 전인 블록을 교체한다. 최근 K번의 참조시간을 고려하기 때문에 LRU-K 교체 정책은 빈번하게 참조되는 블록들과 그렇지 못한 블록들을 구별하게 되어 참조 횟수가 적은 블록들을 버퍼 캐쉬에서 빨리 교체할 수 있게 한다.
2Q 알고리즘은 데이터 블록이 최소한 두 번 이상 참조된 후에 캐쉬에 장시간 보전할 가치가 있다고 판단하는 알고리즘이다. 첫 번째 참조시에는 데이터 블록은 A1 큐라고 불리는 임시공간에 저장된다. 데이터 블록은 두 번째 참조 시에야 비로소 Am 큐라고 부르는 캐쉬의 중요 부분으로 옮겨지게 되는 알고리즘으로서 각 데이터 블록의 중요도가 증명된 후 캐쉬의 주요부분으로 저장되어 장시간 보존하는 알고리즘을 사용한다.
좀 더 자세히 살펴보면, 2Q 교체정책에서는 버퍼 캐쉬를 A1큐와 Am큐로 분할한다. 최초 참조되는 블록들을 A1큐에 반입하였다가 디스크 블록에 대한 포인터만 저장한 채 방출한 후 다시 참조되었을 때에 비로소 Am 큐로 반입하여 버퍼 캐쉬에 장시간 유지된다. A1 큐 내에서 일정 기간 내에 재 참조되지 않을 경우에는 빈번하게 참조되지 않는 블록으로 간주되어 조기에 교체되어 진다. 또한 2Q 정책에서는 연관 참조의 문제를 해결하기 위하여 A1 큐를 A1in 큐와 A1out 큐의 두 영역으로 분할한다. A1in 큐에서 재 참조되는 블록들은 연관 참조되는 블록으로 간주되어 Am 큐로 이동하지 않으며, A1out 큐에서 다시 참조될 경우에만 Am 큐로 이동된다.
이러한 방식의 2Q 교체 정책은 LRU-K 정책과 비슷한 동기에서 제안된 정책이나 LRU-K교체 정책보다 시간 복잡도가 낮다는 장점을 가진다.
프로세서가 디스크에 접근을 하여 데이터를 가져오는 시간은, 주기억장치에서 데이터를 가져오는 시간보다 대략 1000배에서 10000배 이상의 시간이 소용된다. 이러한 이유에 의해, 프로세서의 잦은 디스크 참조는 시스템 전체의 성능을 저하시키는 큰 요인이 되고 있다. 이러한 문제의 해결을 위해 많은 시스템에서는 버퍼 캐시(Buffer Cache)를 사용한다.
기존의 2Q 알고리즘을 사용한 버퍼 캐쉬 관리방법은 A1out부분은 RAM으로 구현되어 하드디스크에 있는 페이지를 포인팅하는 매우 작은 부분으로 구성되어 있었다. 따라서 A1out부분에 데이터블록 자체가 남아있는 것이 아니어서 참조되는 페이지가 A1out 부분에 남아있어도 포인터를 사용해 하드디스크에서 데이터를 다시 불러와야 하는 문제점이 있었다.
따라서, 본 발명의 제1 목적은 데이터 처리 속도를 증가시키고 버퍼캐쉬내의 데이터 블록을 관리함에 있어 복잡도를 줄이기 위한 버퍼 캐쉬 관리 방법을 제공하는 것이다.
또한, 본 발명의 제2 목적은 데이터 처리 속도를 증가시키고 버퍼캐쉬내의 데이터 블록을 관리함에 있어 복잡도를 줄이기 위한 버퍼 캐쉬 관리 방법을 사용하는 장치를 제공하는 것이다.
상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일 측면에 따른 중앙처리장치에서 참조되는 데이터 블록을 제공하는 제1 메모리, 상기 참조되는 데이터 블록을 하드디스크로부터 제공받는 제2 메모리, 상기 참조되는 데이터 블록을 상기 제2 메모리로부터 제공받는 제3 메모리를 사용하는 2Q 알고리즘에서 상기 제3 메모리를 SSD 확장버퍼로 사용한 버퍼 캐쉬 관리 방법은 상기 제1 메모리와 상기 제2 메모리에 참조할 데이터 블록이 없는 경우, SSD(Solid State Disk)로 구성된 상기 제3 메모리에 상기 참조할 데이터 블록이 있는지를 판단하는 단계와 상기 제3 메모리에 상기 참조할 데이터 블록이 없는 경우 하드디스크로부터 상기 참조할 데이터 블록을 상기 제2 메모리에 제공하는 단계를 포함할 수 있다. 상기 제3 메모리는 SSD로 이루어져 상기 데이터 블록 전체를 저장할 수 있다. 상기 제1 메모리에 상기 참조할 데이터 블록이 있는 경우 상기 참조할 데이터 블록을 상기 제1 메모리에서 참조한 후 상기 제1 메모리의 LRU((Least Recently Used) 리스트를 조정하는 단계를 더 포함할 수 있다. 상기 제3 메모리에 상기 참조할 데이터 블록이 있는 경우 상기 제1 메모리에 상기 참조할 데이터 블록을 제공받을 공간이 있는지 판단하여 상기 공간이 있는 경우, 상기 제3 메모리로부터 상기 참조할 데이터 블록을 읽어서 상기 제1 메모리에 제공하는 단계를 더 포함할 수 있다. 상기 제1 메모리에 상기 참조할 데이터 블록을 제공받을 공간이 있는지 판단하여 상기 공간이 없는 경우, 상기 제1 메모리의 LRU(Least Recently Used) 리스트의 마지막 데이터 블록을 상기 하드디스크로 내려보내고 상기 마지막 데이터 블록이 있던 공간에 상기 참조할 데이터 블록을 상기 제1 메모리에 제공하는 단계를 더 포함할 수 있다. 상기 제1 메모리 및 상기 제2 메모리는 램(RAM)으로 이루어질 수 있다. 상기 제1 메모리는 페이지 대체 방법으로 LRU(Least Recently Used)를 사용하고 상기 제2 메모리 및 상기 제3 메모리는 상기 페이지 대체 방법으로 FIFO(First in First out)를 사용할 수 있다.
또한 상술한 본 발명의 제2 목적을 달성하기 위한 본 발명의 일 측면에 따른 SSD(Solid State Disk)를 확장 버퍼로서 사용하는 장치는 데이터 블록을 요청하고 처리하는 중앙처리장치(CPU), 램(RAM)으로 구현되어 상기 데이터 블록을 직접적으로 상기 중앙처리장치에 제공하는 제1 메모리, 램(RAM)으로 구현되어 상기 데이터 블록을 하드디스크로부터 제공받는 제2 메모리, SDD(Solid State Disk)로 구현되어 상기 제1 메모리에서 제공된 상기 데이터 블록을 전달받아 상기 제1 메모리로 제공하는 제3 메모리 및 상기 제2 메모리에 상기 데이터 블록을 제공하는 역할을 하는 하드디스크를 포함할 수 있다. 상기 제3 메모리는 SSD(Solid State Disk)로 이루어져 상기 데이터 블록 전체를 저장할 수 있다. 상기 제1 메모리는 페이지 대체 방법으로 LRU(Least Recently Used)를 사용하고 상기 제2 메모리 및 상기 제3 메모리는 상기 페이지 대체 방법으로 FIFO(First in First out)를 사용할 수 있다. 상기 제3 메모리에 상기 참조할 데이터 블록이 있는 경우 상기 제1 메모리에 상기 참조할 데이터 블록을 제공받을 공간이 있는지 판단하여 상기 공간이 있는 경우 상기 제3 메모리로부터 상기 참조할 데이터 블록을 읽어서 상기 제1 메모리에 제공할 수 있다.
상술한 바와 같이 본 발명의 실시예에 따른 SSD 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 SSD를 확장버퍼로서 사용하는 장치에 따르면 버퍼 캐쉬를 관리하는 2Q 알고리즘하에서 A1out 큐을 SSD로 구현함으로서 단순히 참조할 페이지를 포인팅을 하는 것이 아닌 A1out 큐에 참조할 데이터 블록(페이지) 전체를 저장할 수 있어 참조될 페이지가 있는 경우 빠른 시간에 참조될 수 있으며 이에 따라 데이터 처리 속도가 빨라지고 버퍼캐쉬내의 데이터 블록을 관리함에 있어 복잡도가 감소하고 효율적으로 관리할 수 있다.
또한 플래시 메모리(flash memory)를 저장 매체로 사용하여 페이지 대체(page replacement)를 수행하여 플래시 메모리의 쓰기 동작을 최소화하고, 메모리 적중률(memory hit-rate)을 높일 수 있다.
도 1은 본 발명의 일 실시예에 따른 2Q 알고리즘을 사용하는 SSD(Solid State Disk) 확장 버퍼 구조를 나타낸 블록도이다.
도 2은 본 발명의 일 실시예에 따른 2Q 알고리즘을 사용할 경우 Am 큐에서 사용되는 LRU(Least Recently Used)를 사용한 페이지 교체 정책을 나타낸 블록도이다.
도 3는 본 발명의 일 실시예에 따른 2Q 알고리즘을 사용하는 SSD(Solid State Disk)확장 버퍼 구조에서 페이지를 요청시 해당 페이지를 참조하는 방법을 나타낸 순서도이다.
도 4은 본 발명의 일 실시예에 따른 2Q알고리즘 하에서 기존의 램(RAM)을 사용하여 A1out 큐를 구현한 방식과 본 발명에서 제안한 A1out 큐을 SSD(Solid State Disk)로 구현하였을 때의 성능을 비교한 그래프이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
또한, 이하 발명의 상세한 설명에서는 데이터 블록은 페이지와 동일한 의미로 사용될 수 있다.
또한 2Q알고리즘에서 Am 큐를 제1 메모리, A1in 큐를 제2 메모리, A1out 큐를 제3 메모리라는 용어로 대체하여 사용할 수도 있다.
도 1은 본 발명의 일 실시예에 따른 버퍼 캐쉬 관리방법으로 2Q알고리즘을 사용하고 A1out 큐를 SSD(Solid State Disk)로 구현한 확장 버퍼 구조를 나타낸다.
A1out 큐로 사용되는 SSD는 하드 디스크 드라이브(HDD)와 비슷하게 동작하면서도 기계적 장치인 HDD와는 달리 반도체를 이용하여 정보를 저장하는 장치이다. SDD는 HDD와 비교하여 데이터에 대해 임의접근을 하여 별도의 탐색시간 없이 고속으로 데이터를 입출력할 수 있으면서도 HDD에 비해 기계적 지연이나 실패율이 현저히 적다는 장점을 가진다. 또한 외부의 충격으로 데이터가 손상되지 않으며, 발열ㅇ소음 및 전력소모가 적고, 소형화ㅇ경량화할 수 있는 장점이 있다.
하지만 SSD는 지금의 HDD와 비교하여 뛰어난 성능에도 불구하고 용량에 비해 가격이 매우 비싸기 때문에 HDD를 대체하지는 못한다. 하지만 SSD를 2Q 알고리즘을 사용함에 있어 확장 버퍼로서 A1out 큐를 구현하는데 사용할 수 있다면, 버퍼 캐쉬의 성능을 향상시킬 수 있다.
SDD는 일종의 플래쉬 메모리로서 랜덤 읽기(Random Read) 측면에서 좋은 성능을 가진다. 따라서 2Q알고리즘을 사용하는 경우, A1out에서 발생되는 입출력 패턴은 A1in에서 빠져나오는 데이터 블록을 순차적으로 기록하는 연속 읽기(Squential Read)와 A1out에서 Am으로 읽혀질 때의 랜덤 읽기(Random Read)만이 존재한다.
SSD는 NAND를 사용하기 때문에 HDD와 달리 오버라이트(Overwrite)를 하지 못하기 때문에 데이터를 쓰기 위해서는 HDD보다 오랜시간이 걸린다. 하지만 SSD는 읽기(Read)의 속도가 쓰기(Write)하는 속도보다 빠르기 때문에 A1out의 데이터 입출력 패턴에 있어 A1out을 SSD로 구현하면 효과적인 버퍼 캐쉬의 관리방법이 될 수 있다.
도 1을 참조하면, A1out 큐로 SSD(Solid State Disk)를 사용한 확장 버퍼 구조로서 Am 큐(100), A1in 큐(110), A1out 큐(120), HDD(130), CPU(140)을 포함하여 구성될 수 있다.
Am 큐(100)은 실질적으로 데이터 블록이 운용되는 곳으로서 2Q 알고리즘을 사용하는 버퍼 캐쉬 관리 구조에 있어서 RAM(Random Access Memory)으로 이루어 질 수 있다. Am 큐(100)은 데이터 블록을 교체하는 알고리즘으로서 LRU(Least Recently Used)정책을 사용하여 가장 오랫동안 사용되지 않은 데이터 블록을 교체하는 방식을 사용하여 구현될 수 있다.
도 2는 Am 큐를 구현하는 LRU(Least Recently Used) 페이지 대체 알고리즘의 구조를 나타내는 예시도로서, 주메모리의 바깥으로 내보내야할 페이지를 선정할 때, 최근에 사용되지 않은(읽혀지지 않거나 또는 기록되지 않거나) 페이지를 선택하는 알고리즘이다. LRU 알고리즘은 일반적으로 가장 오랫동안 액세스되지 않았던 페이지는, 조만간에도 액세스되지 않을 확률이 가장 크다는 시간적 집약성(temporal locality)에 기반을 두고 있다. LRU 알고리즘에서는 각각의 페이지들이 리스트로 관리되는데 헤드(head)에 가장 최근에 사용된 페이지가 위치한다. 즉, 특정 페이지가 액세스되면 리스트의 헤드(head)로 이동한다.
도 2에서는 페이지a(210)가 가장 최근에 사용되어 헤드에 위치하고 있으나, 페이지d(240)가 액세스되어 헤드로 이동하는 것을 나타내고 있다. 한편, 새로운 페이지를 위해서 기존의 페이지를 대체할 때는 리스트의 테일(tail)에 있는 페이지가 사용되며 도 2에서는 페이지e(250)가 대체될 페이지에 해당한다.
이와 같은 LRU 페이지 교체 알고리즘을 사용하는 Am 큐(100)에 요청되는 데이터 블록(페이지)가 있을 경우 이러한 데이터 블록의 경우 CPU(140)에서 바로 참조될 수 있다. 만약에 Am 큐(100)에 참조되는 페이지가 없어서 A1out 큐(120)로부터 페이지가 참조되는 경우 해당페이지를 Am 큐(100)의 LRU리스트의 마지막 페이지를 HDD(130)으로 보내고 빈 공간에 새로운 페이지를 넣을 수 있다.
A1in 큐(110)은 전체 RAM에서 메모리의 약 20%를 차지하는 단순 큐이다. A1in 큐(110)에서는 데이터 교체 알고리즘으로서 FIFO(First In First Out)정책을 사용할 수 있다. A1in 큐(110)는 데이터 블록이 HDD(130)으로부터 가장 먼저 읽혀서 제공되는 부분으로서 새로운 데이터 블록이 들어오면 가장 오래된 데이터 블록을 밀어내어 A1out 큐(110)으로 보낼 수 있다.
본 발명의 일 실시예에 따르면 A1out 큐(120)는 SSD(Solid State Disk)를 사용하여 구현될 수 있다. A1out 큐(120)는 A1in(110) 큐에서 들어오는 데이터 블록을 받아들이고 페이지 교체 알고리즘으로서 FIFO(First In First Out)정책을 사용할 수 있다. A1out 큐(120)에서 밀려난 데이터 블록은 HDD(130)에 기록되고, 참조되는 페이지가 A1out 큐(120)에 있는 경우, Am 큐(100)로 Hit가 되어 올라가고 Am 큐(100)에서 페이지를 참조하는 방식으로 사용될 수 있다.
A1out 큐(120)는 기존의 2Q 알고리즘 하에서 사용되던 구조와 달리 SSD를 사용하여 확장 버퍼로서 구현할 수 있다. 기존의 방식과 같이, 참조 데이터 블록을 포인팅하는 방법을 사용하는 것이 아니라 데이터 블록 자체를 A1out 큐(120)에 기록하여 참조된 페이지를 A1out 큐(120)로부터 직접 읽어올 수 있다.이러한 A1out 큐(120)은 별도의 SSD로서 구현되어 버퍼 캐쉬를 사용하는 단말기의 각 구성부에 포함될 수 있다.
도 3는 본 발명의 일 실시예에 따른 버퍼 캐쉬 관리방법으로 2Q 알고리즘을 사용한 A1out 큐로서 SSD(Solid State Disk)로 구성된 확장 버퍼 구조를 사용한 데이터블록(페이지) 교체의 흐름을 나타낸 순서도이다.
우선 컴퓨터와 같은 단말기에서 데이터의 처리상 필요한 페이지를 요청할 수 있다(단계 301).
단계 301을 통해 요청된 페이지가 Am 큐에 있는 지를 판단할 수 있다(단계 303). 단계 303을 통해서 2Q 알고리즘에서는 Am 큐, A1in 큐, A1out 큐 중에서 우선적으로 Am 큐에 참조할 페이지가 있는지를 확인 할 수 있다.
단계 303을 통해 Am 큐에 참조될 페이지가 있는 것으로 판단되는 경우, 해당되는 페이지를 참조한 후, Am 큐의 LRU 리스트를 조정할 수 있다(단계 305). Am 큐를 구현하는 LRU 리스트의 경우 페이지의 사용빈도에 따라 페이지의 위치 조정을 달리하기 때문에 참조되는 빈도에 따라 교체될 순서가 달라질 수 있다.
단계 303을 통한 판단에서 Am 큐에 참조될 페이지가 없는 경우 그 다음으로는 2Q 알고리즘 정책에 따라 A1in 큐에 해당 페이지가 있는지를 판단할 수 있다(단계 307). 단계 307을 통해 Ain 큐에 참조될 페이지가 있는 경우 Ain 큐에서 직접 해당 페이지를 참조할 수 있다(단계 309). Ain 큐의 경우 페이지 교체 정책으로서 FIFO(First in First out)를 사용하기 때문에 페이지의 참조빈도에 따라 데이터 블록의 리스트를 조정할 필요가 없다.
만약 단계 307을 통해 A1in 큐에 해당 페이지가 없는 경우 A1out 큐에 해당 페이지가 있는지 여부를 판단할 수 있다(단계 311).
단계 311을 통해 A1out 큐에 해당 페이지가 있는 경우, Am 큐에 빈공간이 있는지를 판단할 수 있다(단계 313). A1out 큐의 경우 A1in 큐와 달리 직접적으로 페이지를 참조할 수 없고 Am 큐로 페이지를 올려서 활용할 수 있다.
단계 313을 통해 Am 큐에 빈공간이 있는 경우, 해당 페이지를 A1out 큐의 SSD를 통해 읽어서 Am 큐의 빈공간에 넣을 수 있다(단계 315).
단계 313을 통해 Am 큐에 빈공간이 없는 경우, 해당 페이지를 A1out 큐의 SSD를 통해 읽어서 Am 큐의 LRU 리스트의 마지막 페이지를 하드디스크로 내려 보내고 빈공간에 A1out 큐의 SSD로부터 읽어온 해당 페이지를 Am 큐의 빈공간에 집어넣을 수 있다.
단계 311을 통해 A1out 큐에 해당 페이지가 없는 경우, 하드디스크로부터 참조할 해당 페이지를 읽어올 수 있다(단계 319).
A1in 큐의 빈공간이 있는지 여부를 판단한 후(단계 321), 만약 A1in 큐에 빈공간이 있는 경우 해당 페이지를 A1in 큐의 빈공간에 집어넣고 해당 페이지를 참조할 수 있다(단계 323).
만약 A1in 큐에 빈공간이 없는 경우, A1in 리스트의 마지막 페이지를 A1out(SSD)로 내보내고 빈공간에 페이지를 넣어서 해당 페이지를 참조할 수 있다(단계 325).
도 4은 본 발명의 일 실시예에 따른 2Q알고리즘 하에서 기존의 RAM을 사용하여 A1out을 구현한 방식과 본 발명에서 제안한 A1out을 SSD로 구현하였을 때의 성능을 비교한 그래프이다.
도 4의 그래프는 TPC-C(The Transaction Processing Performance Council (TPC) benchmarks C)테스트를 통해 나온 결과 값이다. TPC-C는 OLTP(Online Transaction Processing)의 워크로드, 즉 온라인에서 이루어지는 전자상거래시에 발생하는 워크로드 값을 사용하여 데이터 처리 성능을 측정한 값이다.
이 값은 전자상거래에 발생하는 비즈니스 모델을 기준으로 만들어진 것으로 5가지 종류의 비즈니스 트랜잭션(Transaction)(New-Order, Payment, Order-Status, Delivery, Stock-Level)을 일정한 비율로 발생시킨 후 정상 상태(Steady State)에서 분당 처리되는 새로운 주문으로 인한 거래의 처리건수를 계산하여 나타낸 값이다.
그래프(도 4의 (b))는 워크로드(Workload)로 1기가바이트(Gigabyte)를 사용하여 시뮬레이션을 한 그래프로서 기존의 2Q(A1out을 RAM으로 구현한 경우로서 일정한 RAM의 크기를 사용한 경우)를 사용한 그래프(400-1)와 기존의 2Q(A1out을 RAM으로 구현한 경우로서 램(RAM)의 크기를 변화시킨 경우)를 사용한 그래프(400-2) 및 본 발명의 A1out을 SSD로 구현한 2Q의 그래프(400-3)를 나타낸다.
그래프(400-2)는 램(RAM)의 크기를 변화시킴에 있어서, 현재의 SSD와 RAM을 동일한 가격대비로 평가하였을 때 늘릴 수 있는 용량을 계산하여 늘린 것이다. 현재의 RAM은 동일한 용량일 경우 SSD와 가격에 비해 10배의 가격을 가지므로 동일한 가격을 투자하였을 경우, A1out을 SSD로 구현한 2Q의 그래프(400-3)의 효율과 비교할 수 있다.
그래프(도 4의 (b))의 가로축은 A1out 큐로 사용된 SSD의 크기를 전체 워크로드에 대한 %값으로 나타낸 것으로, 즉 전체 워크로드 데이터에 대한 비율이다.
그래프(도 4의 (b))의 세로축은 전체 워크로드를 수행하는 데 걸리는 시간으로 단위는 초이다. 초는 처리되는 속도로써 빠를수록 좋은 성능을 가짐을 나타낸다.
표(도 4의 (a))은 세로축의 시간을 표의 형태로서 비교한 것으로 나타낸 것이다.
그래프(도 4의 (b))와 표(도 4의 (a))를 참조하면 기존 2Q의 그래프(400-1)와 그래프(400-2)는 그래프(400)와 표(도 4의 (a))에 나타나있는 것처럼 2Q의 A1out을 SSD로 사용했을 경우보다 TPC-C 워크로드를 수행시 걸리는 시간이 현저하게 오래 걸리는 것을 확인 할 수 있다.
즉, 본 발명의 2Q알고리즘을 적용하여 SSD 확장버퍼를 사용한 페이지 대체 방법을 사용할 경우, 기존의 방법에 비해 참조될 페이지가 있는 경우 빠른 시간에 참조될 수 있으며 이에 따라 데이터 처리 속도가 빨라지고 버퍼캐쉬내의 데이터 블록을 관리함에 있어 복잡도가 감소하고 효율적으로 관리할 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (11)

  1. 중앙처리장치에서 참조되는 데이터 블록을 제공하는 제1 메모리, 상기 참조되는 데이터 블록을 하드디스크로부터 제공받는 제2 메모리, 상기 참조되는 데이터 블록을 상기 제2 메모리로부터 제공받는 제3 메모리를 사용하는 2Q 알고리즘에서 상기 제3 메모리를 SSD 확장버퍼로 사용한 버퍼 캐쉬 관리 방법에 있어서,
    상기 제1 메모리와 상기 제2 메모리에 참조할 데이터 블록이 없는 경우, SSD(Solid State Disk)로 구성된 상기 제3 메모리에 상기 참조할 데이터 블록이 있는지를 판단하는 단계; 및
    상기 제3 메모리에 상기 참조할 데이터 블록이 없는 경우 하드디스크로부터 상기 참조할 데이터 블록을 상기 제2 메모리에 제공하는 단계를 포함하는 SSD 확장버퍼를 사용한 버퍼 캐쉬 관리 방법.
  2. 제1항에 있어서, 상기 제3 메모리는 SSD로 이루어져 상기 데이터 블록 전체를 저장하는 것을 특징으로 하는 SSD 확장버퍼를 사용한 버퍼 캐쉬 관리 방법.
  3. 제2항에 있어서, 상기 제1 메모리에 상기 참조할 데이터 블록이 있는 경우,
    상기 참조할 데이터 블록을 상기 제1 메모리에서 참조한 후 상기 제1 메모리의 LRU((Least Recently Used) 리스트를 조정하는 단계를 더 포함하는 SSD 확장버퍼를 사용한 버퍼 캐쉬 관리 방법.
  4. 제2항에 있어서, 상기 제3 메모리에 상기 참조할 데이터 블록이 있는 경우,
    상기 제1 메모리에 상기 참조할 데이터 블록을 제공받을 공간이 있는지 판단하여 상기 공간이 있는 경우, 상기 제3 메모리로부터 상기 참조할 데이터 블록을 읽어서 상기 제1 메모리에 제공하는 단계를 더 포함하는 SSD 확장버퍼를 사용한 버퍼 캐쉬 관리 방법.
  5. 제4항에 있어서, 상기 제1 메모리에 상기 참조할 데이터 블록을 제공받을 공간이 있는지 판단하여 상기 공간이 없는 경우, 상기 제1 메모리의 LRU(Least Recently Used) 리스트의 마지막 데이터 블록을 상기 하드디스크로 내려보내고 상기 마지막 데이터 블록이 있던 공간에 상기 참조할 데이터 블록을 상기 제1 메모리에 제공하는 단계를 더 포함하는 SSD 확장버퍼를 사용한 버퍼 캐쉬 관리 방법.
  6. 제2항에 있어서, 상기 제1 메모리 및 상기 제2 메모리는 램(RAM)으로 이루어진 것을 특징으로 하는 SSD 확장버퍼를 사용한 버퍼 캐쉬 관리 방법.
  7. 제2항에 있어서, 상기 제1 메모리는 페이지 대체 방법으로 LRU(Least Recently Used)를 사용하고 상기 제2 메모리 및 상기 제3 메모리는 상기 페이지 대체 방법으로 FIFO(First in First out)를 사용하는 것을 특징으로 하는 SSD 확장버퍼를 사용한 버퍼 캐쉬 관리 방법.
  8. SSD(Solid State Disk)를 확장 버퍼로서 사용하는 장치에 있어서,
    참조할 데이터 블록을 요청하고 처리하는 중앙처리장치(CPU);
    램(RAM)으로 구현되어 상기 참조할 데이터 블록을 직접적으로 상기 중앙처리장치에 제공하는 제1 메모리;
    램(RAM)으로 구현되어 상기 참조할 데이터 블록을 하드디스크로부터 제공받는 제2 메모리;
    SDD(Solid State Disk)로 구현되어 상기 제1 메모리에서 제공된 상기 참조할 데이터 블록을 전달받아 상기 제1 메모리로 제공하는 제3 메모리; 및
    상기 제2 메모리에 상기 참조할 데이터 블록을 제공하는 역할을 하는 하드디스크를 포함하는 SSD를 확장 버퍼로서 사용하는 장치.
  9. 제8항에 있어서, 상기 제3 메모리는 SSD(Solid State Disk)로 이루어져 상기 데이터 블록 전체를 저장하는 것을 특징으로 하는 SSD를 확장 버퍼로서 사용하는 장치.
  10. 제8항에 있어서, 상기 제1 메모리는 페이지 대체 방법으로 LRU(Least Recently Used)를 사용하고 상기 제2 메모리 및 상기 제3 메모리는 상기 페이지 대체 방법으로 FIFO(First in First out)를 사용하는 것을 특징으로 하는 SSD를 확장 버퍼로서 사용하는 장치.
  11. 제8항에 있어서, 상기 제3 메모리에 상기 참조할 데이터 블록이 있는 경우,
    상기 제1 메모리에 상기 참조할 데이터 블록을 제공받을 공간이 있는지 판단하여 상기 공간이 있는 경우, 상기 제3 메모리로부터 상기 참조할 데이터 블록을 읽어서 상기 제1 메모리에 제공하는 SSD를 확장 버퍼로서 사용하는 장치.
KR1020100035264A 2010-04-16 2010-04-16 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치 KR101105127B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100035264A KR101105127B1 (ko) 2010-04-16 2010-04-16 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100035264A KR101105127B1 (ko) 2010-04-16 2010-04-16 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치

Publications (2)

Publication Number Publication Date
KR20110115759A KR20110115759A (ko) 2011-10-24
KR101105127B1 true KR101105127B1 (ko) 2012-01-16

Family

ID=45030303

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100035264A KR101105127B1 (ko) 2010-04-16 2010-04-16 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치

Country Status (1)

Country Link
KR (1) KR101105127B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180079900A (ko) 2017-01-03 2018-07-11 한양대학교 산학협력단 캐시 매핑 테이블 관리 방법 및 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101740317B1 (ko) 2013-04-10 2017-05-26 한국전자통신연구원 메모리 관리 방법 및 장치
CN103744624B (zh) * 2014-01-10 2017-09-22 浪潮电子信息产业股份有限公司 一种实现存储***ssd缓存数据选择性升级的***架构
KR101675694B1 (ko) * 2015-09-11 2016-11-23 성균관대학교산학협력단 블록 인기도에 기반한 ssd의 블록 교체방법
KR101704936B1 (ko) * 2015-12-07 2017-02-09 성균관대학교산학협력단 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090024971A (ko) * 2007-09-05 2009-03-10 삼성전자주식회사 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치
US20100211731A1 (en) 2009-02-19 2010-08-19 Adaptec, Inc. Hard Disk Drive with Attached Solid State Drive Cache
KR20100104550A (ko) * 2009-03-18 2010-09-29 삼성전자주식회사 저장 장치 및 저장 장치의 버퍼 메모리 관리 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090024971A (ko) * 2007-09-05 2009-03-10 삼성전자주식회사 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치
US20100211731A1 (en) 2009-02-19 2010-08-19 Adaptec, Inc. Hard Disk Drive with Attached Solid State Drive Cache
KR20100104550A (ko) * 2009-03-18 2010-09-29 삼성전자주식회사 저장 장치 및 저장 장치의 버퍼 메모리 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180079900A (ko) 2017-01-03 2018-07-11 한양대학교 산학협력단 캐시 매핑 테이블 관리 방법 및 장치

Also Published As

Publication number Publication date
KR20110115759A (ko) 2011-10-24

Similar Documents

Publication Publication Date Title
EP3210121B1 (en) Cache optimization technique for large working data sets
US9235508B2 (en) Buffer management strategies for flash-based storage systems
US7424577B2 (en) Dynamic optimization of cache memory
US7430639B1 (en) Optimization of cascaded virtual cache memory
CN108268219B (zh) 一种处理io请求的方法及装置
Seshadri et al. The dirty-block index
CN111052095B (zh) 使用动态预取深度的多行数据预取
US9146688B2 (en) Advanced groomer for storage array
Lv et al. Operation-aware buffer management in flash-based systems
JP2013511081A (ja) デバイス・アダプタを介して、データをキャッシュから複数のストレージ・デバイスの各々にデステージするための方法、システム及びコンピュータ・プログラム
JP6711121B2 (ja) 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
Liu et al. PLC-cache: Endurable SSD cache for deduplication-based primary storage
KR20180114497A (ko) 하이브리드 dram/낸드 메모리에서 읽기-수정-쓰기 오버헤드를 감소시키기 위한 기술들
US9235517B2 (en) Implementing dynamic cache enabling and disabling based upon workload
US10691613B1 (en) Caching algorithms for multiple caches
US11693570B2 (en) Machine learning to improve caching efficiency in a storage system
KR101105127B1 (ko) 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치
Xu et al. Frequent access pattern-based prefetching inside of solid-state drives
US20090276600A1 (en) Method and apparatus for determining memory usage for a computing device
US20170262485A1 (en) Non-transitory computer-readable recording medium, data management device, and data management method
Liu et al. Synergistic coupling of SSD and hard disk for QoS-aware virtual memory
CN114385073A (zh) 操作存储***的方法和对存储资源的层级进行分区的方法
Liu et al. Endurable SSD-based read cache for improving the performance of selective restore from deduplication systems
Park et al. A flash-based SSD cache management scheme for high performance home cloud storage
JP6919277B2 (ja) ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム

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