KR101897370B1 - Method and apparatus for replace page - Google Patents

Method and apparatus for replace page Download PDF

Info

Publication number
KR101897370B1
KR101897370B1 KR1020160177048A KR20160177048A KR101897370B1 KR 101897370 B1 KR101897370 B1 KR 101897370B1 KR 1020160177048 A KR1020160177048 A KR 1020160177048A KR 20160177048 A KR20160177048 A KR 20160177048A KR 101897370 B1 KR101897370 B1 KR 101897370B1
Authority
KR
South Korea
Prior art keywords
page
memory
replacement
rate
pages
Prior art date
Application number
KR1020160177048A
Other languages
Korean (ko)
Other versions
KR20180073324A (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 KR1020160177048A priority Critical patent/KR101897370B1/en
Publication of KR20180073324A publication Critical patent/KR20180073324A/en
Application granted granted Critical
Publication of KR101897370B1 publication Critical patent/KR101897370B1/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Abstract

페이지 교체 방법 및 페이지 교체 장치이 개시된다. 개시된 페이지 교체 방법은 스토리지 쓰기 발생량 및 페이지 부재율(page fault rate)을 고려하여 메모리에 포함된 복수의 후보 페이지들 각각의 교체 유보값(replacement deferring value)을 결정하고, 교체 유보값을 고려하여 후보 페이지들 중 메모리에서 교체될 희생 페이지를 선택한다. 이 때, 교체 유보값은 더티 서브 페이지들의 개수 및 시스템의 성능 상황 중 적어도 하나에 기초하여 계산될 수 있다.A page replacement method and a page replacement apparatus are disclosed. The disclosed page replacement method determines a replacement deferring value of each of a plurality of candidate pages included in a memory in consideration of a storage write generation amount and a page fault rate, Select a page of pages to be replaced in memory. At this time, the replacement reservation value may be calculated based on at least one of the number of dirty sub-pages and the performance status of the system.

Description

페이지 교체 방법 및 페이지 교체 장치{METHOD AND APPARATUS FOR REPLACE PAGE}[0001] METHOD AND APPARATUS FOR REPLACE PAGE [0002]

아래의 설명은 페이지 교체 방법 및 페이지 교체 장치에 관한 것으로, 보다 구체적으로는 스토리지 쓰기 발생량 및 페이지 부재율을 고려하여 결정된 교체 유보값에 기초하여 희생 페이지를 선택하는 방법 및 장치에 관한 것이다.The following description relates to a page replacement method and a page replacement apparatus, and more particularly, to a method and apparatus for selecting a sacrifice page based on a replacement reserve value determined in consideration of a storage write generation amount and a page failure rate.

페이지 교체 정책은 페이지의 과거 참조 횟수, 참조 시점 페이지의 dirty 유무로 페이지 캐시에 포함된 페이지들의 방출 순서를 결정한다. 즉, 페이지 캐시에서 페이지의 우선순위는 페이지에 포함된 데이터의 변경이 있는지 판단하는 페이지 dirty 유무, 해당 페이지가 프로세스로부터 몇 번 참조되었는지를 나타내는 페이지 참조 횟수 및/또는 최근에 참조되었는지 여부를 기반으로 희생 페이지를 선정하게 된다.The page replacement policy determines the order of release of the pages included in the page cache, based on the number of past references to the page and whether or not the reference time page is dirty. That is, the priority of a page in the page cache is based on whether the page is dirty to determine whether there is a change in the data contained in the page, the number of page references indicating how many times the page has been referenced from the process, and / The victim page is selected.

이러한 페이지 교체 정책은 하드 디스크 드라이브(HDD; Hard Disk Drive)에 기반하는데, 이러한 하드 디스크 드라이브는 읽기 속도와 쓰기 속도 간의 차이가 크지 않는다. 다만, 최근 쓰기 속도가 읽기 속도보다 5~10배 정도 느린 스토리지가 제공됨에 따라 새로운 페이지 교체 정책이 요구되는 상황이다.Such a page replacement policy is based on a hard disk drive (HDD), and the difference between the read speed and the write speed is small. However, a new page replacement policy is required as recent write speeds are 5 to 10 times slower than read speeds.

스토리지 쓰기 발생량과 페이지 부재율에 기초하여 희생 페이지를 선택함으로써, 읽기 속도보다 느린 쓰기 속도를 가진 스토리지에 적합한 새로운 페이지 교체 알고리즘을 제공할 수 있다.By selecting a sacrifice page based on the amount of storage writes and the rate of page absent, a new page replacement algorithm can be provided that is suitable for storage with a write rate slower than the read rate.

더티 서브 페이지의 개수에 기초한 스토리지 쓰기 발생량을 고려하여 희생 페이지를 선택함으로써, 읽기 속도보다 느린 쓰기 속도를 가진 스토리지에서 발생하는 쓰기 트래픽을 줄일 수 있다.By choosing the sacrifice page based on the number of dirty subpages and the amount of storage writes, the write traffic on storage with slower write speeds can be reduced.

시스템의 성능 상황을 고려하여 희생 페이지를 선택함으로써, 시스템의 성능 상황에 따라 동적으로 희생 페이지를 선택할 수 있다.By selecting the sacrifice page in consideration of the performance status of the system, the sacrifice page can be dynamically selected according to the performance condition of the system.

일실시예에 따른 페이지 교체 방법은 스토리지 쓰기 발생량 및 페이지 부재율(page fault rate)을 고려하여 메모리에 포함된 복수의 후보 페이지들 각각의 교체 유보값(replacement deferring value)을 결정하는 단계; 및 상기 교체 유보값을 고려하여 상기 후보 페이지들 중 상기 메모리에서 교체될 희생 페이지를 선택하는 단계를 포함한다.A page replacement method according to an exemplary embodiment includes determining a replacement deferring value of each of a plurality of candidate pages included in a memory in consideration of a storage write generation amount and a page fault rate; And selecting a sacrificial page to be replaced in the memory among the candidate pages considering the replacement reserve value.

일실시예에 따른 페이지 교체 방법에서 상기 교체 유보값을 결정하는 단계는, 상기 후보 페이지들 각각을 구성하는 복수의 서브 페이지들 중 상기 스토리지 쓰기 발생량과 관련된 더티 서브 페이지의 개수를 결정하는 단계; 상기 페이지 부재율과 관련된 시스템의 성능 상황을 판단하는 단계; 및 상기 더티 서브 페이지들의 개수 및 시스템의 성능 상황 중 적어도 하나에 기초하여 상기 교체 유보값을 계산하는 단계를 포함한다.In the page replacement method according to an exemplary embodiment, the step of determining the replacement reserve value may include: determining a number of dirty sub pages related to the storage write amount among a plurality of sub pages constituting each of the candidate pages; Determining a performance condition of the system related to the page percentage; And calculating the replacement reservation value based on at least one of the number of the dirty sub-pages and the performance status of the system.

일실시예에 따른 페이지 교체 방법에서 상기 더티 서브 페이지는, 상기 복수의 서브 페이지들 중 메모리에 반입(entering)된 이후에 수정된 서브 페이지일 수 있다.In the page replacement method according to an exemplary embodiment, the dirty subpage may be a subpage modified after being entered into the memory among the plurality of subpages.

일실시예에 따른 페이지 교체 방법에서 상기 시스템의 성능 상황은, 상기 메모리의 용량(capacity) 및 상기 메모리에 페이지를 요청하는 프로세서의 성능 중요도 중 적어도 하나에 기초하여 결정될 수 있다.In a page replacement method according to an embodiment, the performance status of the system may be determined based on at least one of a capacity of the memory and a performance importance of a processor requesting a page in the memory.

일실시예에 따른 페이지 교체 방법에서 상기 시스템의 성능 상황은, 상기 메모리의 용량이 변동(vary)됨에 따라 발생하는 상기 메모리에 대한 페이지 부재율의 증감에 기초하여 결정될 수 있다.In a page replacement method according to an embodiment, the performance status of the system can be determined based on an increase or decrease in the rate of page failure for the memory, which occurs as the capacity of the memory varies.

일실시예에 따른 페이지 교체 방법에서 상기 교체 유보값을 계산하는 단계는, 상기 더티 서브 페이지의 개수가 증가할수록 교체 유보 값을 높게 계산할 수 있다.In the page replacement method according to an embodiment, the step of calculating the replacement reservation value may calculate the replacement reservation value as the number of the dirty sub pages increases.

일실시예에 따른 페이지 교체 방법에서 상기 교체 유보값을 계산하는 단계는, 상기 시스템의 성능 상황이 좋을수록 교체 유보값을 높게 계산할 수 있다.In the page replacement method according to an embodiment, the step of calculating the replacement reservation value may calculate the replacement reservation value as the performance condition of the system is better.

일실시예에 따른 페이지 교체 방법에서 상기 희생 페이지를 선택하는 단계는, 상기 복수의 후보 페이지들 중 교체 유보 횟수가 교체 유보값을 초과한 후보 페이지를 상기 메모리에서 교체될 희생 페이지로 선택할 수 있다.In the page replacement method according to an embodiment, the step of selecting the sacrifice page may select a candidate page whose number of replacement reservations exceeds the replacement reservation value among the plurality of candidate pages as a sacrifice page to be replaced in the memory.

일실시예에 따른 페이지 교체 방법에서 상기 복수의 후보 페이지들은, 상기 메모리에 포함된 복수의 페이지들 중 최근에 액세스(access)되었는지 여부를 나타내는 참조 비트(reference bit)에 기초하여 선정될 수 있다.In the page replacement method according to an embodiment, the plurality of candidate pages may be selected based on a reference bit indicating whether the plurality of pages included in the memory have recently been accessed.

일실시예에 따른 페이지 교체 장치는 메모리에 포함된 복수의 후보 페이지들 중 교체할 희생 페이지를 선택하는 프로세서를 포함하고, 상기 프로세서는, 스토리지 쓰기 발생량 및 페이지 부재율을 고려하여 상기 복수의 후보 페이지들 각각의 교체 유보값(replacement deferring value)을 결정하고, 상기 교체 유보값을 고려하여 상기 후보 페이지들 중 상기 메모리에서 교체될 희생 페이지를 선택한다.A page replacement apparatus according to an exemplary embodiment includes a processor for selecting a sacrifice page to be replaced among a plurality of candidate pages included in a memory, And selects a sacrificial page to be replaced in the memory among the candidate pages by considering the replacement reserve value.

일실시예에 따르면, 스토리지 쓰기 발생량과 페이지 부재율에 기초하여 희생 페이지를 선택함으로써, 읽기 속도보다 느린 쓰기 속도를 가진 스토리지에 적합한 새로운 페이지 교체 알고리즘을 제공할 수 있다.According to one embodiment, by selecting a sacrifice page based on the amount of storage writes and the rate of page absent, a new page replacement algorithm may be provided that is suitable for storage having a slower write speed than the read rate.

일실시예에 따르면, 더티 서브 페이지의 개수에 기초한 스토리지 쓰기 발생량을 고려하여 희생 페이지를 선택함으로써, 읽기 속도보다 느린 쓰기 속도를 가진 스토리지에서 발생하는 쓰기 트래픽을 줄일 수 있다.According to an embodiment, by selecting a sacrifice page in consideration of the storage write amount based on the number of dirty sub-pages, write traffic occurring in the storage having a write speed lower than the read speed can be reduced.

일실시예에 따르면, 시스템의 성능 상황을 고려하여 희생 페이지를 선택함으로써, 시스템의 성능 상황에 따라 동적으로 희생 페이지를 선택할 수 있다.According to one embodiment, a sacrifice page can be dynamically selected according to the performance status of the system by selecting a sacrifice page in consideration of the performance status of the system.

도 1은 일실시예에 따른 프로세서, 메모리 및 스토리지 간의 관계를 설명하기 위한 도면이다.
도 2는 일실시예에 따른 페이지의 예시를 나타낸 도면이다.
도 3은 일실시예에 따라 메모리에 포함된 복수의 페이지들의 예시를 나타낸 도면이다.
도 4는 일실시예에 따라 시스템의 성능 상황을 고려하여 페이지를 교체하는 과정의 예시를 나타낸 도면이다.
도 5는 일실시예에 따라 페이지 교체 알고리즘의 예시를 나타낸 도면이다.
도 6 및 도 7은 일실시예에 따라 더티 서브 페이지의 개수에 따른 페이지 부재율 및 스토리지 쓰기 발생량의 예시를 나타낸 도면이다.
도 8은 일실시예에 따라 시스템 상태에 따른 계수의 변화를 예시적으로 나타낸 도면이다.
도 9는 일실시예에 따른 페이지 교체 방법을 나타낸 도면이다.
1 is a diagram illustrating a relationship between a processor, a memory, and a storage according to an embodiment.
2 is a diagram illustrating an example of a page according to one embodiment.
3 is an illustration of an example of a plurality of pages included in a memory according to one embodiment.
4 is a diagram illustrating an example of a process of replacing a page in consideration of a performance status of a system according to an exemplary embodiment.
5 is a diagram illustrating an example of a page replacement algorithm in accordance with one embodiment.
FIGS. 6 and 7 are views illustrating an example of a page absent rate and a storage write amount according to the number of dirty sub pages according to an embodiment.
8 is an exemplary diagram illustrating a change in a coefficient according to an embodiment of the present invention.
9 is a diagram illustrating a page replacement method according to an embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of embodiments are set forth for illustration purposes only and may be embodied with various changes and modifications. Accordingly, the embodiments are not intended to be limited to the specific forms disclosed, and the scope of the disclosure includes changes, equivalents, or alternatives included in the technical idea.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first or second, etc. may be used to describe various elements, but such terms should be interpreted solely for the purpose of distinguishing one element from another. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

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

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises ", or" having ", and the like, are used to specify one or more of the described features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

하기에서 설명될 실시예들은 페이지를 교체하는 데 사용될 수 있다. 실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 스마트 가전 기기, 지능형 자동차, 키오스크, 웨어러블 장치 등 다양한 형태의 제품으로 구현될 수 있다. 예를 들어, 실시예들은 스마트 폰, 모바일 기기, 스마트 홈 시스템 등에서 메모리에 포함된 페이지를 교체하는 데 적용될 수 있다. 이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.The embodiments described below can be used to replace pages. Embodiments may be implemented in various forms of products such as personal computers, laptop computers, tablet computers, smart phones, smart home appliances, intelligent cars, kiosks, wearable devices, and the like. For example, embodiments may be applied to replacing pages contained in memory in smart phones, mobile devices, smart home systems, and the like. Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.

도 1은 일실시예에 따른 프로세서, 메모리 및 스토리지 간의 관계를 설명하기 위한 도면이다.1 is a diagram illustrating a relationship between a processor, a memory, and a storage according to an embodiment.

도 1을 참조하면, 일실시예에 따른 프로세서(110), 메모리(120) 및 스토리지(130)가 도시된다.Referring to FIG. 1, a processor 110, memory 120, and storage 130 in accordance with one embodiment are shown.

프로세서(110)는 프로그램을 구동하는 데 필요한 데이터를 메모리(120)로 요청할 수 있으며, 요청된 데이터를 메모리(120)로부터 수신할 수 있다. 예를 들어, 프로세서(110)는 CPU(Central Processing Unit)로서, L1 I-캐시(cache), L1 D-캐시, L2 캐시, 가장 하위 레벨 캐시(LLC; Last Level Cache)를 포함할 수 있다.The processor 110 may request the memory 120 to provide the data necessary to run the program and may receive the requested data from the memory 120. [ For example, the processor 110 may be a Central Processing Unit (CPU), and may include an L1 I-cache, an L1 D-cache, an L2 cache, and a Last Level Cache (LLC).

메모리(120)는 임의 접근 기억 장치(Random Access memory)로서, 예를 들어, DRAM(Dynamic random-access memory)을 포함할 수 있다. 메모리(120)는 스토리지(130)로부터 수신한 하나 이상의 페이지를 포함할 수 있다. 프로세서(110)에 의해 요청된 페이지가 메모리(120)에 포함되어 있는 경우, 프로세서(110)는 스토리지(130)로부터 페이지를 수신하지 않고 메모리(120)로부터 빠른 속도로 읽을 수 있다.The memory 120 may be a random access memory, for example, a dynamic random-access memory (DRAM). Memory 120 may include one or more pages received from storage 130. The processor 110 may read from the memory 120 at a high rate without receiving a page from the storage 130 if the page requested by the processor 110 is included in the memory 120. [

스토리지(130)는 읽기 속도보다 쓰기 속도가 느린 데이터 저장 장치로서, 예를 들어, PCM(Phase-change memory) 및 플래시 메모리(flash memory)를 포함할 수 있다. 스토리지(130)는 스왑 장치(swap device)로도 지칭될 수 있다.The storage 130 may be a data storage device having a slower write speed than the read speed, for example, a phase-change memory (PCM) and a flash memory. The storage 130 may also be referred to as a swap device.

일반적으로, 스토리지(130)는 메모리(120)보다 상당히 느린 속도를 가지므로, 시스템 관리에서 스토리지 접근을 최소화시키는 것이 중요하다. 여기서, 프로세서(110)에 의해 페이지가 요청되었을 때, 해당 페이지가 메모리(120)에 존재하지 않아 스토리지 접근을 해야 하는 비율을 페이지 부재율(page fault rate)이라 할 수 있다.In general, it is important to minimize storage access in system management since the storage 130 has a significantly slower rate than the memory 120. Here, when a page is requested by the processor 110, a rate at which a storage access is required because the corresponding page is not present in the memory 120 may be referred to as a page fault rate.

프로세서(110)에서 요청된 페이지가 메모리(120)에 없는 경우, 해당 페이지는 스토리지(130)로부터 메모리(120)로 전달되게 된다. 이 때, 메모리(120)에 이미 많은 페이지들이 포함되어 있어 새로운 페이지에 대한 여유 공간이 없는 경우, 메모리(120)에 포함된 복수의 페이지들 중에서 희생 페이지(victim page)를 선택하여 메모리(120)에서 방출시킴으로써 프로세서(110)에 의해 요청된 페이지를 위한 여유 공간을 확보할 수 있다. 이러한 동작을 페이지 교체(page replacement)라고 할 수 있다. 즉, 페이지 교체는 메모리(120)의 공간이 모두 사용 중인 상황에서 새로운 페이지를 메모리(120)에 반입(enter)시키기 위해 메모리(120) 상의 복수의 페이지들 중 어느 하나를 방출시키는 동작을 의미할 수 있다.If the page requested by the processor 110 is not in the memory 120, the page is transferred from the storage 130 to the memory 120. At this time, if there is not enough free space for a new page because the memory 120 already contains many pages, a victim page is selected from a plurality of pages included in the memory 120, Thereby freeing up space for the page requested by the processor 110. This behavior can be referred to as page replacement. That is, the page replacement means an operation of releasing any one of a plurality of pages on the memory 120 in order to enter a new page into the memory 120 in a state where all the space of the memory 120 is being used .

만약 메모리(120)에서 방출된 희생 페이지가 메모리(120)로 반입된 이후에 수정되었다면, 희생 페이지는 스토리지(130)에 쓰여지고(write), 메모리(120)에서 삭제될 수 있다. 다만, 스토리지(130)의 쓰기 속도가 읽기 속도보다 느리므로, 희생 페이지 방출로 인한 스토리지 쓰기 발생량이 큰 경우에는 시스템 성능 저하가 발생할 수 있다. 따라서, 희생 페이지를 선택하는 과정에서 스토리지 쓰기 발생량이 고려될 필요가 있다.If the sacrificial page emitted from the memory 120 has been modified after being imported into the memory 120, the sacrificial page may be written to the storage 130 and deleted from the memory 120. [ However, since the write speed of the storage 130 is slower than the read speed, if the amount of storage write due to the release of the victim page is large, the performance of the system may deteriorate. Therefore, it is necessary to take into consideration the storage write amount in the process of selecting the sacrifice page.

도 2는 일실시예에 따른 페이지의 예시를 나타낸 도면이다.2 is a diagram illustrating an example of a page according to one embodiment.

도 2를 참조하면, 일실시예에 따라 메모리에 포함된 페이지(200)를 설명하기 위한 도면이 도시된다.Referring to FIG. 2, there is shown a diagram illustrating a page 200 included in a memory, according to one embodiment.

페이지(200)는 복수의 서브 페이지들(210, 220, 230, ...)을 포함할 수 있다. 예를 들어, 페이지(200)의 크기는 4Kbyte로 설정되고, 서브 페이지의 크기는 512Byte로 설정될 수 있다.The page 200 may include a plurality of sub-pages 210, 220, 230, .... For example, the size of the page 200 may be set to 4 Kbytes, and the size of the sub page may be set to 512 bytes.

페이지(200)에는 참조 비트(reference bit)가 설정될 수 있다. 참조 비트는 페이지(200)가 최근에 액세스되었는지 여부를 나타낼 수 있다. 예를 들어, 참조 비트 '1'는 최근에 페이지(200)가 액세스되지 않았음을 나타내고, 참조 비트 '0'은 최근에 페이지(200)가 액세스되었음을 나타낼 수 있다. 참조 비트에 기초하여 메모리에 포함된 복수의 페이지들 중 후보 페이지를 선정하는 과정에 대해서는 도 3을 참조하여 후술한다.A page 200 may have a reference bit set. The reference bit may indicate whether the page 200 has been recently accessed. For example, reference bit '1' may indicate that page 200 has not been accessed recently, and reference bit '0' may indicate that page 200 has been accessed recently. A process of selecting a candidate page among a plurality of pages included in the memory based on the reference bit will be described later with reference to FIG.

복수의 서브 페이지들(210, 220, 230, ...) 각각에는 더티 비트(dirty bit)가 설정될 수 있다. 더티 비트는 해당 서브 페이지가 메모리에 반입된 후에 수정되었는지 여부를 나타낼 수 있다. 예를 들어, 더티 비트 '0'은 서브 페이지가 메모리에 반입된 후에 수정되지 않았음을 나타내고, 더티 비트 '1'은 서브 페이지가 메모리에 반입된 후에 수정되었음을 나타낼 수 있다. 따라서, 더티 비트 '1'의 경우, 메모리에서 수정된 서브 페이지를 포함하는 페이지가 메모리에서 방출될 때, 해당 수정된 서브 페이지는 스토리지로 플러쉬(flush)되어야 한다. 이러한 더티 비트는 LLC 캐시 블록이 메모리의 페이지로 다시 쓰여질 경우에 '0'에서 '1'로 설정될 수 있다. 더티 비트는 페이지의 방출에 기인한 스토리지 쓰기 발생량을 예측할 때 고려될 수 있다.Each of the plurality of sub pages 210, 220, 230, ... may be set with a dirty bit. The dirty bit may indicate whether the subpage has been modified since it was imported into memory. For example, the dirty bit '0' indicates that the subpage has not been modified since it was imported into memory, and the dirty bit '1' may indicate that the subpage was modified after being imported into memory. Thus, for dirty bit '1', when a page containing a modified subpage in memory is released from memory, the modified subpage must be flushed to storage. This dirty bit may be set from '0' to '1' when the LLC cache block is rewritten to a page of memory. The dirty bit can be taken into account when estimating the amount of storage write caused by the release of the page.

예시적으로 도 2에서 더티 비트를 참조하면, 제1 서브 페이지(210), 제3 서브 페이지(230)는 메모리로 반입된 후에 수정되지 않은 서브 페이지를 나타내고, 제2 서브 페이지(220)는 메모리로 반입된 후에 수정된 서브 페이지를 나타낼 수 있다.Referring to the dirty bits in FIG. 2, the first sub page 210, the third sub page 230, and the second sub page 220 indicate unmodified subpages after being imported into the memory, The modified subpage may be displayed after being imported into the subpage.

앞서 설명한 참조 비트 및 더티 비트는 일실시예에 따른 것으로, 경우에 따라서는 '0', '1'이 나타내는 의미가 서로 반대일 수도 있다.The reference bits and dirty bits described above are according to one embodiment. In some cases, the meaning indicated by '0' and '1' may be opposite to each other.

도 3은 일실시예에 따라 메모리에 포함된 복수의 페이지들의 예시를 나타낸 도면이다.3 is an illustration of an example of a plurality of pages included in a memory according to one embodiment.

도 3을 참조하면, 일실시예에 따라 메모리(300)에 포함된 복수의 페이지들이 도시된다.Referring to FIG. 3, a plurality of pages included in memory 300 are illustrated in accordance with one embodiment.

메모리(300)에 포함된 복수의 페이지들 중에서 후보 페이지가 참조 비트에 기초하여 선정될 수 있다. 설명의 편의를 위해, 도 3에서는 참조 비트가 괄호표시 내의 숫자로 표시될 수 있다. 즉, 제1 페이지(310), 제3 페이지(330), 제4 페이지(340), 제6 페이지(360)의 참조 비트는 '0'이고, 제2 페이지(320), 제5 페이지(350)의 참조 비트는 '1'일 수 있다.A candidate page among a plurality of pages included in the memory 300 may be selected based on the reference bit. For convenience of explanation, in FIG. 3, reference bits can be represented by numbers in parentheses. That is, the reference bits of the first page 310, the third page 330, the fourth page 340 and the sixth page 360 are '0', and the second page 320, the fifth page 350 ) May be '1'.

복수의 페이지들 중에서 참조 비트가 '0'로 설정된 페이지가 후보 페이지로 선정될 수 있다. 예를 들어, 도 3에서는 제1 페이지(310), 제3 페이지(330), 제4 페이지(340), 제6 페이지(360)가 후보 페이지로 선정될 수 있다.A page having a reference bit set to '0' among a plurality of pages may be selected as a candidate page. For example, in FIG. 3, the first page 310, the third page 330, the fourth page 340, and the sixth page 360 may be selected as candidate pages.

선정된 후보 페이지들 중에서 희생 페이지가 더티 비트에 기초하여 선정될 수 있다. 후보 페이지들 각각에 포함된 복수의 페이지들 중 스토리지 쓰기 발생량과 관련된 더티 서브 페이지가 더티 비트에 기초하여 식별될 수 있다. 그리고, 식별 결과에 기초하여 후보 페이지들 각각에 포함된 더티 서브 페이지의 개수가 결정될 수 있다.Among the selected candidate pages, the sacrifice page can be selected based on the dirty bit. The dirty subpages associated with the storage write incidence among the plurality of pages included in each of the candidate pages may be identified based on the dirty bit. The number of dirty subpages included in each of the candidate pages may be determined based on the identification result.

더티 서브 페이지의 개수가 많은 페이지일수록 희생 페이지로 선택되었을 때 스토리지 쓰기 발생량이 클 수 있다. 따라서, 스토리지 쓰기 발생량과 관련된 더티 서브 페이지의 개수에 기초하여 희생 페이지를 결정함으로써, 스토리지 쓰기 발생량을 최소화시켜 페이지를 교체할 수 있다.The more dirty pages the larger the number of sub-pages, the greater the amount of storage writes generated when selected as the victim page. Thus, by determining the sacrifice page based on the number of dirty subpages associated with the amount of storage writes, it is possible to replace the page with minimal storage write throughput.

예시적으로 도시된 도 3에서는 후보 페이지들 중에서 제3 페이지(330)가 가장 많은 더티 서브 페이지 개수를 가지고 있으므로, 제3 페이지(330)는 메모리(300)에서 교체되지 않도록 최대한 유보시킴으로써 스토리지 쓰기 발생량을 감소시킬 수 있다. 반면, 제1 페이지(310)의 더티 서브 페이지 개수가 1개로 가장 적으므로, 제1 페이지(310)를 희생 페이지로 선택함으로써, 스토리지 쓰기 발생량을 최소화시키면서 페이지 교체를 수행할 수 있다.In the example illustrated in FIG. 3, the third page 330 has the largest number of dirty subpages among the candidate pages, so that the third page 330 is reserved as much as possible in the memory 300, Can be reduced. On the other hand, since the number of dirty subpages of the first page 310 is the smallest, it is possible to perform page replacement while minimizing the storage write amount by selecting the first page 310 as a sacrifice page.

도 4는 일실시예에 따라 시스템의 성능 상황을 고려하여 페이지를 교체하는 과정의 예시를 나타낸 도면이다.4 is a diagram illustrating an example of a process of replacing a page in consideration of a performance status of a system according to an exemplary embodiment.

도 4를 참조하면, 일실시예에 따라 시스템의 성능 상황을 고려하여 페이지를 교체하는 과정의 예시가 도시된다.Referring to FIG. 4, an example of a process of replacing a page in consideration of a performance situation of a system according to an embodiment is shown.

희생 페이지는 페이지 부재율에 기초하여 후보 페이지들 중에서 선택될 수 있다. 희생 페이지는 페이지 부재율과 관련된 시스템의 성능 상황에 기초하여 선택될 수 있다.The sacrificial page may be selected from the candidate pages based on the page absent rate. The sacrifice page can be selected based on the performance status of the system in relation to the page absent rate.

시스템의 성능 상황은 메모리가 활용되는 전체 시스템을 의미하는 것으로, 예를 들어, 메모리의 용량(capacity) 및 메모리에 페이지를 요청하는 프로세서의 성능 중요도 중 적어도 하나에 기초하여 결정될 수 있다.The performance status of the system refers to the overall system in which the memory is utilized and may be determined based on at least one of, for example, the capacity of the memory and the performance importance of the processor requesting the page in memory.

예를 들어, 시스템의 성능 상황은 메모리의 용량이 변동됨에 따라 발생하는 메모리에 대한 페이지 부재율의 증감에 기초하여 결정될 수 있다. 기 할당된 메모리(410)에 추가 메모리(420)를 할당하는 것을 가정한다.For example, the performance status of the system can be determined based on an increase or decrease in the rate of page absences for a memory that occurs as the capacity of the memory varies. It is assumed that the additional memory 420 is allocated to the pre-allocated memory 410.

이 때, 만약 페이지 부재율이 감소하여 성능이 향상되는 경우, 시스템의 성능 상황은 좋지 않는 것으로 판단될 수 있다. 즉, 이 경우 현재 시점의 메모리(410)가 부족한 것으로 판단될 수 있다. 시스템의 성능 상황이 좋지 않으므로, 스토리지 쓰기 발생량이 감소되도록 희생 페이지를 선정하기 보다는 페이지 부재율이 감소되도록 희생 페이지가 선택될 수 있다.At this time, if the performance of the page is improved due to a decrease in the page absent rate, it can be judged that the performance of the system is not good. That is, in this case, it can be determined that the current memory 410 is insufficient. Since the performance situation of the system is not good, the sacrifice page may be selected so that the page miss rate is reduced rather than the sacrifice page is selected so that the storage write amount is reduced.

반대로, 만약 페이지 부재율의 변동이 미리 결정된 기준 값 이하인 경우, 시스템의 성능 상황은 좋은 것으로 판단될 수 있다. 즉, 이 경우 현재 시점의 메모리(410)가 충분한 것으로 판단될 수 있다. 시스템의 성능 상황이 좋으므로, 페이지 부재율이 감소되도록 희생 페이지를 선정하기 보다는 스토리지 쓰기 발생량이 감소되도록 희생 페이지가 선택될 수 있다.Conversely, if the variation of the page percentage is below a predetermined reference value, the performance condition of the system can be judged to be good. That is, in this case, it can be determined that the current memory 410 is sufficient. Since the performance of the system is good, the sacrifice page may be selected to reduce the amount of storage writes generated rather than selecting a sacrifice page so that the percentage of page misses is reduced.

이와 같이 시스템의 성능 상황은 현재 기 할당된 메모리(410)의 페이지 부재율과 추가 메모리(420)가 제공되었을 때의 페이지 부재율 간의 차이에 기초하여 결정될 수 있다. 이러한 기법을 Belady's lifetime function이라 지칭할 수 있다. Belady's lifetime function은 메모리 크기가 변동됨에 따라 참조의 존재율(hit ratio of references)를 근사하는 함수일 수 있다. 페이지 부재율 Ai는 하기의 수학식 1로 계산될 수 있다.Thus, the performance status of the system may be determined based on the difference between the page absent rate of the currently pre-allocated memory 410 and the page absent rate when the additional memory 420 is provided. This technique can be referred to as Belady's lifetime function. Belady's lifetime function can be a function that approximates the hit ratio of references as the memory size changes. The page absent rate A i can be calculated by the following equation (1).

Figure 112016126406415-pat00001
Figure 112016126406415-pat00001

위의 수학식 1에서, i는 메모리 크기를 나타내고, c 및 k는 제어 파라미터를 나타낸다. 제어 파라미터는 잠정 구역성(temporal locality)의 정도를 결정할 수 있다. 예를 들어, c가 작아지거나 또는 k가 커질수록 잠정 구역성은 증가할 수 있다.In the above equation (1), i represents a memory size, and c and k represent control parameters. The control parameter can determine the degree of temporal locality. For example, as c becomes smaller or k becomes larger, provisional zoning can increase.

도 5는 일실시예에 따라 페이지 교체 알고리즘의 예시를 나타낸 도면이다.5 is a diagram illustrating an example of a page replacement algorithm in accordance with one embodiment.

도 5를 참조하면, 일실시예에 따른 페이지 교체 알고리즘의 예시가 도시된다.Referring to FIG. 5, an example of a page replacement algorithm according to one embodiment is shown.

일실시예에 따른 페이지 교체 장치는 WS-CLOCK(Working-Set Sensitive CLOCK)이라 지칭되는 페이지 교체 정책에 기반하여 스토리지 상단의 메인 메모리 계층에서 페이지를 교체할 수 있다. 메인 메모리는 도 1의 메모리(120)로서, 서브 페이지 단위로 LLC와 데이터를 주고 받을 수 있으며, 페이지 단위로 스토리지와 통신을 수행할 수 있다.A page replacement device according to one embodiment can replace pages in the main memory layer at the top of the storage based on a page replacement policy called WS-CLOCK (Working-Set Sensitive CLOCK). The main memory is a memory 120 of FIG. 1, which can exchange data with an LLC on a subpage-by-subpage basis, and can perform storage and communication on a page-by-page basis.

WS-CLOCK은 각 페이지의 참조 비트 및 각 페이지에 포함된 더티 비트들을 기초하여 메모리에서 교체할 희생 페이지를 선택함으로써, 페이지 부재율과 스토리지 쓰기 발생량(예컨대, 쓰기 트래픽)을 동시에 감소시킬 수 있다. 페이지가 액세스되면 해당 페이지의 참조 비트가 '1'로 설정되고, 해당 액세스가 쓰기(write)일 때, 액세스된 서브 페이지의 더티 비트가 '1'로 설정될 수 있다.The WS-CLOCK can simultaneously reduce page outage rate and storage write throughput (e.g., write traffic) by selecting a sacrifice page to replace in memory based on the reference bits of each page and the dirty bits contained in each page. When the page is accessed, the dirty bit of the accessed subpage may be set to '1' when the reference bit of the page is set to '1' and the access is write.

CLOCK과 마찬가지로 WS-CLOCK은 페이지의 순환 목록(circular list)을 통해 특정 방향으로 이동하는 클럭-핸드(clock-hand)를 사용할 수 있다. 새로운 페이지를 수용하기 위한 교체가 필요할 때마다, WS-CLOCK은 클럭-핸드가 가리키는 페이지의 참조 비트와 더티 정도(dirtiness)를 검사할 수 있다. 여기서, 더티 정도는 페이지 내의 더티 서브 페이지의 개수로 결정될 수 있다. 만약 참조 비트가 '1'인 경우, WS-CLOCK은 해당 페이지의 참조 비트를 '0'으로 재설정하고, 클럭-핸드를 다음 페이지로 이동시킬 수 있다. 만약 참조 비트가 '0'인 경우, WS-CLOCK은 해당 페이지의 더티 정도를 조사할 수 있다. WS-CLOCK에서, 페이지의 참조 비트가 '0'이더라도 특정 개수의 클럭 사이클 동안 더티 페이지의 방출이 유보될 수 있다. 이를 위해, WS-CLOCK은 각 페이지의 유보 카운트(deferring count)를 제어할 수 있다. 만약 페이지의 유보 카운트가 미리 정해진 유보 레벨을 초과하지 않으면, 클럭-핸드는 다음 페이지로 넘어갈 수 있다. 이러한 과정은 WS-CLOCK이 희생 페이지를 찾을 때까지 반복될 수 있다.Like CLOCK, WS-CLOCK can use a clock-hand that moves in a specific direction through a circular list of pages. Whenever a replacement is needed to accommodate a new page, the WS-CLOCK can check the reference bit and dirtiness of the page pointed to by the clock-hand. Here, the dirty degree can be determined by the number of dirty sub-pages in the page. If the reference bit is '1', WS-CLOCK can reset the reference bit of the page to '0' and move the clock-hand to the next page. If the reference bit is '0', WS-CLOCK can check the dirty level of the page. In WS-CLOCK, the release of dirty pages may be deferred for a certain number of clock cycles even if the page reference bit is '0'. To this end, WS-CLOCK can control the deferring count of each page. If the reservation count of the page does not exceed a predetermined reservation level, the clock-hand may proceed to the next page. This process can be repeated until the WS-CLOCK finds the victim page.

WS-CLOCK은 페이지의 더티 정보에 기반하여 해당 페이지에 서로 다른 유보 레벨을 할당할 수 있다. 즉, 더티 서브 페이지의 개수가 많은 페이지일수록 높은 유보 레벨이 할당될 수 있다. x를 페이지에 포함된 더티 서브 페이지의 개수로 설정하고, 함수 f를 해당 페이지의 더티 정도(dirtiness)에 비례하여 페이지의 유보 레벨로 설정할 수 있다. 이 때, f는 단조 증가 함수(monotonic increasing function)일 수 있다. 이는 WS-CLOCK이 큰 스토리지 쓰기 발생량을 유발하는 페이지일수록 메모리에 오래 유지시킨다는 것을 의미할 수 있다.WS-CLOCK can assign different reservation levels to the page based on the dirty information of the page. That is, the higher the number of dirty sub pages, the higher the reserve level can be allocated. x can be set to the number of dirty subpages included in the page, and the function f can be set to the reserved level of the page in proportion to the dirtiness of the page. Where f may be a monotonic increasing function. This can mean that the page that causes WS-CLOCK to generate a large amount of storage writes will hold it in memory for a long time.

도 5에 도시된 알고리즘은 앞서 설명한 동작들에 관한 것이다. 여기서, 유보 카운트(deferring count)는 더티 서브 페이지의 개수 및 계수(coefficient)의 곱으로 계산될 수 있다. 더티 서브 페이지의 개수는 한 페이지를 기준으로 해당 페이지에 포함된 더티 서브 페이지의 개수를 나타낼 수 있다.The algorithm shown in Fig. 5 relates to the operations described above. Here, the deferring count can be calculated as the product of the number of dirty subpages and a coefficient. The number of dirty subpages may indicate the number of dirty subpages included in the page based on one page.

또한, 계수는 시스템의 성능 상황을 나타낼 수 있다. 예를 들어, 시스템의 성능 상황이 좋은 경우 계수가 높게 결정되고, 그래서 유보율도 높게 결정될 수 있다. 반면, 시스템의 성능 상황이 좋지 않은 경우 계수가 낮게 결정되고, 그래서 유보율도 낮게 결정될 수 있다. 유보율이 높다는 것은 더티 서브 페이지를 많이 포함하는 페이지일수록 메모리로부터 방출을 더 유보한다는 것을 의미할 수 있다.In addition, the coefficient may indicate the performance status of the system. For example, when the performance of the system is good, the coefficient is determined to be high, so the retention rate can also be determined to be high. On the other hand, when the performance of the system is not good, the coefficient is determined to be low, and the retention rate can be determined to be low. A high reserve rate may mean that a page containing a large number of dirty subpages will hold more release from memory.

도 6 및 도 7은 일실시예에 따라 더티 서브 페이지의 개수에 따른 페이지 부재율 및 스토리지 쓰기 발생량의 예시를 나타낸 도면이다.FIGS. 6 and 7 are views illustrating an example of a page absent rate and a storage write amount according to the number of dirty sub pages according to an embodiment.

도 6 및 도 7을 참조하면, 일실시예에 따른 복수의 예시적인 상황에서 측정된 페이지 부재율 및 스토리지 쓰기 발생량의 예시가 도시된다.Referring to Figures 6 and 7, an example of measured page yield and storage write throughput in a number of exemplary situations in accordance with one embodiment is shown.

메모리 용량이 전체 작업 세트 페이지들(full working-set pages)을 수용하기에 충분하지 않은 경우에 메모리에서 더티 정도가 큰 페이지를 과도하게 보존하게 되면, 페이지 부재율이 크게 저하될 수 있다. 시스템의 성능 상황에 적절한 유보 레벨을 설정할 필요가 있다.If the memory capacity is not sufficient to accommodate the full working-set pages, the page-unavailability can be greatly reduced if the memory is heavily occupied by dirty pages. It is necessary to set an appropriate reservation level for the performance status of the system.

도 6 및 도 7에서는 프리셀 게임(freecell game), 지에디트 텍스트 편집기(gedit text editor), kghostview PDF 파일 뷰어 및 xmms 뮤직 플레이어와 같은 4가지 리눅스 응용 프로그램의 가상 메모리 액세스 트레이스(virtual memory access trace)를 수행한 결과가 도시된다. 각 가상 메모리 액세스 트레이스의 특성은 하기의 표 1와 같을 수 있다. 이러한 가상 메모리 액세스 트레이스에서, 페이지 크기는 4Kbyte로 설정되고 서브 페이지 크기는 512 byte로 설정되어, 페이지가 8개의 서브 페이지로 구성될 수 있다.Figures 6 and 7 illustrate virtual memory access traces of four Linux applications, such as the freecell game, the gedit text editor, the kghostview PDF file viewer, and the xmms music player. The results are shown. The characteristics of each virtual memory access trace may be as shown in Table 1 below. In this virtual memory access trace, the page size is set to 4 Kbytes and the sub page size is set to 512 bytes, so that the page can be composed of 8 sub pages.

Figure 112016126406415-pat00002
Figure 112016126406415-pat00002

도 6 및 도 7은 함수 f가 변화함에 따라 페이지 부재율 및 스토리지 쓰기 발생량(예를 들어, 총 쓰기 트래픽 수)을 도시한다. 메모리 크기는 각 작업 부하(workload)에 대해 메모리 풋프린트(memory footprint)의 10 % 및 30 %로 설정될 수 있다. 도 6 및 도 7에서와 같이, 성능이 저하되는 동안 유보 레벨이 높으면 스토리지 쓰기 발생량이 감소할 수 있다. 이는 페이지 부재율과 스토리지 쓰기 발생량 간에 트레이드 오프가 있음을 나타낼 수 있다. 최적의 유보 레벨은 작업 부하 및 시스템 상태에 따라 달라지고, 간단하게 고정될 수는 없다. 따라서, 시스템의 현재 작업 세트 크기를 모니터링하고 시스템 성능을 저하시키지 않도록 페이지에 대한 유보 레벨을 제어할 수 있다. 예를 들어, 시스템의 현재 작업 세트 크기가 클 경우, WS-CLOCK은 유보 레벨을 낮게 유지하여 전체 시스템 성능에 대한 페이지 유보(page fault)를 감소시키는 데 집중할 수 있다. 반대로, 시스템에 메모리가 충분한 경우(즉, 작은 작업 세트), WS-CLOCK은 스토리지 쓰기 발생량을 감소시키기 위해 높은 유보 레벨을 유지할 수 있다.FIGS. 6 and 7 show the page absent rate and the storage write generation amount (for example, the total write traffic number) as the function f changes. The memory size can be set to 10% and 30% of the memory footprint for each workload. As shown in FIG. 6 and FIG. 7, when the reserved level is high while the performance is degraded, the amount of storage write can be reduced. This may indicate that there is a tradeoff between page outage rate and storage write generation. The optimal reservation level depends on the workload and the system state, and can not be fixed simply. Thus, you can monitor the current working set size of the system and control the reservation level for the page so as not to degrade system performance. For example, if the system's current working set size is large, WS-CLOCK can keep the reservation level low and focus on reducing page faults for overall system performance. Conversely, if the system has sufficient memory (ie, a small set of operations), WS-CLOCK can maintain a high reserve level to reduce storage write throughput.

도 8은 일실시예에 따라 시스템 상태에 따른 계수의 변화를 예시적으로 나타낸 도면이다.8 is an exemplary diagram illustrating a change in a coefficient according to an embodiment of the present invention.

도 8을 참조하면, 시스템의 성능 상황에 따른 함수 f의 계수 변화가 도시된다.Referring to Fig. 8, the coefficient variation of the function f according to the performance condition of the system is shown.

총 메모리 크기는 실행 중인 응용 프로그램 중 가장 작은 풋프린트의 20 %로 설정될 수 있다. 시간에 따라 실행 중인 응용 프로그램의 수를 1, 2, 3, 1, 4 및 4로 변경함으로써, 작업 세트 크기를 제어하였다. 도 8에서 도시된 바와 같이, 작업 세트 크기가 클수록 유보 레벨(deferring level)이 낮아질 수 있다. 반대로, 작업 세트 크기가 작을수록 유보 레벨이 높아질 수 있다.The total memory size can be set to 20% of the smallest footprint of any running application. By changing the number of running applications to 1, 2, 3, 1, 4, and 4 over time, we controlled the working set size. As shown in FIG. 8, the larger the working set size, the lower the deferring level. Conversely, the smaller the working set size, the higher the retention level can be.

도 9는 일실시예에 따른 페이지 교체 방법을 나타낸 도면이다.9 is a diagram illustrating a page replacement method according to an embodiment.

도 9를 참조하면, 일실시예에 따른 페이지 교체 장치의 프로세서에 의해 수행되는 페이지 교체 방법이 도시된다.Referring to Fig. 9, a page replacement method performed by a processor of a page replacement apparatus according to an embodiment is shown.

단계(910)에서, 페이지 교체 장치는 스토리지 쓰기 발생량 및 페이지 부재율(page fault rate)을 고려하여 메모리에 포함된 복수의 후보 페이지들 각각의 교체 유보값(replacement deferring value)을 결정한다.In step 910, the page replacement apparatus determines a replacement deferring value of each of a plurality of candidate pages included in the memory in consideration of the storage write generation amount and the page fault rate.

페이지 교체 장치는 후보 페이지들 각각을 구성하는 복수의 서브 페이지들 중 스토리지 쓰기 발생량과 관련된 더티 서브 페이지의 개수를 결정할 수 있다. 페이지 교체 장치는 페이지 부재율과 관련된 시스템의 성능 상황을 판단할 수 있다. 그리고, 페이지 교체 장치는 더티 서브 페이지들의 개수 및 시스템의 성능 상황 중 적어도 하나에 기초하여 교체 유보값을 계산할 수 있다.The page replacement apparatus can determine the number of dirty subpages related to the storage write generation amount among the plurality of subpages constituting each of the candidate pages. The page replacement apparatus can determine the performance status of the system related to the page absent rate. The page replacement device may then calculate a replacement reservation value based on at least one of the number of dirty sub-pages and the performance status of the system.

여기서, 더티 서브 페이지는 복수의 서브 페이지들 중 메모리에 반입(entering)된 이후에 수정된 서브 페이지일 수 있다.Here, the dirty subpage may be a modified subpage after being entered into the memory among the plurality of subpages.

또한, 시스템의 성능 상황은 메모리의 용량(capacity) 및 메모리에 페이지를 요청하는 프로세서의 성능 중요도 중 적어도 하나에 기초하여 결정될 수 있다.In addition, the performance status of the system can be determined based on at least one of the capacity of the memory and the performance importance of the processor requesting pages in the memory.

예를 들어, 시스템의 성능 상황은 메모리의 용량이 변동(vary)됨에 따라 발생하는 메모리에 대한 페이지 부재율의 증감에 기초하여 결정될 수 있다. 메모리의 용량이 증가됨에 따라 발생하는 메모리에 대한 페이지 부재율의 감소가 클수록 시스템의 성능 상황이 좋지 않은 것으로 결정될 수 있다. 메모리의 용량이 증가됨에 따라 발생하는 메모리에 대한 페이지 부재율의 변동이 미리 정해진 기준 값 이하인 경우, 시스템의 성능 상황이 좋은 것으로 결정될 수 있다.For example, the performance status of the system can be determined based on an increase or decrease in the rate of page failure for a memory that occurs as the capacity of the memory varies. The greater the decrease in the percentage of page faults with respect to the memory that occurs as the memory capacity increases, the more the performance of the system may be determined to be poor. When the fluctuation of the page absent rate with respect to the memory that occurs as the capacity of the memory increases is less than or equal to a predetermined reference value, the performance condition of the system can be determined to be good.

또한, 프로세서의 성능 중요도는 프로그램을 구동시킬 때 요구되는 프로세서 성능 의존도를 의미할 수 있다. 프로세서의 성능 중요도가 높다는 것은 프로세서의 고성능이 요구된다는 것과 페이지 부재율이 낮아야 한다는 것을 의미할 수 있다. 따라서, 프로세서의 성능 중요도가 높을수록 시스템의 성능 상황이 좋지 않은 것으로 결정되어, 페이지 부재율 개선에 초점을 둘 수 있다. 반대로, 프로세서의 성능 중요도가 낮을수록 시스템의 성능 상황이 좋은 것으로 결정되어, 스토리지 쓰기 발생량을 감소시키는 것이 초점을 둘 수 있다.In addition, the performance importance of the processor may refer to the processor performance dependency required when the program is run. Higher processor performance implies that high performance of the processor is required and that the page miss rate is low. Therefore, it is determined that the performance of the system is not good as the performance importance of the processor is high, so that it is possible to focus on improving the page absent rate. Conversely, the lower the performance importance of a processor, the better the performance of the system is determined to be good, reducing the amount of storage write can be focused.

일실시예에 따른 페이지 교체 장치는 더티 서브 페이지의 개수가 증가할수록 교체 유보값을 낮게 계산할 수 있다. 또한, 페이지 교체 장치는 시스템의 성능 상황이 좋을수록 교체 유보값을 높게 계산할 수 있다.The page replacement apparatus according to an exemplary embodiment may calculate a lower reserve value as the number of dirty sub pages increases. Also, the page replacement apparatus can calculate a higher reserve replacement value as the system performance condition is better.

여기서, 복수의 후보 페이지들은 메모리에 포함된 복수의 페이지들 중 최근에 액세스되었는지 여부를 나타내는 참조 비트에 기초하여 선정될 수 있다.Here, the plurality of candidate pages may be selected based on a reference bit indicating whether the plurality of pages included in the memory have been recently accessed.

단계(920)에서, 페이지 교체 장치는 교체 유보값을 고려하여 후보 페이지들 중 메모리에서 교체될 희생 페이지를 선택한다. 예를 들어, 페이지 교체 장치는 복수의 후보 페이지들 중 교체 유보 횟수가 교체 유보값을 초과한 후보 페이지를 메모리에서 교체될 희생 페이지로 선택할 수 있다. 여기서, 교체 유보 횟수는 해당 페이지가 교체되지 않고 유보된 횟수를 의미할 수 있다.In step 920, the page replacement apparatus selects a sacrificial page to be replaced in the memory among the candidate pages in consideration of the replacement reservation value. For example, the page replacement apparatus can select a candidate page among the plurality of candidate pages whose replacement reservation count exceeds the replacement reservation value as a sacrifice page to be replaced in the memory. Here, the number of replacement reservations may mean the number of times that the page is not replaced and is reserved.

여기서, 교체 유보값은 특정 페이지가 메모리에서 교체되는 것을 유보하는 정도를 나타내는 값으로, 예를 들어, 앞서 설명한 유보율, 유보 카운트, 유보 레벨을 포함할 수 있다.Here, the replacement reservation value is a value indicating the degree to which a specific page is reserved in the memory, for example, the reservation rate, the reservation count, and the reservation level described above.

도 9에 도시된 각 단계들에는 도 1 내지 도 8을 통하여 전술한 사항들이 그대로 적용되므로, 보다 상세한 설명은 생략한다.The steps described above with reference to FIGS. 1 to 8 are applied to each step shown in FIG. 9 as it is, and a detailed description will be omitted.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented in hardware components, software components, and / or a combination of hardware components and software components. For example, the devices, methods, and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, such as an array, a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

실시예들에서 설명된 구성요소들은 하나 이상의 DSP (Digital Signal Processor), 프로세서 (Processor), 컨트롤러 (Controller), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array)와 같은 프로그래머블 논리 소자 (Programmable Logic Element), 다른 전자 기기들 및 이것들의 조합 중 하나 이상을 포함하는 하드웨어 구성 요소들(hardware componests)에 의해 구현될 수 있다. 실시예들에서 설명된 기능들(functions) 또는 프로세스들(processes) 중 적어도 일부는 소프트웨어(software)에 의해 구현될 수 있고, 해당 소프트웨어는 기록 매체(recording medium)에 기록될 수 있다. 실시예들에서 설명된 구성요소들, 기능들 및 프로세스들은 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다.The components described in the embodiments may be implemented by a programmable logic device such as one or more DSP (Digital Signal Processor), a processor, a controller, an application specific integrated circuit (ASIC), and a field programmable gate array Logic Element, other electronic devices, and combinations thereof. ≪ RTI ID = 0.0 > At least some of the functions or processes described in the embodiments may be implemented by software, and the software may be recorded in a recording medium. The components, functions and processes described in the embodiments may be implemented by a combination of hardware and software.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various technical modifications and variations may be applied to those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

110: 프로세서
120: 메모리
130: 스토리지
110: Processor
120: Memory
130: Storage

Claims (14)

스토리지 쓰기 발생량 및 페이지 부재율(page fault rate)을 고려하여 메모리에 포함된 복수의 후보 페이지들 각각의 교체 유보값(replacement deferring value)을 결정하는 단계; 및
상기 교체 유보값을 고려하여 상기 후보 페이지들 중 상기 메모리에서 교체될 희생 페이지를 선택하는 단계
를 포함하고,
상기 교체 유보값을 결정하는 단계는
상기 페이지 부재율과 관련된 시스템의 성능 상황 및 상기 스토리지 쓰기 발생량에 기초하여 상기 교체 유보값을 결정하고,
상기 시스템의 성능 상황은,
상기 메모리의 사용량이 변동(vary)됨에 따라 발생하는 상기 메모리에 대한 페이지 부재율의 증감에 기초하여 결정되며, 현재 기 할당된 메모리의 페이지 부재율과 추가 메모리가 제공되었을 때의 페이지 부재율 간의 차이에 기초하여 결정되고,
상기 희생 페이지를 선택하는 단계는,
상기 메모리의 사용량이 증감함에 따라 상기 페이지 부재율의 변동이 미리 결정된 기준 값 이하인 경우, 페이지 부재율이 감소되도록 희생 페이지를 선택하지 않고, 상기 스토리지 쓰기 발생량이 감소되도록 선택하는 페이지 교체 방법.
Determining a replacement deferring value of each of a plurality of candidate pages included in the memory in consideration of a storage write generation amount and a page fault rate; And
Selecting a sacrificial page to be replaced in the memory among the candidate pages in consideration of the replacement reserve value
Lt; / RTI >
The step of determining the replacement reserve value
Determining a replacement reservation value based on the performance status of the system related to the page percentage and the storage write amount,
The performance status of the system may include,
Is determined based on an increase or decrease in the rate of page faults in the memory caused by a change in the amount of use of the memory, and the difference between the page fault rate of the currently allocated memory and the page fault rate when the additional memory is provided Lt; / RTI >
Wherein the step of selecting the sacrificial page comprises:
Wherein the storage write generation amount is reduced without selecting a sacrifice page so that the page absent rate is reduced when the variation of the page absence rate is equal to or less than a predetermined reference value as the usage amount of the memory is increased or decreased.
제1항에 있어서,
상기 교체 유보값을 결정하는 단계는,
상기 후보 페이지들 각각을 구성하는 복수의 서브 페이지들 중 상기 스토리지 쓰기 발생량과 관련된 더티 서브 페이지의 개수를 결정하는 단계;
상기 페이지 부재율과 관련된 시스템의 성능 상황을 판단하는 단계; 및
상기 더티 서브 페이지의 개수 및 시스템의 성능 상황 중 적어도 하나에 기초하여 상기 교체 유보값을 계산하는 단계
를 포함하는 페이지 교체 방법.
The method according to claim 1,
Wherein the step of determining the replacement reservation value comprises:
Determining a number of dirty subpages related to the storage write generation amount among a plurality of subpages constituting each of the candidate pages;
Determining a performance condition of the system related to the page percentage; And
Calculating the replacement reservation value based on at least one of the number of the dirty sub-pages and the performance status of the system
/ RTI >
제2항에 있어서,
상기 더티 서브 페이지는,
상기 복수의 서브 페이지들 중 메모리에 반입(entering)된 이후에 수정된 서브 페이지인, 페이지 교체 방법.
3. The method of claim 2,
The dirty sub-
Wherein the subpage is a subpage modified after being entered into the memory among the plurality of subpages.
제2항에 있어서,
상기 시스템의 성능 상황은,
상기 메모리의 사용량 및 상기 메모리에 페이지를 요청하는 프로세서의 성능 중요도 중 적어도 하나에 기초하여 결정되는 페이지 교체 방법.
3. The method of claim 2,
The performance status of the system may include,
The amount of memory used, and the performance importance of the processor requesting a page in the memory.
제1항에 있어서,
상기 메모리의 사용량이 증가함에 따라 상기 페이지 부재율이 감소하는 경우, 상기 희생 페이지는 상기 페이지 부재율이 감소되도록 선택되는 페이지 교체 방법.
The method according to claim 1,
Wherein when the amount of the page is decreased as the amount of use of the memory increases, the sacrifice page is selected so as to decrease the rate of page faults.
제2항에 있어서,
상기 교체 유보값을 계산하는 단계는,
상기 더티 서브 페이지의 개수가 증가할수록 교체 유보값을 높게 계산하는, 페이지 교체 방법.
3. The method of claim 2,
Wherein the step of calculating the replacement reservation value comprises:
Wherein the replacement reservation value is calculated to be higher as the number of dirty subpages increases.
제2항에 있어서,
상기 교체 유보값을 계산하는 단계는,
상기 시스템의 성능 상황이 좋을수록 교체 유보값을 높게 계산하는 페이지 교체 방법.
3. The method of claim 2,
Wherein the step of calculating the replacement reservation value comprises:
Wherein the replacement reserve value is calculated to be higher as the performance condition of the system is better.
제1항에 있어서,
상기 희생 페이지를 선택하는 단계는,
상기 복수의 후보 페이지들 중 교체 유보 횟수가 교체 유보값을 초과한 후보 페이지를 상기 메모리에서 교체될 희생 페이지로 선택하는, 페이지 교체 방법.
The method according to claim 1,
Wherein the step of selecting the sacrificial page comprises:
Wherein a candidate page in which the number of replacement reservations exceeds a replacement reservation value among the plurality of candidate pages is selected as a sacrifice page to be replaced in the memory.
제1항에 있어서,
상기 복수의 후보 페이지들은,
상기 메모리에 포함된 복수의 페이지들 중 최근에 액세스(access)되었는지 여부를 나타내는 참조 비트(reference bit)에 기초하여 선정되는 페이지 교체 방법.
The method according to claim 1,
The plurality of candidate pages may include:
Wherein the page is selected based on a reference bit indicating whether the plurality of pages included in the memory have recently been accessed.
메모리에 포함된 복수의 후보 페이지들 중 교체할 희생 페이지를 선택하는 프로세서를 포함하고,
상기 프로세서는,
페이지 부재율과 관련된 시스템의 성능 상황 및 스토리지 쓰기 발생량에 기초하여 상기 복수의 후보 페이지들 각각의 교체 유보값(replacement deferring value)을 결정하고,
상기 교체 유보값을 고려하여 상기 후보 페이지들 중 상기 메모리에서 교체될 희생 페이지를 선택하고,
상기 시스템의 성능 상황은,
상기 메모리의 사용량이 변동(vary)됨에 따라 발생하는 상기 메모리에 대한 페이지 부재율의 증감에 기초하여 결정되고, 결정되며, 현재 기 할당된 메모리의 페이지 부재율과 추가 메모리가 제공되었을 때의 페이지 부재율 간의 차이에 기초하여 결정되고,
상기 프로세서는,
상기 메모리의 사용량이 증감함에 따라 상기 페이지 부재율의 변동이 미리 결정된 기준 값 이하인 경우, 페이지 부재율이 감소되도록 희생 페이지를 선택하지 않고, 상기 스토리지 쓰기 발생량이 감소되도록 선택하는 페이지 교체 장치.
And a processor for selecting a sacrificial page to be replaced among a plurality of candidate pages included in the memory,
The processor comprising:
Determining a replacement deferring value of each of the plurality of candidate pages based on a performance status of the system and a storage write occurrence amount related to a page absent rate,
Selecting a sacrifice page to be replaced in the memory among the candidate pages in consideration of the replacement reserve value,
The performance status of the system may include,
The page absent rate of the currently pre-allocated memory and the page absent rate of the page memory when the additional memory is provided is determined and determined based on an increase or decrease in the page absent rate for the memory that occurs as the usage amount of the memory varies. Rate, < / RTI >
The processor comprising:
Wherein the storage write generation amount is reduced without selecting a sacrifice page so that the page absent rate is reduced when the fluctuation of the page absence rate is equal to or less than a predetermined reference value as the usage amount of the memory is increased or decreased.
제10항에 있어서,
상기 프로세서는,
상기 스토리지 쓰기 발생량과 관련된 더티 서브 페이지의 개수 및 상기 페이지 부재율과 관련된 시스템의 성능 상황 중 적어도 하나에 기초하여 상기 교체 유보값을 결정하고,
상기 더티 서브 페이지는,
상기 후보 페이지들 각각을 구성하는 복수의 서브 페이지들 중 상기 스토리지 쓰기 발생량과 관련된 더티 서브 페이지인, 페이지 교체 장치.
11. The method of claim 10,
The processor comprising:
Determining a replacement reservation value based on at least one of a number of dirty subpages associated with the storage write amount and a performance status of the system related to the page percentage,
The dirty sub-
And a dirty subpage related to the storage write generation amount among a plurality of subpages constituting each of the candidate pages.
제11항에 있어서,
상기 시스템의 성능 상황은,
상기 메모리의 사용량 또는 상기 메모리에 페이지를 요청하는 프로세서의 성능 중요도 중 적어도 하나에 기초하여 결정되는 페이지 교체 장치.
12. The method of claim 11,
The performance status of the system may include,
The amount of memory used, or the performance importance of the processor requesting a page in the memory.
제11항에 있어서,
상기 프로세서는,
상기 더티 서브 페이지의 개수가 증가할수록 교체 유보값을 낮게 계산하는, 페이지 교체 장치.
12. The method of claim 11,
The processor comprising:
And calculates a lower reserve value as the number of the dirty sub pages increases.
제11항에 있어서,
상기 프로세서는,
상기 시스템의 성능 상황이 좋을수록 교체 유보값을 높게 계산하는 페이지 교체 장치.
12. The method of claim 11,
The processor comprising:
And the higher the performance condition of the system, the higher the replacement reserve value.
KR1020160177048A 2016-12-22 2016-12-22 Method and apparatus for replace page KR101897370B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160177048A KR101897370B1 (en) 2016-12-22 2016-12-22 Method and apparatus for replace page

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160177048A KR101897370B1 (en) 2016-12-22 2016-12-22 Method and apparatus for replace page

Publications (2)

Publication Number Publication Date
KR20180073324A KR20180073324A (en) 2018-07-02
KR101897370B1 true KR101897370B1 (en) 2018-09-11

Family

ID=62913872

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160177048A KR101897370B1 (en) 2016-12-22 2016-12-22 Method and apparatus for replace page

Country Status (1)

Country Link
KR (1) KR101897370B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102629365B1 (en) * 2021-03-31 2024-01-24 서울대학교산학협력단 Method and apparatus for memory management

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101260444B1 (en) * 2006-03-24 2013-05-06 재단법인서울대학교산학협력재단 page replacement method
KR20150043102A (en) * 2013-10-14 2015-04-22 한국전자통신연구원 Apparatus and method for managing data in hybrid memory
KR101852974B1 (en) * 2017-08-09 2018-04-30 이화여자대학교 산학협력단 Hybrid memory system and page placement method in mobile device

Also Published As

Publication number Publication date
KR20180073324A (en) 2018-07-02

Similar Documents

Publication Publication Date Title
US9639280B2 (en) Ordering memory commands in a computer system
US8909866B2 (en) Prefetching to a cache based on buffer fullness
CN102203717A (en) Solid state drive optimizer
CN109213696B (en) Method and apparatus for cache management
US10503655B2 (en) Data block sizing for channels in a multi-channel high-bandwidth memory
US10592365B2 (en) Method and apparatus for managing storage system
KR20190020825A (en) Select cache migration policy for prefetched data based on cache test area
CN114036078A (en) Method and system for managing cache devices in a storage system
US20170315915A1 (en) Leases for Blocks of Memory in a Multi-Level Memory
US8274521B2 (en) System available cache color map
US9058277B2 (en) Dynamic evaluation and reconfiguration of a data prefetcher
KR101897370B1 (en) Method and apparatus for replace page
US20230205700A1 (en) Selective speculative prefetch requests for a last-level cache
JP2017097466A (en) Storage control device, storage control method, and storage control program
US8364893B2 (en) RAID apparatus, controller of RAID apparatus and write-back control method of the RAID apparatus
US20170052899A1 (en) Buffer cache device method for managing the same and applying system thereof
JP6730344B2 (en) Cache device and method of controlling cache device
JP6919277B2 (en) Storage systems, storage management devices, storage management methods, and programs
US9760488B2 (en) Cache controlling method for memory system and cache system thereof
US20170357585A1 (en) Setting cache entry age based on hints from another cache level
EP4033346B1 (en) Affinity-based cache operation for a persistent storage device
US11467937B2 (en) Configuring cache policies for a cache based on combined cache policy testing
KR101907007B1 (en) Method and apparatus for processing page using priority of process
JP7050540B2 (en) Arrangement control device for logical storage area, arrangement control system for logical storage area, arrangement control method for logical storage area, and arrangement control program for logical storage area.
KR20160046148A (en) Data processing system and operating method of the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant