KR101523469B1 - 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템 - Google Patents

식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템 Download PDF

Info

Publication number
KR101523469B1
KR101523469B1 KR1020140094086A KR20140094086A KR101523469B1 KR 101523469 B1 KR101523469 B1 KR 101523469B1 KR 1020140094086 A KR1020140094086 A KR 1020140094086A KR 20140094086 A KR20140094086 A KR 20140094086A KR 101523469 B1 KR101523469 B1 KR 101523469B1
Authority
KR
South Korea
Prior art keywords
identification number
blocks
group
extracting
cache
Prior art date
Application number
KR1020140094086A
Other languages
English (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 KR1020140094086A priority Critical patent/KR101523469B1/ko
Application granted granted Critical
Publication of KR101523469B1 publication Critical patent/KR101523469B1/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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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

식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템이 제시된다. 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법에 있어서, 프로세서로부터 입출력(I/O)이 요청되는 상기 식별 번호를 순차적으로 기록하는 단계; 기록한 상기 식별 번호의 순서에 따라 그래프를 도시하는 단계; 상기 그래프를 클러스터링(Clustering)하여 그룹을 형성하는 단계; 및 상기 그룹에 우선순위를 부여하는 단계를 포함할 수 있다.

Description

식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템{METHOD AND SYSTEM FOR EXTRACTING THE TIME SEQUENCE AMONG BLOCKS USING RECORD OF IDENTIFICATION NUMBER}
본 발명은 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템에 관한 것이다. 더욱 상세하게는, 캐시 히트율을 높이는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템에 관한 것이다.
일반적으로, 하이브리드 하드디스크는 낸드 플래시 메모리 기반 SSD(Solid State Drive)를 비휘발성 캐시로 사용하고, 대용량의 하드디스크(Hard Disk Drive; HDD)를 하위 저장장치로 사용한다. 여기서, HDD는 읽기/쓰기의 속도가 느리지만 용량 대비 가격이 매우 저렴한 반면에, 최신 플래시 메모리 기반 SSD는 고성능이지만 가격이 높은 단점이 있다. 이를 보완하기 위해, 고성능의 SSD 데이터 캐시와 대용량의 HDD를 결합한 하이브리드 하드디스크를 고려할 수 있으며, 이러한 하이브리드 하드디스크에 적합한 플래시 메모리 캐시의 효율적인 관리 방법이 필요하다.
최근, 리눅스 공식 커널은 3.9 버전에 DM-Cache(Direct Mapped Cache)를 지원하면서 공식적으로 SSD(Solid State Drive) 캐시 매커니즘을 리눅스에 포함시켰다. 이는, 하드디스크 등과 같이 대용량을 가졌지만 요청 처리 시간이 느린 디바이스를 주 디바이스로 두면서, 자주 접근하는 파일은 요청 처리 시간이 빠른 SSD에 옮겨 디스크의 고속화를 이룰 수 있다.
이에 따라, 하드디스크 제조사 등에서 일반 스핀들 하드디스크와 플래시 메모리 기반의 SSD를 하나의 제품에 탑재한 하이브리드 디스크를 출시하였다. 이때, 핵심은 SSD 캐시인데, DM-Cache는 등장한 역사가 짧아 적절한 정책 연구가 시급한 실정이다. 현재 적용된 정책은 매우 단순하여 큰 효과를 얻을 수 없으며, 상황에 따라 그 효과가 전혀 없을 뿐 아니라 캐시 오버헤드로 인한 성능 저하가 발생할 수도 있다.
그리고, 하이브리드 하드디스크는 다양한 워크로드에서 성능을 보장하지만 특정 워크로드에는 최적화되지 못하였다. 그러나, 사용자는 컴퓨터를 사용할 때 비슷한 패턴을 가지고 사용하기 때문에 다양한 워크로드에 초점을 맞추기 보다는 사용자에게 적합한 정책을 취하는 것이 필요하다.
한국공개특허 10-2013-0112755호는 이러한 스토리지 관리 방법 및 장치에 관한 것으로, 플래시 메모리 내의 OPS 공간(Over-Provisioned Space) 및 캐싱 공간(Caching Space)을 조절하여 스토리지를 관리하는 방법 및 장치에 관한 기술을 기재하고 있다.
본 발명이 이루고자 하는 기술적 과제는 프로세서가 디스크에 I/O 요청 시 식별 번호를 기록하고, 기록을 바탕으로 블록 간의 시간적 관계를 파악하여 캐시 정책에 반영함으로써, 히트율을 높일 수 있는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템을 제공하는데 있다.
또한, 본 발명이 이루고자 하는 기술적 과제는 요청되는 식별 번호를 순차적으로 기록하고 클러스터링하여 DM-Cache 정책으로 활용함으로써, 적은 오버헤드가 발생하되 SSD 캐시 히트율을 높일 수 있는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템을 제공하는데 있다.
일 측면에 있어서, 본 발명에서 제안하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법에 있어서, 프로세서로부터 입출력(I/O)이 요청되는 상기 식별 번호를 순차적으로 기록하는 단계; 기록한 상기 식별 번호의 순서에 따라 그래프를 도시하는 단계; 상기 그래프를 클러스터링(Clustering)하여 그룹을 형성하는 단계; 및 상기 그룹에 우선순위를 부여하는 단계를 포함한다.
상기 식별 번호는 아이노드(inode) 번호 또는 블록(block) 번호이며, 상기 식별 번호를 통해 파일 또는 상기 블록을 구분 가능할 수 있다.
상기 식별 번호의 순서에 따라 그래프를 도시하는 단계는 과거에 입출력(I/O)이 요청된 상기 식별 번호와 현재 입출력(I/O)이 요청된 상기 식별 번호를 각각 x축과 y축으로 하여 그래프를 도시할 수 있다.
상기 그래프를 클러스터링(Clustering)하여 그룹을 형성하는 단계는 상기 x축과 y축의 시간 관계를 파악하고, 상기 시간 관계에 따라 상기 그룹을 형성할 수 있다.
상기 그룹에 우선순위를 부여하는 단계는 상기 그룹 내에 있는 상기 식별 번호가 호출되는 경우, 상기 그룹의 요소에 상기 우선순위를 부여하여 캐시(Cache) 또는 프리페치(Prefetch)에 보관할 수 있다.
다른 측면에 있어서, 본 발명에서 제안하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 시스템에 있어서, 프로세서로부터 입출력(I/O)이 요청되는 상기 식별 번호를 순차적으로 기록하는 식별 번호 기록부; 상기 식별 번호 기록부에서 기록한 상기 식별 번호의 순서에 따라 그래프를 도시하는 데이터 시각화부; 도시된 상기 그래프를 클러스터링(Clustering)하여 그룹을 형성하는 그룹화부; 및 상기 그룹에 우선순위를 부여하는 우선순위 결정부를 포함한다.
상기 식별 번호는 아이노드(inode) 번호 또는 블록(block) 번호이며, 상기 식별 번호를 통해 파일 또는 상기 블록을 구분 가능할 수 있다.
상기 데이터 시각화부는 과거에 입출력(I/O)이 요청된 상기 식별 번호와 현재 입출력(I/O)이 요청된 상기 식별 번호를 각각 x축과 y축으로 하여 그래프를 도시할 수 있다.
상기 그룹화부는 상기 x축과 y축의 시간 관계를 파악하고, 상기 시간 관계에 따라 상기 그룹을 형성할 수 있다.
상기 우선순위 결정부는 상기 그룹 내에 있는 상기 식별 번호가 호출되는 경우, 상기 그룹의 요소에 상기 우선순위를 부여하여 캐시(Cache) 또는 프리페치(Prefetch)에 남기도록 할 수 있다.
본 발명의 실시예들에 따르면 프로세서가 디스크에 I/O 요청 시 식별 번호를 기록하고, 기록을 바탕으로 블록 간의 시간적 관계를 파악하여 캐시 정책에 반영함으로써, 히트율을 높일 수 있는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템을 제공할 수 있다.
또한, 본 발명이 이루고자 하는 기술적 과제는 요청되는 식별 번호를 순차적으로 기록하고 클러스터링하여 DM-Cache 정책으로 활용함으로써, 적은 오버헤드가 발생하되 SSD 캐시 히트율을 높일 수 있는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 하이브리드 하드디스크를 나타낸 도이다.
도 2는 본 발명의 일 실시예에 따른 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법을 나타내는 순서도이다.
도 3은 본 발명의 일 실시예에 따른 요청된 식별 번호의 순서에 따라 그래프를 도시한 예를 나타낸 도이다.
도 4는 본 발명의 일 실시예에 따른 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 시스템을 나타내는 블록도이다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명은 프로세서가 디스크에 I/O 요청 시 구분자로 활용하는 식별 번호를 기록하고, 기록을 바탕으로 블록 간의 시간적 선후 관계에 따른 시간적 의미를 유추하며, 캐시 정책에 반영하기 위한 기법에 관한 것으로, 스토리지 장치를 내장한 대부분의 기기와 관련되어 있으며, 일반 사용자의 랩탑 급 이상, 그리고 사업자의 서버에 적용할 수 있는 기법이다. 즉, 속도가 다른 두 가지 이상의 스토리지 장치를 내장한 제품인 랩탑, 태블릿, 데스크탑, 서버, 등에 적용이 가능하고, 나아가 디스크 고속화 알고리즘이 적용된 모든 컴퓨터에 적용이 가능하다.
도 1은 본 발명의 일 실시예에 따른 하이브리드 하드디스크를 나타낸 도이다.
도 1을 참조하면, 하이브리드 하드디스크(100)는 SSD(Solid State Drive)를 비휘발성 캐시(110)로 사용하고, 대용량의 HDD(Hard Disk Drive)(120)를 하위 저장장치로 사용할 수 있다.
컴퓨터 등의 프로세서 장치를 사용하는 사람에게 최적화된 캐시 정책을 제안하기 위해 사용자가 요청하는 디스크 요청을 기록할 수 있다. 이때, 모든 파일 시스템은 각 파일을 구분하기 위해 식별 번호를 가질 수 있으며, 식별 번호는 예를 들어 아이노드(inode) 번호 또는 블록(block) 번호 등을 사용할 수 있다. 그리고, 이러한 식별 번호를 기록하여 사용자 요청의 관련성을 유추할 수 있다. 이와 같이, 사용자 맞춤형 정책으로 캐시를 운영한다면 캐시 히트율을 높일 수 있다.
그리고, 프로세서의 요청을 기록하는 방법은 최대한 간단한 방법을 선택하는 것이 바람직하다. 디스크의 요청이 몇 ms(밀리 초) 내에 처리되기 때문에 복잡한 연산은 오히려 큰 오버헤드를 가져올 수 있기 때문이다. 그러면서도, 비정형 데이터로부터 의미 있는 데이터를 추출할 수 있는 것이 좋다. 여기서, 비정형 데이터는 식별 번호와 단순한 요청순서의 나열이다. 또한, 의미 있는 데이터는 특정 블록(block)간 또는 특정 파일간 동일한 어플리케이션에서 호출되거나, 동시에 호출되는 관계를 가져, 비정형 데이터로부터 이를 추출할 수 있다.
이를 통해, 캐시에 더 오래 보관해야 하는 데이터나 가장 필요 없는 데이터를 분류할 수 있으며, 나아가 프리페칭이 가능하다. 이에 대한 더 구체적인 기록 방법은 아래에서 계속 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법을 나타내는 순서도이다.
단계(210)에서, 프로세서가 디스크에 입출력(I/O)의 요청 시, 프로세서로부터 입출력이 요청되는 식별 번호를 순차적으로 기록할 수 있다. 다시 말하면, 컴퓨터 또는 프로세스가 디스크에 입출력(I/O)을 요청 할 경우에 식별 번호로 블록(block)을 구별할 수 있다. 이때, 식별 번호를 가지고 있다면, 파일을 구분할 수 있거나 블록을 구분할 수 있으므로 식별 번호는 논리 주소, 물리 주소 등 상관 없다. 즉, 식별 번호는 아이노드(inode) 번호, 블록(block) 번호 등이 될 수 있다.
단계(220)에서, 디스크는 기록한 식별 번호의 순서에 따라 데이터를 시각화하여 나타낼 수 있다. 다시 말하면, 기록한 식별 번호 순서에 따라 그래프를 도시할 수 있는데, 과거에 입출력(I/O)이 요청된 식별 번호를 x축으로 하며, 현재 입출력(I/O)이 요청된 식별 번호를 각각 y축으로 하여 그래프를 도시할 수 있다. 이때, 과거에 입출력(I/O)이 요청된 식별 번호를 y축으로 하며, 현재 입출력(I/O)이 요청된 식별 번호를 각각 x축으로 하여 그래프를 도시하는 것도 가능하다.
단계(230)에서, 도시된 그래프의 데이터를 클러스터링(Clustering)하여 그룹을 형성할 수 있다. 다시 말하면, 도시된 그래프는 x축과 y축간의 시간 관계가 생기는데, 비슷한 시간에 요청한 식별 번호끼리 뭉치거나, 서로를 가리키는 모습을 보이는 것이다. 이에 따라, 클러스터링(Clustering) 기법을 이용해 그룹을 만들 수 있다. 여기서, 클러스터링(Clustering)은 유사성 등의 개념에 기초하여 데이터를 몇몇의 그룹으로 분류하는 방법이다.
이처럼, x축과 y축의 시간 관계를 파악하고, 과거에 입출력(I/O)이 요청된 식별 번호와 현재 입출력(I/O)이 요청된 식별 번호의 시간 관계에 따라 일정 기준을 정하여 그룹을 형성할 수 있는 것이다.
단계(240)에서, 그룹에 우선순위를 부여할 수 있다. 다시 말하면, 그룹 내에 있는 상기 식별 번호가 호출되는 경우에, 상기 그룹의 요소에 상기 우선순위를 부여하여 캐시(Cache) 또는 프리페치(Prefetch)에 남기도록 할 수 있다. 만약, 그룹 안에 있는 요청이 호출되고 있다면 그 그룹의 요소들은 전부 높은 우선순위를 가지고 캐시에 남아있도록 유도하며, 한편 그렇지 않은 요소들은 희생 당할 확률이 높아지게 될 수 있다.
이와 같이, 요청되는 식별 번호의 순서에 따라 그래프를 도시하고, 그래프의 점 등을 클러스터링(Clustering)하여 그룹을 형성할 수 있으며, 그룹에 우선순위를 부여하여 계속 보관할 수 있다. 한편, 우선순위가 낮은 데이터는 캐시 등의 용량에 따라 희생될 수 있다. 즉, 이전과 현재의 시간적 의미를 이용하여 캐시 히트율을 높일 수 있다. 더 나아가, 데이터를 시각화하여 그래프를 도시할 때 벡터를 이용하여 점들을 도시할 수도 있다.
도 3은 본 발명의 일 실시예에 따른 요청된 식별 번호의 순서에 따라 그래프를 도시한 예를 나타낸 도이다.
도 3을 참조하면, 좌측에 나열된 숫자가 아이노드(inode) 번호, 블록(block) 번호 등의 요청된 식별 번호이고, 과거에 입출력(I/O)이 요청된 식별 번호를 x축으로 하며, 현재 입출력(I/O)이 요청된 식별 번호를 각각 y축으로 하여 기록한 식별 번호 순서에 따라 그래프를 도시할 수 있다. 즉, 요청된 식별 번호의 순서에 따라 점으로 그래프에 도시하였고, 이러한 점을 파악하여 과거의 식별 번호와 현재의 식별 번호의 시간적 선후 관계를 유추할 수 있다.
여기서, 두 개의 어플리케이션이 실행되었다고 가정하였으며, 이는 그래프에서 두 구간에 점이 몰려 있는 것을 확인할 수 있다. 이와 같이, 어플리케이션에서 요청하는 식별 번호만으로 시간적 선후 관계에 따른 시간적 의미를 알 수 있으며, 이를 캐시 정책에 적용하여 높은 히트율을 기록할 수 있다.
한편, 버퍼 메모리나 디스크 캐시 등에서는 중앙처리장치와 해당 기억장치 사이에 고속 메모리를 설치함으로써, 외견상 기억장치의 고속화를 꾀하고 있다. 이 때, 해당 버퍼에 기억장치와 동일한 데이터가 존재하지 않으면 종래대로 버퍼보다 저속의 기억장치에 액세스하는 것으로 된다. 즉, 히트율(Hit Rate)이란 버퍼상에 그 해당하는 데이터가 존재하는 비율을 말하며, 히트율이 높을수록 버퍼로서의 기능은 좋으며, 외견상의 고속화는 큰 것이다.
도 4는 본 발명의 일 실시예에 따른 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 시스템을 나타내는 블록도이다.
도 4를 참조하면, 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 시스템(400)은 식별 번호 기록부(410), 데이터 시각화부(420), 그룹화부(430), 및 우선순위 결정부(440)를 포함할 수 있다.
식별 번호 기록부(410)는 프로세서가 디스크에 입출력(I/O)의 요청 시, 프로세서로부터 입출력이 요청되는 식별 번호를 순차적으로 기록할 수 있다. 이때, 식별 번호를 가지고 있다면, 파일을 구분할 수 있거나 블록을 구분할 수 있으므로 식별 번호는 논리 주소, 물리 주소 등 상관 없다. 즉, 식별 번호는 아이노드(inode) 번호, 블록(block) 번호 등이 될 수 있다.
데이터 시각화부(420)는 식별 번호 기록부(410)에서 기록한 식별 번호의 순서에 따라 데이터를 시각화하여 나타낼 수 있다. 다시 말하면, 기록한 식별 번호 순서에 따라 그래프를 도시할 수 있는데, 과거에 입출력(I/O)이 요청된 식별 번호를 x축으로 하며, 현재 입출력(I/O)이 요청된 식별 번호를 각각 y축으로 하여 그래프를 도시할 수 있다. 이때, 과거에 입출력(I/O)이 요청된 식별 번호를 y축으로 하며, 현재 입출력(I/O)이 요청된 식별 번호를 각각 x축으로 하여 그래프를 도시하는 것도 가능하다. 한편, 데이터 시각화부(420)에서 그래프를 도시할 때 벡터를 이용하여 점들을 도시할 수도 있다.
그룹화부(430)는 데이터 시각화부(420)에서 도시된 그래프의 데이터를 클러스터링(Clustering)하여 그룹을 형성할 수 있다. 다시 말하면, 구성된 그래프에서 x축과 y축의 시간 관계를 파악하고, 과거에 입출력(I/O)이 요청된 식별 번호와 현재 입출력(I/O)이 요청된 식별 번호의 시간 관계에 따라 일정 기준을 정하여 그룹을 형성할 수 있는 것이다.
우선순위 결정부(440)는 그룹화부(430)에서 형성된 그룹에 우선순위를 부여할 수 있다. 다시 말하면, 그룹 내에 있는 상기 식별 번호가 호출되는 경우에, 상기 그룹의 요소에 상기 우선순위를 부여하여 캐시(Cache) 또는 프리페치(Prefetch)에 남기도록 할 수 있다. 만약, 그룹 안에 있는 요청이 호출되고 있다면 그 그룹의 요소들은 전부 높은 우선순위를 가지고 캐시에 남아있도록 유도하며, 한편 그렇지 않은 요소들은 희생 당할 확률이 높아지게 될 수 있다.
이와 같이, 프로세서가 디스크에 I/O 요청 시 식별 번호를 기록하고, 기록을 바탕으로 블록 간의 시간적 선후 관계를 파악하여 캐시 정책에 반영함으로써, 캐시 히트율을 높일 수 있다.
따라서, 이 알고리즘은 간단하면서 의미를 추출할 수 있기 때문에 높은 캐시 히트를 달성할 수 있다. 그리고, 이를 DM-Cache 정책으로 활용한다면 적은 오버헤드가 발생하되 SSD 캐시 히트율을 높일 수 있다. 또한, 이러한 알고리즘은 캐시뿐만 아니라, 프리페치(Prefetch)에도 적용이 가능하다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (10)

  1. 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법에 있어서,
    프로세서로부터 입출력(I/O)이 요청되는 상기 식별 번호를 순차적으로 기록하는 단계;
    기록한 상기 식별 번호의 순서에 따라 그래프를 도시하는 단계;
    상기 그래프를 클러스터링(Clustering)하여 그룹을 형성하는 단계; 및
    상기 그룹에 우선순위를 부여하는 단계
    를 포함하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법.
  2. 제1항에 있어서,
    상기 식별 번호는
    아이노드(inode) 번호 또는 블록(block) 번호이며, 상기 식별 번호를 통해 파일 또는 상기 블록을 구분 가능한 것
    을 특징으로 하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법.
  3. 제1항에 있어서,
    상기 식별 번호의 순서에 따라 그래프를 도시하는 단계는
    과거에 입출력(I/O)이 요청된 상기 식별 번호와 현재 입출력(I/O)이 요청된 상기 식별 번호를 각각 x축과 y축으로 하여 그래프를 도시하는 것
    을 특징으로 하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법.
  4. 제3항에 있어서,
    상기 그래프를 클러스터링(Clustering)하여 그룹을 형성하는 단계는
    상기 x축과 y축의 시간 관계를 파악하고, 상기 시간 관계에 따라 상기 그룹을 형성하는 것
    을 특징으로 하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법.
  5. 제1항에 있어서,
    상기 그룹에 우선순위를 부여하는 단계는
    상기 그룹 내에 있는 상기 식별 번호가 호출되는 경우, 상기 그룹의 요소에 상기 우선순위를 부여하여 캐시(Cache) 또는 프리페치(Prefetch)에 보관하는 것
    을 특징으로 하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법.
  6. 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 시스템에 있어서,
    프로세서로부터 입출력(I/O)이 요청되는 상기 식별 번호를 순차적으로 기록하는 식별 번호 기록부;
    상기 식별 번호 기록부에서 기록한 상기 식별 번호의 순서에 따라 그래프를 도시하는 데이터 시각화부;
    도시된 상기 그래프를 클러스터링(Clustering)하여 그룹을 형성하는 그룹화부; 및
    상기 그룹에 우선순위를 부여하는 우선순위 결정부
    를 포함하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 시스템.
  7. 제6항에 있어서,
    상기 식별 번호는
    아이노드(inode) 번호 또는 블록(block) 번호이며, 상기 식별 번호를 통해 파일 또는 상기 블록을 구분 가능한 것
    을 특징으로 하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 시스템.
  8. 제6항에 있어서,
    상기 데이터 시각화부는
    과거에 입출력(I/O)이 요청된 상기 식별 번호와 현재 입출력(I/O)이 요청된 상기 식별 번호를 각각 x축과 y축으로 하여 그래프를 도시하는 것
    을 특징으로 하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 시스템.
  9. 제8항에 있어서,
    상기 그룹화부는
    상기 x축과 y축의 시간 관계를 파악하고, 상기 시간 관계에 따라 상기 그룹을 형성하는 것
    을 특징으로 하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 시스템.
  10. 제6항에 있어서,
    상기 우선순위 결정부는
    상기 그룹 내에 있는 상기 식별 번호가 호출되는 경우, 상기 그룹의 요소에 상기 우선순위를 부여하여 캐시(Cache) 또는 프리페치(Prefetch)에 남기는 것
    을 특징으로 하는 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 시스템.
KR1020140094086A 2014-07-24 2014-07-24 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템 KR101523469B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140094086A KR101523469B1 (ko) 2014-07-24 2014-07-24 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140094086A KR101523469B1 (ko) 2014-07-24 2014-07-24 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101523469B1 true KR101523469B1 (ko) 2015-05-29

Family

ID=53395638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140094086A KR101523469B1 (ko) 2014-07-24 2014-07-24 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101523469B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010085568A (ko) * 2000-02-24 2001-09-07 포만 제프리 엘 데이터 처리 방법, 데이터 처리 시스템, 및 데이터 처리컴퓨터 프로그램 제품

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010085568A (ko) * 2000-02-24 2001-09-07 포만 제프리 엘 데이터 처리 방법, 데이터 처리 시스템, 및 데이터 처리컴퓨터 프로그램 제품

Similar Documents

Publication Publication Date Title
US9934148B2 (en) Memory module with embedded access metadata
US10108552B2 (en) Using cache lists for processors to determine tracks to demote from a cache
US10318156B2 (en) Invoking input/output (I/O) threads on processors to demote tracks from a cache
US9760493B1 (en) System and methods of a CPU-efficient cache replacement algorithm
US9361032B2 (en) Management of server cache storage space
US10642755B2 (en) Invoking demote threads on processors to demote tracks from a cache based on free cache segments
US20180018266A1 (en) Stride prefetcher for inconsistent strides
US9971689B2 (en) Invoking input/output (I/O) threads and demote threads on processors to demote tracks from a cache
US9658957B2 (en) Systems and methods for managing data input/output operations
CN104461735B (zh) 一种虚拟化场景下分配cpu资源的方法和装置
US9239682B2 (en) I/O hint framework for Server Flash Cache
US11036635B2 (en) Selecting resources to make available in local queues for processors to use
US9817754B2 (en) Flash memory management
US9569364B1 (en) Multiple history based micro partition prefetch optimization
US9563572B2 (en) Migrating buffer for direct memory access in a computer system
US11249914B2 (en) System and methods of an efficient cache algorithm in a hierarchical storage system
KR101523469B1 (ko) 식별 번호를 기록하여 블록 간의 시간적 선후 관계를 추출하는 캐시 방법 및 시스템
US9384135B2 (en) System and method of caching hinted data
US10809937B2 (en) Increasing the speed of data migration
US9069702B2 (en) Reducing read starvation
US20200348874A1 (en) Memory-fabric-based data-mover-enabled memory tiering system
KR101907007B1 (ko) 프로세스의 우선순위를 이용한 페이지 처리 방법 및 페이지 처리 장치
US11055218B2 (en) Apparatus and methods for accelerating tasks during storage caching/tiering in a computing environment

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee