KR101677372B1 - 디스크 블록 요청 예측 장치 및 방법 - Google Patents

디스크 블록 요청 예측 장치 및 방법 Download PDF

Info

Publication number
KR101677372B1
KR101677372B1 KR1020150082051A KR20150082051A KR101677372B1 KR 101677372 B1 KR101677372 B1 KR 101677372B1 KR 1020150082051 A KR1020150082051 A KR 1020150082051A KR 20150082051 A KR20150082051 A KR 20150082051A KR 101677372 B1 KR101677372 B1 KR 101677372B1
Authority
KR
South Korea
Prior art keywords
block
schema
request
schemas
module
Prior art date
Application number
KR1020150082051A
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 KR1020150082051A priority Critical patent/KR101677372B1/ko
Application granted granted Critical
Publication of KR101677372B1 publication Critical patent/KR101677372B1/ko

Links

Images

Classifications

    • G06F17/30132
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions

Landscapes

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

Abstract

본 발명의 일 실시예로써, 이전에 접근한 디스크의 블록을 나타내는 복수의 스키마를 저장하는 집단(population) 모듈; 프리페칭(prefetching) 또는 캐싱(caching) 요청에 따라, 복수의 스키마 중 적어도 하나의 스키마를 선택하고, 선택된 적어도 하나의 스키마가 나타내는 블록을 프리페칭 또는 캐싱하는 프리 로드 접근(pre-load access) 모듈; 및 블록 접근(block access) 요청에 따라 프리 로드 접근 모듈의 프리페칭 또는 캐싱을 요청하고, 프리 로드 접근 모듈에 의해 프리페칭 또는 캐싱된 블록에 접근하는 파일 시스템 모듈을 포함하는 것을 특징으로 하는 디스크 블록 요청 예측 장치가 개시된다.

Description

디스크 블록 요청 예측 장치 및 방법{APPARATUS AND METHOD FOR PREDICTING DISK BLOCK REQUEST}
본 발명은 디스크 블록 요청 예측 장치 및 방법에 관한 것이다. 더욱 상세하게는, 파일의 I/O(Input/Output) 성능 향상을 위해 디스크의 블록에 대한 액세스 요청을 예측하여 해당 디스크 블록을 메모리에 미리 로드(load)하는 장치 및 방법에 관한 것이다.
하드디스크의 경우 보통 7200 RPM (Revolutions per Minute)으로 회전하며, 최대 15,000 RPM까지 회전 속도가 올라가나, 고속의 RPM은 많은 열과 큰 진동을 유발하여 현실적으로 사용하기가 어렵다. 실례로 SSD(solid state disk)가 등장하면서 서버용 디스크로 제작되던 10,500 RPM의 하드디스크는 발열, 진동, 소음, 소비 전력 문제로 현재 수요가 없어지고 공급 또한 중단되는 상황이다.
SSD는 반도체를 이용하여 디스크를 구성한 것으로써, 하드디스크에 비해 진동, 소음, 소비 전력이 적으며, 빠른 처리 속도를 보인다. 그러나 운영체제 호환성, 반도체 수명 및 가격은 단점으로 지적 받는다. 특히, 하드디스크 대비 기가바이트(Giga bytes) 당 가격이 2배 이상 비싸기 때문에 대용량 서버를 구성하는 클라우드 시스템에서 주된 디스크로 사용하기는 TOC (Total of Costs) 관점에서 적합하지 않다.
하드디스크의 속도 향상의 한계를 극복하기 위해, 순차 접근이 빠른 하드디스크의 장점과 Native Command Queuing(NCQ)을 이용하여, 앞으로 읽을 것으로 예상되는 블록을 미리 읽는 프리페칭(prefetching)이나 소규모의 SSD를 캐시(cache)로 사용하는 SSD 캐시 기법이 사용되고 있다. 그러나 I/O 요청은 수 ms 단위로 이루어지기 때문에 복잡한 연산을 통한 예측 알고리즘은 사용할 수 없다.
본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치 및 방법은 적은 오버헤드(overhead)로 프리페칭 또는 캐싱을 수행하는 것을 목적으로 한다.
또한, 본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치 및 방법은 프리페칭 또는 캐싱할 블록을 간단한 방법으로 예측하는 것을 목적으로 한다.
본 발명의 일 실시예로서, 이전에 접근한 디스크의 블록을 나타내는 복수의 스키마를 저장하는 집단(population) 모듈; 프리페칭(prefetching) 또는 캐싱(caching) 요청에 따라, 복수의 스키마 중 적어도 하나의 스키마를 선택하고, 선택된 적어도 하나의 스키마가 나타내는 블록을 프리페칭 또는 캐싱하는 프리 로드 접근(pre-load access) 모듈; 및 블록 접근(block access) 요청에 따라 프리 로드 접근 모듈의 프리페칭 또는 캐싱을 요청하고, 프리 로드 접근 모듈에 의해 프리페칭 또는 캐싱된 블록에 접근하는 파일 시스템 모듈을 포함하는 것을 특징으로 하는 디스크 블록 요청 예측 장치가 제공될 수 있다.
프리 로드 접근 모듈은, 복수의 스키마 중 블록 접근 요청이 나타내는 블록을 나타내는 스키마를 선택할 수 있다.
디스크 블록 요청 예측 장치는, 프리페칭 또는 캐싱된 블록에 대한 정보 및 프리페칭 또는 캐싱 요청이 수신된 시간 정보를 저장하는 레코더(recorder) 모듈을 더 포함할 수 있다.
디스크 블록 요청 예측 장치는, 레코더 모듈에 저장된 정보를 기초로 신규 스키마를 생성하고, 복수의 스키마 중 일부를 신규 스키마로 대체하는 프리페칭/캐싱 분석 모듈을 더 포함할 수 있다.
프리페칭/캐싱 분석 모듈은, 생성된 신규 스키마의 교차 연산 및 변이 연산을 수행하고, 교차 연산 및 변이 연산이 수행된 신규 스키마와 집단 모듈에 저장된 복수의 스키마를 대치 연산시켜, 복수의 스키마 중 일부를 신규 스키마로 대체할 수 있다.
프리페칭/캐싱 분석 모듈은, 파일 시스템 모듈에 의해, 두 개 이상의 블록이 접근된 경우, 두 개 이상의 블록을 나타내는 하나의 신규 스키마를 생성할 수 있다.
프리페칭/캐싱 분석 모듈은, 디스크 블록 요청 예측 장치의 CPU가 유휴(idle) 상태인 경우, 신규 스키마를 생성할 수 있다.
복수의 스키마 각각은, 소정 개수의 비트의 집합으로서, 각각의 비트는 디스크의 블록을 나타낼 수 있다.
본 발명의 다른 실시예로서, 블록 접근 요청을 수신하는 단계; 블록 접근 요청에 기초하여, 이전에 접근한 디스크의 블록을 나타내는 복수의 스키마 중 적어도 하나의 스키마를 선택하는 단계; 선택된 적어도 하나의 스키마가 나타내는 블록을 프리페칭(prefetching) 또는 캐싱(caching)하는 단계; 및 프리페칭 또는 캐싱된 블록에 접근하는 단계를 포함하는 것을 특징으로 하는 디스크 블록 요청 예측 방법이 제공될 수 있다.
선택하는 단계는, 복수의 스키마 중 블록 접근 요청이 나타내는 블록을 나타내는 스키마를 선택하는 단계를 포함할 수 있다.
디스크 블록 요청 예측 방법은, 프리페칭 또는 캐싱된 블록에 대한 정보 및 프리페칭 또는 캐싱 요청이 수신된 시간 정보를 저장하는 단계를 더 포함할 수 있다.
디스크 블록 요청 예측 방법은, 저장된 프리페칭 또는 캐싱된 블록에 대한 정보 및 프리페칭 또는 캐싱 요청이 수신된 시간 정보를 기초로 신규 스키마를 생성하고, 복수의 스키마 중 일부를 신규 스키마로 대체하는 단계를 더 포함할 수 있다.
대체하는 단계는, 생성된 신규 스키마의 교차 연산 및 변이 연산을 수행하고, 교차 연산 및 변이 연산이 수행된 신규 스키마와 집단 모듈에 저장된 복수의 스키마를 대치 연산시켜, 복수의 스키마 중 일부를 신규 스키마로 대체하는 단계를 포함할 수 있다.
대체하는 단계는, 기 설정된 시간 간격 내에 두 개 이상의 블록이 프리페칭 또는 캐싱된 경우, 두 개 이상의 블록을 나타내는 하나의 신규 스키마를 생성하는 단계를 포함할 수 있다.
대체하는 단계는, 디스크 블록 요청 예측 장치의 CPU가 유휴(idle) 상태인 경우에 수행될 수 있다.
복수의 스키마 각각은, 소정 개수의 비트의 집합으로서, 각각의 비트는 디스크의 블록을 나타낼 수 있다.
한편, 본 발명의 일 실시예로써, 전술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공될 수 있다.
본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치 및 방법은 적은 오버헤드로 프리페칭 또는 캐싱을 수행할 수 있다.
또한, 본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치 및 방법은 프리페칭 또는 캐싱할 블록을 간단한 방법으로 예측할 수 있다.
도 1은 본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치의 구성을 도시하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치의 각 구성의 동작을 설명하기 위한 도면이다.
도 3은 복수의 스키마를 나타내는 예시적인 도면이다.
도 4는 신규 스키마를 나타내는 예시적인 도면이다.
도 5는 본 발명의 다른 실시예에 따른 디스크 블록 요청 예측 방법의 순서를 나타내는 도면이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 명세서 전체에서 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, "그 중간에 다른 소자를 사이에 두고" 연결되어 있는 경우도 포함한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치(100)의 구성을 도시하는 블록도이다.
도 1에 도시된 디스크 블록 요청 예측 장치(100)는 컴퓨터, 노트북, PDA, 스마트폰 또는 테블릿 PC 등을 포함하며, 구체적으로, 디스크 블록 요청 예측 장치(100)는 데이터를 저장하는 디스크와 디스크의 블록을 로드하는 메모리 및 파일의 I/O를 관리하는 CPU를 포함하는 기기라면 그 종류에 한정되지 않는다. 또는, 디스크 블록 요청 예측 장치(100)는 CPU 자체일 수도 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치(100)는 파일 시스템 모듈(110), 프리 로드 접근(pre-load access) 모듈(130) 및 집단 모듈(150)을 포함한다.
파일 시스템 모듈(110)은 블록 접근(block access) 요청을 수신하고, 수신된 블록 접근 요청에 따라 프리 로드 접근 모듈(130)로 프리페칭 또는 캐싱 요청을 전달한다. 블록 접근 요청은 사용자에 의하여 어플리케이션으로부터 수신될 수 있다. 블록 접근 요청은 파일 시스템 모듈(110)이 접근하여야 하는 디스크의 블록을 지정할 수 있다. 어플리케이션은 본 발명의 일 실시예에 따라 디스크 블록을 프리페칭 또는 캐싱하기 위하여 사용자 등으로부터 제어 신호(예컨대, 명령)를 인가받기 위한 수단 또는 사용자로부터 인가되어 미리 저장된 제어 신호에 따라 이하의 각 모듈의 동작을 제어하기 위한 수단일 수 있다.
또한, 파일 시스템 모듈(110)은 후술하는 프리 로드 접근 모듈(130)에 의해 프리페칭 또는 캐싱된 블록에 접근함으로써, 어플리케이션의 블록 접근 요청에 대해 응답할 수 있다. 본 명세서에서 "블록에 대한 접근(access)"은 블록에 저장된 파일에 대한 읽기(read) 또는 쓰기(write)를 지칭할 수 있다.
프리 로드 접근 모듈(130)은 파일 시스템 모듈(110)로부터의 프리페칭 또는 캐싱 요청에 따라 집단 모듈(150)에 저장된 복수의 스키마(152) 중 적어도 하나의 스키마(152)를 선택하고, 선택된 적어도 하나의 스키마(152)가 나타내는 블록을 프리페칭 또는 캐싱할 수 있다.
집단 모듈(150)은 복수의 스키마(152)를 저장하는데, 각각의 스키마(152)는 파일 시스템 모듈(110)이 이전에 접근한 디스크의 블록을 나타낸다.
이하에서는, 도 2 내지 도 4를 참조하여, 본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치(100)의 각 구성의 동작을 보다 상세히 설명한다.
도 2는 본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치(100)의 각 구성의 동작을 설명하기 위한 도면이다. 또한, 도 3은 복수의 스키마(152a, 152b, 152c, 152d, 152e)를 나타내는 예시적인 도면이고, 도 4는 신규 스키마(400)를 나타내는 예시적인 도면이다.
도 2에 도시된 디스크 블록 요청 예측 장치(100)는 파일 시스템 모듈(110), 프리 로드 접근 모듈(130) 및 집단 모듈(150)을 포함하며, 또한, 레코더 모듈(170) 및 프리페칭/캐싱 분석 모듈(190)을 더 포함할 수 있다.
본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치(100)는 파일 시스템 모듈(110), 예를 들어, 리눅스 VFS(virtual file system)을 수정하지는 않는다. 종래 기술에서 파일 시스템 모듈(110)이 파일에 접근하는 순서를 보면, 어플리케이션이 블록 접근 요청 함수(예컨대, read())를 호출하고, 블록 접근 요청 함수(read())는 시스템 콜 함수(예컨대, sys_read())를 실행한다. 시스템 콜 함수(sys_read())는 다시 bio() 함수를 거쳐 디스크(200)에 요청을 보내게 된다. 디스크(200)가 요청에 응답하면, 역 순으로 응답을 전달한다.
본 발명의 일 실시예에 따르면, 시스템 콜 함수(sys_read())를 포함한 그 다음 단계를 수정하지 않음으로써, 기존 VFS를 수정하지 않는다. 단, VFS의 프리페칭/캐싱 요청 함수(예컨대, pre_load())를 구현하여 시스템 콜 함수(sys_read())가 실행되기 전에 실행하도록 한다.
파일 시스템 모듈(110)은 프리페칭/캐싱 요청 함수(pre_load())의 실행을 통해 프리 로드 접근 모듈(130)로 프리페칭 또는 캐싱 요청을 전달한다.
프리 로드 접근 모듈(130)은 프리페칭 또는 캐싱의 효율을 높이고자 하는 함수로서, 유전 알고리즘의 선택 연산이 실행되는 부분이다.
프리 로드 접근 모듈(130)은 어플리케이션의 블록 접근 요청이 나타내는 블록 넘버를 기준으로 집단 모듈(150)에 저장된 복수의 스키마(152) 중 적어도 하나의 스키마(152)를 선택(Selection)하고, 선택된 적어도 하나의 스키마(152)를 분석(Analysis)하고, 프리페칭 또는 캐싱될 블록을 예측(Prediction)하여 해당 블록을 프리페칭(Prefetching) 또는 캐싱(caching)할 수 있다.
집단 모듈(150)은 복수의 스키마(152)를 저장하는데, 각각의 스키마(152)는 비트의 집합이며, 한 비트는 디스크(200)의 한 블록을 가리킨다. 예를 들어, 디스크(200)의 블록이 8개라면, 스키마(152)의 크기는 8 bits이다. 집단 모듈(150)은 빠른 성능을 위해 RAM으로 구현될 수도 있다. 집단 모듈(150)에 저장된 복수의 스키마(152)는 주기적으로나 필요시 비 휘발성 저장 장치에 백업되어, 재부팅되더라도 스키마(152)가 없어지지 않도록 할 수 있다.
블록의 크기는 디스크(200)에 접근하는 최소 크기로써, 디스크(200) 또는 파일 시스템에 따라 달라진다. 블록의 크기는 일반적인 PC에서는 512 bytes, 또는 4KB를 가지며, 서버 급에서는 64 MB도 가질 수 있다. 이는 시스템의 설정 및 사용자 설정에 따라 다를 수 있다.
각 스키마(152)는 파일 시스템 모듈(110)이 이전에 접근한 디스크(200)의 블록을 나타낼 수 있으며, 이는 후술하는 바와 같이, 프리페칭/캐싱 분석 모듈(190)에 의해 생성될 수 있다.
스키마(152)의 비트 값에 따라 블록에 접근하였는지 여부를 판단할 수 있다. 도 3은 8비트의 복수의 스키마(152a, 152b, 152c, 152d, 152e)를 도시하고 있으며, 도 3에 도시된 복수의 스키마(152a, 152b, 152c, 152d, 152e) 중 제 1 스키마(152a)와 같이, 4번째 비트가 1이면, 4번째 블록은 접근하였던 것이며, 6번째 비트가 1이면, 6번째 블록에 접근하였던 것이다.
또한, 도 3의 제 1 스키마(152a)와 같이, 4번째 비트와 6번째 비트가 모두 1이라는 것은, 4번째 블록과 6번째 블록에 대한 접근이 동시에 이루진 경우뿐만 아니라, 기 설정된 시간 간격 이내에 이루어 진 경우도 포함할 수 있다. 이때, 기 설정된 시간 간격은 디스크 블록 요청 예측 장치(100) 또는 사용자에 의해 설정될 수 있다.
프리 로드 접근 모듈(130)은 블록 접근 요청이 나타내는 블록을 나타내는 스키마(152)를 선택(Selection)한다. 예를 들어, 블록 접근 요청이 4번 블록을 나타내는 경우, 프리 로드 접근 모듈(130)은 도 3에 도시된 복수의 스키마(152a, 152b, 152c, 152d, 152e) 중 4번 비트가 1인 제 1 스키마(152a), 제 2 스키마(152b) 및 제 3 스키마(152c)를 선택할 수 있다. 구현예에 따라서는, 프리 로드 접근 모듈(130)은 제 1 스키마(152a), 제 2 스키마(152b) 및 제 3 스키마(152c) 중 적어도 하나의 스키마를 제외한 스키마만을 선택할 수도 있으며, 이는 사용자의 설정에 따라 달라질 수 있다.
예를 들어, 프리 로드 접근 모듈(130)이 제 1 스키마(152a)와 제 2 스키마(152b)를 최종 선택한 경우, 제 1 스키마(152a)의 4번째 비트와 6번째 비트, 제 2 스키마(152b)의 2번째 비트, 3번째 비트 및 4번째 비트가 모두 1이므로, 프리 로드 접근 모듈(130)은 2번째 블록, 3번째 블록, 4번째 블록 및 6번째 블록 모두를 프리페칭 또는 캐싱할 블록으로 예측(Prediction)할 수 있다.
프리페칭 또는 캐싱된 블록은 프리페칭 공간(예를 들어, 캐시)에 들어 있다가, 다음에 해당 블록의 접근이 요청되면, 디스크(200)를 거치지 않고 캐시에서 응답한다.
본 발명의 일 실시예에 따른 디스크 블록 요청 예측 방법은 프리페칭 또는 캐싱할 블록을 예측하는 데 있어, 스키마(152)의 비트를 비교하는 단순 연산을 수행함으로써, 적은 오버헤드로 프리페칭 또는 캐싱할 수 있다.
레코더 모듈(170)은 프리페칭 또는 캐싱된 블록에 대한 정보 및 프리페칭 또는 캐싱 요청이 수신된 시간 정보를 저장한다. 레코더 모듈(170)은 프리페칭 또는 캐싱된 블록에 대한 정보 및 프리페칭 또는 캐싱 요청이 수신된 시간 정보를 RAM에 저장할 수 있다.
프리페칭/캐싱 분석 모듈(190)은 레코더 모듈(170)이 저장한 정보를 기반으로 신규 스키마를 생성하고, 집단 모듈(150)에 저장된 복수의 스키마 중 일부를 신규 스키마로 대체한다. 예를 들어, 프리페칭/캐싱 분석 모듈(190)은 신규 스키마의 교차 연산 및 변이 연산을 수행하고, 교차 연산 및 변이 연산이 수행된 신규 스키마와 집단 모듈(150)에 저장된 복수의 스키마를 대치 연산시켜, 복수의 스키마 중 일부를 신규 스키마로 대체할 수 있다.
프리페칭/캐싱 분석 모듈(190)이 신규 스키마를 생성하는 데 있어, 프리 로드 접근 모듈(130)에 의해, 기 설정된 시간 간격 내에 두 개 이상의 블록이 프리페칭 또는 캐싱되거나, 파일 시스템 모듈(110)에 의해, 기 설정된 시간 간격 내에 두 개 이상의 블록이 접근된 경우, 상기 두 개 이상의 블록을 나타내는 하나의 신규 스키마를 생성할 수 있다. 전술한 예에서, 프리 로드 접근 모듈(130)이 도 3의 제 1 스키마(152a)와 제 2 스키마(152b)를 최종 선택하여, 2번째 블록, 3번째 블록, 4번째 블록 및 6번째 블록이 프리페칭 또는 캐싱된 경우, 프리페칭/캐싱 분석 모듈(190)은 도 4에 도시된 바와 같이, 2번째 비트, 3번째 비트, 4번째 비트 및 6번째 비트가 1인 신규 스키마(400)를 생성할 수 있다.
프리페칭/캐싱 분석 모듈(190)은 디스크 블록 요청 예측 장치(100)의 CPU가 유휴(idle) 상태인 경우에 한에, 신규 스키마의 생성 및 대체를 수행함으로써, 전체 시스템의 오버헤드를 감소시킬 수 있다.
도 5는 본 발명의 다른 실시예에 따른 디스크 블록 요청 예측 방법의 순서를 나타내는 도면이다. 도 5를 참조하면, 본 발명의 다른 실시예에 따른 디스크 블록 요청 예측 방법은 도 1에 도시된 디스크 블록 요청 예측 장치(100)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 1에 도시된 디스크 블록 요청 예측 장치(100)에 관하여 이상에서 기술된 내용은 도 5의 디스크 블록 요청 예측 방법에도 공통적으로 적용될 수 있다.
S510 단계에서, 디스크 블록 요청 예측 장치(100)는 블록 접근 요청을 수신할 수 있다. 블록 접근 요청은 어플리케이션으로부터 수신될 수 있으며, 블록 접근 요청은 디스크 블록 요청 예측 장치(100)가 접근할 디스크(200)의 블록을 지정할 수 있다.
S520 단계에서, 디스크 블록 요청 예측 장치(100)는 블록 접근 요청에 기초하여, 이전에 접근한 디스크(200)의 블록을 나타내는 복수의 스키마 중 적어도 하나의 스키마를 선택한다. 디스크 블록 요청 예측 장치(100)는 복수의 스키마 중 블록 접근 요청이 나타내는 블록을 나타내는 스키마를 선택할 수 있다.
S530 단계에서, 디스크 블록 요청 예측 장치(100)는 상기 선택된 적어도 하나의 스키마가 나타내는 블록을 프리페칭 또는 캐싱할 수 있다.
S540 단계에서, 디스크 블록 요청 예측 장치(100)는 프리페칭 또는 캐싱된 블록에 접근할 수 있다.
프리페칭 또는 캐싱된 블록에 대한 정보 및 프리페칭 또는 캐싱 요청이 수신된 시간 정보는 저장된 후, 신규 스키마의 생성 자료로 이용될 수 있다. 디스크 블록 요청 예측 장치(100)는 프리페칭 또는 캐싱된 블록에 대한 정보 및 프리페칭 또는 캐싱 요청이 수신된 시간 정보를 기초로 신규 스키마를 생성하고, 복수의 스키마 중 일부를 신규 스키마로 대체할 수도 있다. 이 때, 디스크 블록 요청 예측 장치(100)는 CPU가 유휴(idle) 상태인 경우에 한해, 신규 스키마를 생성하고, 복수의 스키마 중 일부를 신규 스키마로 대체할 수 있다.
본 발명의 일 실시예에 따른 디스크 블록 요청 예측 장치(100) 및 방법은 적은 오버헤드로 프리페칭 또는 캐싱을 수행할 수 있으며, 프리페칭 또는 캐싱할 블록을 간단한 방법으로 예측할 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 디스크 블록 요청 예측 장치
110: 파일 시스템 모듈
130: 프리 로드 접근 모듈
150: 집단 모듈
170: 레코더 모듈
190: 프리페칭/캐싱 분석 모듈

Claims (17)

  1. 복수의 스키마를 저장하는 집단(population) 모듈;
    프리페칭(prefetching) 또는 캐싱(caching) 요청에 따라, 상기 복수의 스키마 중 적어도 하나의 스키마를 선택하고, 선택된 스키마가 나타내는 블록을 프리페칭 또는 캐싱하는 프리 로드 접근(pre-load access) 모듈; 및
    블록 접근(block access) 요청에 따라 상기 프리 로드 접근 모듈의 프리페칭 또는 캐싱을 요청하고, 상기 프리 로드 접근 모듈에 의해 프리페칭 또는 캐싱된 블록에 접근하는 파일 시스템 모듈을 포함하고,
    상기 복수의 스키마 중 각각의 스키마에는 이전에 접근했던 디스크의 블록에 대한 정보가 포함되어 있고, 상기 각각의 스키마의 비트값은 상기 정보를 나타내는 것을 특징으로 하는 디스크 블록 요청 예측 장치.
  2. 제1항에 있어서,
    상기 프리 로드 접근 모듈은,
    상기 복수의 스키마 중 상기 블록 접근 요청이 나타내는 블록을 나타내는 스키마를 선택하는 것을 특징으로 하는 디스크 블록 요청 예측 장치.
  3. 제1항에 있어서,
    상기 디스크 블록 요청 예측 장치는,
    상기 프리페칭 또는 캐싱된 블록에 대한 정보 및 프리페칭 또는 캐싱 요청이 수신된 시간 정보를 저장하는 레코더(recorder) 모듈을 더 포함하는 것을 특징으로 하는 디스크 블록 요청 예측 장치.
  4. 제3항에 있어서,
    상기 디스크 블록 요청 예측 장치는,
    상기 레코더 모듈에 저장된 정보를 기초로 신규 스키마를 생성하고, 상기 복수의 스키마 중 일부를 상기 신규 스키마로 대체하는 프리페칭/캐싱 분석 모듈을 더 포함하는 것을 특징으로 하는 디스크 블록 요청 예측 장치.
  5. 제4항에 있어서,
    상기 프리페칭/캐싱 분석 모듈은,
    상기 생성된 신규 스키마의 교차 연산 및 변이 연산을 수행하고, 교차 연산 및 변이 연산이 수행된 신규 스키마와 상기 집단 모듈에 저장된 복수의 스키마를 대치 연산시켜, 상기 복수의 스키마 중 일부를 상기 신규 스키마로 대체하는 것을 특징으로 하는 디스크 블록 요청 예측 장치.
  6. 제4항에 있어서,
    상기 프리페칭/캐싱 분석 모듈은,
    상기 파일 시스템 모듈에 의해, 두 개 이상의 블록이 접근된 경우, 상기 두 개 이상의 블록을 나타내는 하나의 신규 스키마를 생성하는 것을 특징으로 하는 디스크 블록 요청 예측 장치.
  7. 제4항에 있어서,
    상기 프리페칭/캐싱 분석 모듈은,
    상기 디스크 블록 요청 예측 장치의 CPU가 유휴(idle) 상태인 경우, 상기 신규 스키마를 생성하는 것을 특징으로 하는 디스크 블록 요청 예측 장치.
  8. 제1항에 있어서,
    상기 복수의 스키마 중에서 각각의 스키마는,
    소정 개수의 비트들로 구성된 상기 비트들의 집합으로서, 각각의 비트는 디스크의 블록을 나타내는 것을 특징으로 하는 디스크 블록 요청 예측 장치.
  9. 디스크 블록 요청 예측 장치에 의한 디스크 블록 요청 예측 방법에 있어서,
    블록 접근 요청을 수신하는 단계;
    상기 블록 접근 요청에 기초하여, 복수의 스키마 중 적어도 하나의 스키마를 선택하는 단계;
    상기 선택된 스키마가 나타내는 블록을 프리페칭(prefetching) 또는 캐싱(caching)하는 단계; 및
    상기 프리페칭 또는 캐싱된 블록에 접근하는 단계를 포함하고,
    상기 복수의 스키마 중 각각의 스키마에는 이전에 접근했던 디스크의 블록에 대한 정보가 포함되어 있고, 상기 각각의 스키마의 비트값은 상기 정보를 나타내는 것을 특징으로 하는 디스크 블록 요청 예측 방법.
  10. 제9항에 있어서,
    상기 선택하는 단계는,
    상기 복수의 스키마 중 상기 블록 접근 요청이 나타내는 블록을 나타내는 스키마를 선택하는 단계를 포함하는 것을 특징으로 하는 디스크 블록 요청 예측 방법.
  11. 제9항에 있어서,
    상기 디스크 블록 요청 예측 방법은,
    상기 프리페칭 또는 캐싱된 블록에 대한 정보 및 프리페칭 또는 캐싱 요청이 수신된 시간 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 디스크 블록 요청 예측 방법.
  12. 제11항에 있어서,
    상기 디스크 블록 요청 예측 방법은,
    상기 저장된 프리페칭 또는 캐싱된 블록에 대한 정보 및 프리페칭 또는 캐싱 요청이 수신된 시간 정보를 기초로 신규 스키마를 생성하고, 상기 복수의 스키마 중 일부를 상기 신규 스키마로 대체하는 단계를 더 포함하는 것을 특징으로 하는 디스크 블록 요청 예측 방법.
  13. 제12항에 있어서,
    상기 대체하는 단계는,
    상기 생성된 신규 스키마의 교차 연산 및 변이 연산을 수행하고, 교차 연산 및 변이 연산이 수행된 신규 스키마와 집단 모듈에 저장된 복수의 스키마를 대치 연산시켜, 상기 복수의 스키마 중 일부를 상기 신규 스키마로 대체하는 단계를 포함하는 것을 특징으로 하는 디스크 블록 요청 예측 방법.
  14. 제12항에 있어서,
    상기 대체하는 단계는,
    기 설정된 시간 간격 내에 두 개 이상의 블록이 프리페칭 또는 캐싱된 경우, 상기 두 개 이상의 블록을 나타내는 하나의 신규 스키마를 생성하는 단계를 포함하는 것을 특징으로 하는 디스크 블록 요청 예측 방법.
  15. 제12항에 있어서,
    상기 대체하는 단계는,
    상기 디스크 블록 요청 예측 장치의 CPU가 유휴(idle) 상태인 경우에 수행되는 것을 특징으로 하는 디스크 블록 요청 예측 방법.
  16. 제9항에 있어서,
    상기 복수의 스키마 중에서 각각의 스키마는,
    소정 개수의 비트들로 구성된 상기 비트들의 집합으로서, 각각의 비트는 디스크의 블록을 나타내는 것을 특징으로 하는 디스크 블록 요청 예측 방법.
  17. 제9항 내지 제16항 중 어느 한 항의 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.

KR1020150082051A 2015-06-10 2015-06-10 디스크 블록 요청 예측 장치 및 방법 KR101677372B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150082051A KR101677372B1 (ko) 2015-06-10 2015-06-10 디스크 블록 요청 예측 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150082051A KR101677372B1 (ko) 2015-06-10 2015-06-10 디스크 블록 요청 예측 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101677372B1 true KR101677372B1 (ko) 2016-11-17

Family

ID=57542149

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150082051A KR101677372B1 (ko) 2015-06-10 2015-06-10 디스크 블록 요청 예측 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101677372B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060092858A (ko) * 2004-10-15 2006-08-23 마이크로소프트 코포레이션 데이터 구조에 대한 스키마 데이터의 매핑 방법 및 시스템
KR20120116772A (ko) * 2011-04-13 2012-10-23 주식회사 케이티 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060092858A (ko) * 2004-10-15 2006-08-23 마이크로소프트 코포레이션 데이터 구조에 대한 스키마 데이터의 매핑 방법 및 시스템
KR20120116772A (ko) * 2011-04-13 2012-10-23 주식회사 케이티 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법

Similar Documents

Publication Publication Date Title
KR102510384B1 (ko) 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법
EP3118745B1 (en) A heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US8595451B2 (en) Managing a storage cache utilizing externally assigned cache priority tags
US9996542B2 (en) Cache management in a computerized system
US9164676B2 (en) Storing multi-stream non-linear access patterns in a flash based file-system
US9817765B2 (en) Dynamic hierarchical memory cache awareness within a storage system
US9798655B2 (en) Managing a cache on storage devices supporting compression
US7383392B2 (en) Performing read-ahead operation for a direct input/output request
JP2012517644A (ja) 高速記憶装置をキャッシュとして使用するストレージシステム
US10228860B2 (en) Storage optimization based I/O pattern modeling
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
US20180349287A1 (en) Persistent Storage Device Information Cache
US20140129665A1 (en) Dynamic data prefetching
US20180024742A1 (en) Storage media performance management
KR20170002866A (ko) 분산 환경에서 사용자 애플리케이션의 액세스 특성에 따른 적응형 캐시 관리 방법
CN105574008B (zh) 应用于分布式文件系统的任务调度方法和设备
US20120331235A1 (en) Memory management apparatus, memory management method, control program, and recording medium
US11221770B2 (en) Providing a dynamic random-access memory cache as second type memory
US11132128B2 (en) Systems and methods for data placement in container-based storage systems
KR101677372B1 (ko) 디스크 블록 요청 예측 장치 및 방법
KR102119832B1 (ko) 애플리케이션들의 가속화된 실행을 위한 방법 및 디바이스
US10055212B2 (en) Evolving streaming installation of software applications
JP2022046413A (ja) 記憶デバイスのための改良された先読み能力
US11914527B2 (en) Providing a dynamic random-access memory cache as second type memory per application process
US20210263648A1 (en) Method for managing performance of logical disk and storage array

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant