KR20210036120A - 플래시 메모리를 위한 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치 - Google Patents

플래시 메모리를 위한 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치 Download PDF

Info

Publication number
KR20210036120A
KR20210036120A KR1020190118176A KR20190118176A KR20210036120A KR 20210036120 A KR20210036120 A KR 20210036120A KR 1020190118176 A KR1020190118176 A KR 1020190118176A KR 20190118176 A KR20190118176 A KR 20190118176A KR 20210036120 A KR20210036120 A KR 20210036120A
Authority
KR
South Korea
Prior art keywords
cache
page
pages
area
flash memory
Prior art date
Application number
KR1020190118176A
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 KR1020190118176A priority Critical patent/KR20210036120A/ko
Publication of KR20210036120A publication Critical patent/KR20210036120A/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

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)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명의 실시예들은 플래시 메모리에서 사용되는 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치에 관한 것이다. 예를 들어, 플래시 메모리를 위한 시간 기반의 캐시를 교체하는 방법은, 캐시에 요청된 페이지가 있는지 여부를 판단하는 단계와 요청된 페이지가 캐시에 없는 경우 플러시 메모리에서 요청된 페이지를 획득하여 출력하는 단계와 캐시에 저장된 페이지를 제거해야 하면, 캐시의 비활성 영역에 포함된 하나 이상의 클린 페이지를 순차적으로 드롭하는 단계와 요청된 페이지가 소정의 시간 이내에 다시 요청된 경우에는 요청된 페이지를 캐시에 입력하는 단계를 포함할 수 있다.

Description

플래시 메모리를 위한 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치 {Methods for a time based cache replacement and apparatuses thereof}
본 발명은 캐시(cache) 교체 방법에 관한 것으로서, 특히 플래시 메모리에서 사용되는 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치에 관한 것이다.
플레쉬 메모리에는 낸드(NAND) 타입 플래시 메모리와 노어(NOR) 타입 플래시 메모리가 있다. 두 메모리간의 주요 차이는 버스 인터페이스가 있는지 여부이다. 낸드 플래시는 제어 입력을 갖는 I/O 인터페이스를 가지고 있으나, NOR 플래시는 S-RAM과 유사하게 직접적으로 연결되는 주소 및 데이터 버스를 가진다.
낸드 플래시 메모리는 높은 밀도, 낮은 비용 및 빠른 쓰기 동작으로 인해 데이터 저장에 적합하다. 노어 플래시는 빠른 읽기 동작 및 임의 접속 성능으로 인해 코드 저장 및 XIP(execute in place) 어플리케이션에 적합나다.
낸드 플래시 메모리에서 읽기 동작은 쓰기 동작보다 훨씬 빠르다. 따라서 플래시 메모리의 일부 대체 알고리즘은 쓰기 작업 횟수를 줄임으로써 I/O의 전체 성능을 향상시키기 위해 개발되었다. 이러한 대체 알고리즘은 LRU(Least Recently Used) 알고리즘을 수정한다.
LRU 알고리즘은 가장 간단하고 가장 일반적인 캐시 관리 접근 방식으로, 가장 최근에 사용된 페이지를 캐시어 입력하고, 마지막 참조 시간으로 정렬된 버퍼 페이지를 LRU 목록(LRU list)에서 제거한다. LRU 알고리즘은 구현하기 용이하고 메모리 캐시와 같은 크기의 객체에 능숙하다. 많은 운영 체제는 캐시 관리에 근사치 LRU를 사용한다.
최근 특정 작업 부하에 대한 LRU 알고리즘의 성능을 향상시키기 위해 EELRU(Early Eviction LRU) 및 LRFU(Least Recently/Frequently Used LRU)와 같은 다양한 알고리즘이 제안되고 있다.
EELRU는 각 페이지가 다른 페이지에 비해 얼마나 최근에 접촉되었는지를 고려하는 간단한 적응 교체 알고리즘이고, LRFU는 버퍼 캐시를 위한 블록 대체 알고리즘의 또 다른 종류이다. 제한된 히스토리를 사용하여 대체 결정을 내리는 이전의 많은 알고리즘과 달리 LRFU는 캐시 상주 기간 동안 기록된 블록의 전체 참조 기록을 사용한다. 다만, 종래 사용되는 방식들은 스토리지를 효율적으로 사용하지 못하는 문제가 있으므로, 새로운 캐시 교체 방법이 필요하다.
1. 미국 공개 번호 제2016-0196063호: APPARATUS AND METHOD FOR MANAGING BUFFER HAVING THREE STATES ON THE BASIS OF FLASH MEMORY 특허문헌 1은 플래시 메모리의 버퍼를 핫 영역과 콜드 영역으로 구분하여 관리하고, 콜드 영역에 포함된 유닛들은 버퍼 유닛(페이지)의 반출이 필요한 경우, 교체 대상으로 선택되며, 핫 영역은 적중률을 높이기 위하여 참조 시간 및 회수에 따라 선택된 버퍼 유닛들이 포함되는 내용을 개시하고 있다. 본 발명의 페이지가 활성 기간 안에 참조되었는지 여부에 따라 캐시를 활성 영역과 비활성 영역으로 분류하는 점에서 특허문헌 1이 버퍼의 적중률을 높이기 위한 핫 영역(활성 영역)과 교체할 유닛(페이지)를 선택하는 콜드 영역(비활성 영역)으로 버퍼(캐시)를 구분(분류)한다는 점에서 유사한 점이 있다. 다만, 본 발명은 활성 영역을 분류하는 기준으로 활성 기간이 최우선인 반면, 특허문헌 1은 참조 회수를 고려하고 있는 점에서 차이가 있다. 예를 들어, 본원 발명의 실시예들은 활성 기간(5분) 안에 1번 참조된 페이지 a와 활성 기간 직전(5분 1초)에 10번 참조된 페이지 b가 있는 경우, 활성 기간(예를 들어, 5분)안에 참조된 페이지만들 활성 영역으로 설정하므로 페이지 b는 활성 영역으로 분류되지 않고 페이지 a만 활성 영역으로 분류될 수 있다. 그러나 특허문헌 1은 참조 회수가 페이지 a 보다 많은 페이지 b를 핫 영역으로 선택할 수 있는 점에서 본원 발명과 차이가 있다.
본 발명의 목적은 플래시 메모리 기반 시스템을 위한 시간 기반의 새로운 캐시 관리 및 교체 방법을 제공하는 것이다.
본 발명의 다른 목적은 시간 기반의 캐시 교체 방법을 지원하는 장치를 제공하는 것이다.
본 발명에서 이루고자 하는 기술적 목적들은 이상에서 언급한 사항들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 이하 설명할 본 발명의 실시예들로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 고려될 수 있다.
이하에서는 본 발명의 실시예들로서 플래시 메모리에서 사용되는 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치에 대해서 설명한다.
본 발명의 일 실시예로서 플래시 메모리를 위한 시간 기반의 캐시를 교체하는 방법은, 캐시에 요청된 페이지가 있는지 여부를 판단하는 단계와 요청된 페이지가 캐시에 없는 경우 플러시 메모리에서 요청된 페이지를 획득하여 출력하는 단계와 캐시에 저장된 페이지를 제거해야 하면, 캐시의 비활성 영역에 포함된 하나 이상의 클린 페이지를 순차적으로 드롭하는 단계와 요청된 페이지가 소정의 시간 이내에 다시 요청된 경우에는 요청된 페이지를 캐시에 입력하는 단계를 포함할 수 있다.
상기 방법은 비활성 영역에 포함된 하나 이상의 클린 페이지가 모두 제거되었는데 캐시에 저장된 페이지를 더 제거해야 하면, 비활성 영역에 포함된 하나 이상의 더티 페이지를 순차적으로 드롭하는 단계를 더 포함할 수 있다.
이때, 하나 이상의 더티 페이지 및 하나 이상의 클린 페이지는 오른쪽에서 왼쪽 방향으로 순차적으로 드롭되고, 요청된 페이지는 캐시의 가장 왼쪽 영역에 입력될 수 있다.
또한, 터디 페이지는 캐시에서 드롭되기 전에 플래시 메모리로 플러시되는 것이 바람직하다.
상기 방법에서, 비활성 영역에 포함된 모든 페이지가 제거되었는데 캐시에 저장된 페이지를 더 제거해야 하면, 캐시의 활성 영역에 포함된 하나 이상의 클린 페이지를 순차적으로 드롭하는 단계를 더 포함할 수 있다.
이때, 캐시에 저장된 페이지를 더 제거해야 하면, 활성 영역에 포함된 하나 이상의 더티 페이지를 순차적으로 드롭하는 단계를 더 포함할 수 있다.
이때, 활성 영역은 마지막 참조 시간이 t-w 내지 t 사이에 있는 페이지들이 포함된 영역이며, t는 현재 시간을 나타내고 w는 활성 영역의 활성 기간을 나타낼 수 있다.
본 발명의 다른 실시예로서 플래시 메모리를 위한 시간 기반의 캐시를 교체하도록 구성된 장치는 활성 영역 및 비활성 영역을 포함하는 캐시와 플래시 메모리와 캐시와 플래시 메모리의 동작을 제어하는 중앙처리장치(CPU)를 포함할 수 있다.
이때, CPU는 캐시에 요청된 페이지가 있는지 여부를 판단하고, 요청된 페이지가 캐시에 없는 경우 플러시 메모리에서 요청된 페이지를 획득하여 출력하도록 제어하고, 캐시에 저장된 페이지를 제거해야 하면, 캐시의 비활성 영역에 포함된 하나 이상의 클린 페이지를 순차적으로 드롭하도록 제어하며, 요청된 페이지가 소정의 시간 이내에 다시 요청된 경우에는 요청된 페이지를 상기 캐시에 입력하도록 구성될 수 있다.
만약, 비활성 영역에 포함된 하나 이상의 클린 페이지가 모두 제거되었는데 캐시에 저장된 페이지를 더 제거해야 하면, CPU는 비활성 영역에 포함된 하나 이상의 더티 페이지를 순차적으로 드롭하도록 구성될 수 있다.
이때, 하나 이상의 더티 페이지 및 하나 이상의 클린 페이지는 오른쪽에서 왼쪽 방향으로 순차적으로 드롭되고, 요청된 페이지는 캐시의 가장 왼쪽 영역에 입력될 수 있다.
또한, 터디 페이지는 캐시에서 드롭되기 전에 플래시 메모리로 플러시될 수 있다.
만약, 비활성 영역에 포함된 모든 페이지가 제거되었는데 캐시에 저장된 페이지를 더 제거해야 하면, CPU는 캐시의 활성 영역에 포함된 하나 이상의 클린 페이지를 순차적으로 드롭하도록 구성될 수 있다.
만약, 캐시에 저장된 페이지를 더 제거해야 하면, CPU는 활성 영역에 포함된 하나 이상의 더티 페이지를 순차적으로 드롭하도록 구성될 수 있다.
이때, 활성 영역은 마지막 참조 시간이 t-w 내지 t 사이에 있는 페이지들이 포함된 영역이며, t는 현재 시간을 나타내고 w는 활성 영역의 활성 기간을 나타낼 수 있다.
상술한 본 발명의 양태들은 본 발명의 바람직한 실시예들 중 일부에 불과하며, 본원 발명의 기술적 특징들이 반영된 다양한 실시예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 발명의 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명의 실시예들에 따르면 다음과 같은 효과를 얻을 수 있다.
시간 기반의 캐시 관리 방법은 캐시 적중 횟수를 증가시키고 페이지 쓰기 횟수를 줄일 수 있다. 따라서, 플래시 메모리 기반 시스템의 메모리 쿼리 속도를 증가시킬 수 있다.
본 발명의 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 이하의 본 발명의 실시예들에 대한 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 발명을 실시함에 따른 의도하지 않은 효과들 역시 본 발명의 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되고, 첨부된 도면들은 본 발명에 대한 다양한 실시예들을 제공한다. 또한, 첨부된 도면들은 상세한 설명과 함께 본 발명의 실시 형태들을 설명하기 위해 사용된다.
도 1은 TBLRU에서 사용되는 활성 영역과 비활성 영역을 설명하기 위한 도면이다.
도 2는 시간 기반의 CFLRU 알고리즘을 설명하기 위한 도면이다.
도 3은 시간 기반의 CFLRU 알고리즘이 적용되는 시간 기반의 캐시 대체 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예로서 시간 기반의 캐시 대체 방법들이 적용되는 장치를 설명하기 위한 도면이다.
도 5 및 도 6은 본 발명의 실시예들의 효과를 설명하기 위한 도면이다.
이하에서는 본 발명의 플래시 메모리에서 사용되는 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치에 대해서 설명한다.
이하의 실시예들은 본 발명의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성할 수도 있다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.
도면에 대한 설명에서, 본 발명의 요지를 흐릴 수 있는 부분, 장치 및/또는 구성 등은 기술하지 않았으며, 당업자의 수준에서 이해할 수 있을 정도의 부분, 장치 및/또는 구성 또한 기술하지 아니하였다. 또한, 도면에서 동일한 도면 부호를 사용하여 지칭하는 부분은 장치 구성 또는 방법에서 동일한 구성 요소 또는 단계를 의미한다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "??부" 또는 "??기" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미한다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
또한, 본 발명의 실시예들에서 사용되는 특정(特定) 용어들 및/또는 기호들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
예를 들어, 시간 기반의 LRU는 TBLRU(Time Based LRU)로 불리며, 시간 기반의 CFLRU도 동일한 의미로 사용될 수 있다. 또한, 캐시는 캐시 메모리로 불릴 수 있으며 서로 동일한 의미로 사용된다. 또한, 드롭(Drop)은 버린다는 의미이며, 플러쉬(Flush)는 어느 한 장소에서 다른 장소로 데이터를 옮기거나, 해당 장소에서 데이터를 없애는 동작을 의미한다.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.
1. Clean First LRU (CFLRU)
CFLRU는 플래시 메모리 기반 스토리지 시스템을 위한 새로운 캐시 교체 방법으로 플래시 메모리의 읽기 및 쓰기 작업의 비대칭 I/O 비용을 고려하여 설계된 알고리즘이다.
CFLRU는 LRU 리스트 내 페이지 목록을 LRU 순서에 따라 유지하고, LRU 리스트를 작업 영역과 클린(Clean) 우선 영역의 두 영역으로 나눈다. 작업 영역은 최근에 참조된 페이지를 포함하고 캐시 히트(cache hit)의 대부분은 작업 영역에서 생성된다. 클린 우선 영역의 클린 페이지는, 캐시가 페이지로 다 찬 경우, 희생 대상(즉, 대체 대상)이며 클린 우선 영역의 페이지 수는 창의 크기(w)로 결정된다.
'캐시 히트'란 캐시 적중이라고도 불리며, 캐시 메모리가 갖고 있는 내용이 CPU에서 필요로 할 때에 적중했다고 한다. 캐시 히트시 CPU는 바로 주기억 장치(예를 들어, 플래시 메모리)로 가지 않고 캐시 기억 장치에서 필요한 자료를 가지고 간다. 히트율(또는, 적중률)이 높을수록 기억 장치 참조의 시간이 절약되므로 컴퓨터의 성능을 향상시킬 수 있다.
플래시 메모리의 교체 비용을 줄이기 위해, CFLRU는 클린 우선 지역의 클린 페이지를 LRU 순서에 따라 삭제한다. 클린 우선 영역에 클린 페이지가 없으면 LRU 순서로 더티 페이지를 제거한다. CFLRU 목록의 페이지가 참조되면 페이지가 MRU로 이동된다. CFLRU 대체 알고리즘은 캐시 적중률의 저하가 성능을 악화시키지 않을 때까지 쓰기 작업 및 잠재적 삭제 작업 수를 줄이도록 한다. 그러나 이는 가장 많이 참조 된 페이지를 제거할 수 있는 문제가 발생할 수 있으며, 이는 캐시 적중 횟수를 줄이고 시스템 속도를 지연시킬 수 있다.
2. 시간 기반의 캐시 교체 방법 및 장치
플래시 메모리는 모바일 컴퓨팅 장치용 데이터 스토리지로 빠르게 배치되고 있다. 낮은 전자력, 비 휘발성 저장 장치, 고성능, 물리적 안정성 및 휴대성을 제공한다. 플래시 메모리의 성공은 주로 자기(magnetic) 디스크 드라이브보다 빠른 읽기 성능과 같은 장점 때문이다. 수십 년 동안 전통적인 운영 체제는 보조 스토리지가 자기 디스크로 구성된다고 가정하고 다양한 방식으로 최적화되었다. 수 기가 바이트의 용량을 갖는 플래시 메모리 칩은 모바일 장치의 2차 스토리지를 위해 자기 디스크를 플래시 메모리로 대체하고 있다. 따라서 플래시 메모리 기반 스토리지를 최적화하기 위해 캐시 대체 정책과 같은 다양한 운영 체제 정책을 다시 연구할 필요가 있다.
본 발명의 실시예들은 2차 기억 장치로서 플래시 메모리의 캐시 대체 정책에 초점을 맞추고 있다. 플래시 메모리가 적용되는 운영 체제는 캐시 적중률 대신 쓰기 작업 수를 고려하는 것이 바람직하다. 이하에서는 CFLRU를 위한 최적의 크기를 찾기 위해 소정의 시간(예를 들어, 5분 이하 등) 기반의 규칙을 적용하는 것을 고려한 시간 기반의 LRU(Time-based Least Recently Used: TBLRU)라고 하는 새로운 캐시 교체 알고리즘에 대해서 설명한다.
CFLRU는 쓰기 작업을 줄이기 위해 일정량의 더티(dirtya) 페이지를 의도적으로 캐시에 보관한다. 하지만 이는 캐시 메모리의 용량을 과도하게 소모하는 문제가 있다. 따라서, 시간 기반의 LRU의 기본 모티브는 가장 많이 참조되는 페이지는 높은 참조 속도를 제공하기 위해 캐시 메모리에 상주해야 한다는 것이다. 예를 들어, TBLRU는 CFLRU 알고리즘을 기반으로 수행되되, 소정의 시간(예를 들어, 5분 이하)이 CFLRU 알고리즘에 고려될 수 있다. 예를 들어, 5분마다 참조되는 페이지는 캐시 메모리에 상주하도록 설정하는 것이 바람직하다.
플래시 메모리를 위한 대체 정책에서 두 가지 종류의 대체 비용이 고려된다.
첫 번째 교체 비용은 요청된 페이지가 플래시 메모리에서 RAM (Random Access Memory)으로 가져올 때 생성된다. 이 경우는 요청된 페이지를 캐시에서 사용할 수 없는 경우 발생한다.
두 번째 교체 비용은 페이지가 캐시에서 플래시 메모리로 플러쉬될 때 생성된다. 퇴거(eviction) 과정에서 비용이 얼마나 비싼지를 결정하는 두 가지 경우가 있다. 축출된 페이지가 클린 페이지인 경우, 클린 페이지는 플래시 메모리에 원본 페이지와 동일한 복사본을 가지고 있기 때문에 캐시에서 단순히 삭제될 수 있다. 반면 퇴거된 페이지가 더티 페이지인 경우, 캐시에서 삭제하기 전에 플래시 메모리로 플러시(flush)되는 것이 바람직하다. 즉, 클린 페이지에 높은 제거 우선 순위를 부여하면 교체 비용을 최소화 할 수 있다.
만약, 캐시 히트 카운트를 증가시킴으로써 앞에서 언급한 대체 비용 중 어느 하나를 만족시키는 대체 알고리즘은 더티 페이지를 제거하고, 더티 페이지를 플래시 메모리에 기록하는 비용을 증가시킬 것이다. 반면에 더티 페이지를 캐시에 최대한 많이 남겨 두는 경우, 쓰기 작업 횟수를 줄임으로써 두 번째 교체 비용을 최소화할 수 있다. 그러나 이러한 방법들을 사용하면 캐시가 가득 차게 되어 결과적으로 캐시 누락 수가 크게 증가할 수 있다.
따라서, 캐시 히트 수를 늘리려면 요청한 페이지의 빈도를 고려하는 것이 바람직하다. 이하에서 설명하는 실시예들은 상술한 두 종류의 교체 비용을 최소화하는 하이브리드 방식에 관한 것이다. 즉, 본 발명의 실시예들은 CFLRU 알고리즘을 시간 기반으로 수정한 새로운 캐시 대체 알고리즘을 제안한다.
예를 들어, 소정 시간 법칙을 CFLRU 알고리즘에 적용할 수 있다. 즉, 5분마다 참조되는 페이지는 메모리에 상주하는 것이 바람직하다. 본 발명의 실시예들은 웹 브라우저, Facebook 또는 선호하는 게임과 같이 정기적으로 특정 장치에서 실행되는 작은 응용 프로그램 집합을 사용하는 사용자의 동작을 기반으로 한다. 보다 상세하게는, 사용자 경험을 기반으로 설계되는 TBLRU는 플래시 메모리의 동일한 메모리 영역이 반복적으로 참조되는 경우에 적용될 수 있다.
플래시 메모리를 위한 시간 기반의 캐시 교체 방법은 먼저 LRU 목록(예를 들어, 캐시)을 활성 영역과 비활성 영역의 두 영역으로 나눈다. 이때, 'w'는 활성 영역의 활성 기간을 의미하고, 't'는 현재 시간을 나타낸다. 이때, w의 단위는 ms이다. 활성 영역은 마지막 참조 시간이 [t-w에서 t] 사이에 있는 페이지를 포함할 수 있다. 반면에, 이 시간 간격 밖에 있는 마지막으로 참조된 시간을 갖는 가장 덜 참조 된 페이지는 비활성 영역에 있는 것으로 가정한다.
도 1은 TBLRU에서 사용되는 활성 영역과 비활성 영역을 설명하기 위한 도면이다.
시간 기반의 캐시 교체 방법(즉, 시간 기반 CFLRU)은 플래시 쓰기 비용을 절약하기 위해 비활성 영역에서 먼저 제거 할 클린 페이지를 선택한다. 이 영역에 클린 페이지가 없으면 비활성 영역의 가장 오른쪽에 위치(또는 LRU의 가장 오른쪽에 위치)하는 더티 페이지가 축출된다. 더티 페이지나 클린 페이지가 비활성 영역에 없는 경우에는 동일한 제거 전략이 활성 영역에 적용된다.
도 1을 참조하면, 도 1의 희생자 페이지의 퇴거 명령은 P7, P5, P8, P6, P4, P2, P3 및 P1 순서로 이뤄진다. 시간 기반 CFLRU는 항상 클린 페이지를 먼저 선택하기 때문에 쓰기 작업 수가 줄어든다. 또한 가장 많이 참조된 페이지는 높은 캐시 적중률을 보장하기 위해 활성 영역에 보관된다. 시간 기반 CFLRU의 유효성은 활성 기간 w에 의존한다. 즉, 활성 기간이 너무 짧으면 적중률이 크게 떨어질 수 있으므로, 활성화 기간을 적절하게 조정하는 것이 바람직하다.
도 2는 시간 기반의 CFLRU 알고리즘을 설명하기 위한 도면이고, 도 3은 시간 기반의 CFLRU 알고리즘이 적용되는 시간 기반의 캐시 대체 방법을 설명하기 위한 도면이다.
도 2에서 설명한 알고리즘은 도 3에 적용될 수 있다.
도 3을 참조하면, 캐시 대체 방법은 캐시 메모리를 활성 영역과 비활성 영역으로 구분한다(S301).
S301 단계에서, 활성 영역 및 비활성 영역의 크기는 캐시 메모리의 크기에 따라 결정되며, 사용자의 요구사항에 의해 조정될 수 있다. 물론 시스템 상에 고정된 크기로 설정될 수 있다. 활성 영역의 크기는 w (ms)로 설정되고, t는 현재 시간을 의미한다. 활성 영역은 페이지의 마지막 참조 시간이 [t-w, t] 내에 있는 페이지를 포함한다. 반면에, 해당 시간 밖에 있는 페이지는 비활성 영역에 저장될 수 있다.
컴퓨터나 기타 단말기를 통해 특정 페이지를 요청하기 위해 해당 페이지를 식별하기 위한 페이지 식별자가 입력되면, 캐시 메모리에 해당 페이지가 존재하는지 여부를 판단한다 (S310).
S310 단계에서 만약 요청된 페이지가 캐시에 존재하면 해당 페이지를 출력한다 (S311).
만약 요청된 페이지가 캐시에 존재하지 않고 캐시에 저장된 페이지를 제거해야 하는 경우에는, 캐시를 대체하기 위해 비활성 영역에 클린 페이지가 존재하는지 여부를 판단한다(S320).
S320 단계에서 클린 페이지가 비활성 영역에 존재하면, 클린 페이지를 캐시에서 드롭(drop)하고, 요청된 페이지를 플래시 메모리에서 획득하여 출력하며, 요청된 페이지를 LRU 목록의 왼쪽 끝에 추가한다 (S321).
S321 단계에서, 만약 클린 페이지가 둘 이상 존재하는 경우에는 비활성 영역의 오른쪽 끝부터 순차적으로 클린 페이지(즉, 캐시에 입력된지 상대적으로 시간이 많이 경과한 페이지)를 드롭한다.
S320 단계에서 비활성 영역에 클린 페이지가 존재하지 않고 캐시에 저장된 페이지를 (더) 제거해야 하면, 그 다음으로 비활성 영역에 터티 페이지가 존재하는지 여부를 판단한다 (S330).
S330 단계에서 더티 페이지가 존재하면 더티 페이지를 플래시 메모리로 플러쉬하고, 캐시에서 더티 페이지를 드롭하고, 요청된 페이지를 플래시 메모리에서 획득하여 출력하며, 요청된 페이지를 LRU 목록의 왼쪽 끝에 추가한다 (S331).
S331 단계에서, 만약 더티 페이지가 둘 이상 존재하는 경우에는 비활성 영역의 오른쪽 끝부터 왼쪽에 있는 순서로(순차적으로) 더티 페이지를 플래시 메모리로 플러쉬하고 및 캐시에서 드롭한다.
S330 단계에서 더티 페이지가 비활성 영역에 존재하지 않으며, 활성 영역에 클린 페이지가 존재하는지 여부를 판단한다 (S340).
S340 단계에서, 클린 페이지가 비활성 영역에 존재하면, 클린 페이지를 캐시에서 드롭하고, 요청된 페이지를 플래시 메모리에서 획득하여 출력하며, 요청된 페이지를 LRU 목록의 왼쪽 끝에 추가한다 (S341).
S341 단계에서, 만약 클린 페이지가 둘 이상 존재하는 경우에는 활성 영역의 오른쪽 끝부터 왼쪽 순서로 클린 페이지를 드롭한다.
S340 단계에서, 클린 페이지가 활성 영역에 존재하지 않으면, 더티 페이지가 활성 영역에 존재하는지 여부를 판단한다 (S350).
S350 단계에서, 더티 페이지가 활성 영역에 존재하면 더티 페이지를 플래시 메모리로 플러쉬하고, 캐시에서 더티 페이지를 드롭하며, 요청된 페이지를 플래시 메모리에서 획득하여 출력하고, 요청된 페이지를 LRU 목록의 왼쪽 끝에 추가한다 (S351).
S351 단계에서, 만약 더티 페이지가 활성 영역에 둘 이상 존재하는 경우에는 활성 영역의 오른쪽 끝부터 왼쪽 순서로 클린 페이지를 드롭한다.
S350 단계에서, 더티 페이지가 캐시의 활성 영역에 존재하지 않으면, 요청된 페이지를 플래시 메모리에서 획득하여 출력하고, 요청된 페이지를 LRU 목록의 왼쪽 끝에 추가한다 (S352).
본 발명의 실시예로서, S311, S321, S331, S341, S351, S352 단계를 수행한 후에는 요청된 페이지가 소정 시간 이내에 다시 요청되었는지 여부를 판단할 수 있다 (S360).
S360 단계에서 소정 시간은 5분이 될 수 있으며, 시스템 상황이나 사용자 요구 사항을 반영하여 다른 시간으로 설정될 수 있다. 예를 들어, 요청된 페이지가 5분 이내에 다시 요청된 경우에는, 해당 페이지를 플래시 메모리가 아닌 캐시 메모리에 저장 및 상주하도록 하여 요청 페이지를 바로 출력할 수 있다.
S360 단계에서, 요청된 페이지가 소정 시간 이내에 다시 요청된 것이 아니라면, 플래시 메모리에 저장하거나 삭제할 수 있다 (S361).
본 발명의 다른 실시예로서, S360 단계에서 소정의 시간뿐 아니라 횟수도 고려될 수 있다. 예를 들어, 소정의 시간(예를 들어 5분) 이내에 N회(예를 들어, 2회 이상) 반복하여 동일한 페이지가 요청되면, 요청된 페이지를 캐시 메모리의 활성 영역에 저장할 수 있다. 만약, 소정 시간 이내에 N회 미만으로 동일 페이지가 요청되면, 해당 페이지를 캐시 메모리의 비활성 영역에 저장할 수 있다.
본 발명의 또 다른 실시예로서, S310, S320, S330, S340 및 S350 단계는 순차적으로 수행되되, 어느 한 단계에서 'Yes' 조건을 만족하는 경우에는 다음 단계로 내려가지 않고, Yes에 따른 화살표가 지시하는 단계로 넘어가도록 설정될 수 있다.
본 발명의 또 다른 실시예로서, 캐시 메모리의 완전한 플러시가 필요한 경우에는 S310 내지 S360 단계 및 그 부단계들이 모두 수행된다.
도 4는 본 발명의 실시예로서 시간 기반의 캐시 대체 방법들이 적용되는 장치를 설명하기 위한 도면이다.
시간 기반의 캐시 대체 방법을 지원하는 TBLRU 장치는 일반적으로 컴퓨터, 스마트폰, 개인 단말기, 공용 단말기, 티브이 등등이 될 수 있다. TBLRU 장치는 캐시 메모리(100), 플래시 메모리(200) 및 중앙 처리 장치(CPU; 300)를 포함할 수 있다. 이때, CPU는 프로세서 등으로 불릴 수 있다.
본 발명의 실시예들에서 캐시 메모리(100)란, 상대적으로 느린 주기억장치 사이에서 두 장치 간의 데이터 접근속도를 완충해 주기 위해 사용되는 고속의 기억장치를 의미한다. 또한, 캐시 메모리(100)는 전원이 공급되는 상태에서는 기억 내용을 유지하는 임시 메모리이다. CPU(300)는 플래시 메모리(200)에 저장된 데이터를 읽어들이면서, 자주 사용하는 데이터는 아예 캐시 메모리(100)에 저장한 다음 다시 사용할 때는 플래시 메모리(200)가 아닌 캐시 메모리(100)에서 가져올 수 있다.
플래시 메모리(200)는 전원이 끊겨도 저장된 정보가 지워지지 않는 비휘발성 기억 장치를 의미한다. 플래시 메모리(200)는 전기적인 방법으로 정보를 자유롭게 입출력할 수 있으며, 전력 소모가 적고 고속프로그래밍이 가능하다. 또한 휴대형 기기에서 대용량의 정보 저장 요도로 사용될 수 있다. 또한, 플래시 메모리(200)는 낸드 형과 노아 형으로 구분될 수 있다.
캐시 메모리(100)는 CPU(300)와 별도로 구성될 수 있으며, 단말기 형태에 따라 CPU(300) 내부에 구비될 수 있다.
도 4에서 설명하는 TBLRU 장치는 도 2 및/또는 도 3에서 설명한 알고리즘 및/또는 방법들이 적용될 수 있다. 예를 들어, CPU(300)는 S310 내지 S360 단계를 수행함으로써, 캐시 메모리 내에 요청된 페이지가 존재하는지 여부 및 캐시 대체 방법을 수행하기 위한 판단 과정을 수행할 수 있다. 또한, CPU(300)는 S311, S321, S331, S341, S351, S352 단계를 캐시 메모리(100) 및 플래시 메모리(200)와 연동하여 수행하도록 구성될 수 있다.
3. 구현 및 그에 따른 효과
도 5 및 도 6은 본 발명의 실시예들의 효과를 설명하기 위한 도면이다.
도 5(a)는 페이지 식별자에 따른 참조 횟수를 나타내는 도면이고, 도 5(b)는 도 5(a)의 테스트에 사용되는 페이지 수의 범위 및 확률을 나타낸다. 도 6(a)는 TBLRU 방법 및 다른 캐시 대체 방법들의 퍼포먼스를 도시하고 있으며, 도 6(b)는 퍼포먼스 결과를 수치화하여 나타낸 것이다.
도 5의 실험을 위해, 플래시 메모리를 나타내기 위해 1000페이지 크기 (페이지 ID는 0에서 999까지)의 배열을 정의한다. 200 페이지 크기 (플래시 메모리 크기의 1/5)를 갖는 또 다른 배열은 캐시 메모리를 나타낸다. 특정 페이지에 대한 요청의 도달 비율은 1 request/ms 로 설정된다. 또한, 테스트 데이터는 '1회의 읽기'/'8회의 쓰기' 비율로 읽기 및 쓰기 작업을 모두 포함하는 10000개의 요청 집합이다.
상술한 바와 같이 사용자가 TBLRU 장치에서 작은 응용 프로그램 세트를 자주 사용하는 경우, 일부 특정 페이지 범위에 높은 참조 속도를 설정할 수 있다. 테스트 데이터의 플롯은 도 5(a)에 도시되어 있으며, 테스트 데이터의 요청된 페이지 분포는 도 5(b)를 참조할 수 있다.
도 3에서 설명한 활성 구간의 크기 w는 w에 대한 최상의 값을 찾기 위해 [0 ~ 570ms]의 범위에서 테스트하였다. 본 발명의 실시예를 위한 테스트를 보장하기 위해 각 테스트 설정에 대해 20회씩 실시하였다. 비교 대상으로는 종래 캐시 대체 방법들인 LRU 및 CFLRU가 사용되었으며, 시간 기반 CFLRU와 비교하기 위해 페이지 미스 비용과 페이지 쓰기 비용을 결합한 결합 비용 메트릭을 정의하였다.
도 5(b)에서 알 수 있듯이 쓰기 비용은 읽기 비용보다 6.449배 더 비싸다. 따라서 결합 된 비용은 다음과 같이 계산될 수 있다.
combined cost = (page writes Х 6.449) + page misses
성능 평가는 두 단계로 수행될 수 있다.
첫 번째 단계는 활성 기간 w의 다른 값을 테스트하여 w의 최상의 값을 찾는다. 두 번째 단계는 시간 기반 CFLRU (최상의 w와 함께)를 LRU 및 CFLRU와 비교하는 것이다. 도 6(a)에서 알 수 있듯이 결합된 비용은 활성 기간 w가 420ms인 최소값에 도달하고 활성 영역에 상주하는 평균 페이지 수는 약 180이다. 결합된 비용의 최소값은 활성 영역에서 가장 최근에 참조된 페이지의 수 및 축출을 위한 더티 페이지의 수로 결정될 수 있다.
도 6(b)는 LRU, CFLRU 및 시간 기반 CFLRU의 세 가지 알고리즘을 사용하여 테스트 데이터에 대한 실험 결과를 수치화한 것이다. 첫 번째 테스트 데이터는 1 : 8에서 읽기 요청 수와 쓰기 요청 수의 비율을 가지며, 두 번째 테스트 데이터에는 쓰기 요청만 수행되었다. 도 6(b)에서 알 수 있듯이 시간 기반 CFLRU의 성능은 LRU 및 CFLRU의 성능보다 우수한 것을 확인할 수 있다.
상술한 본 발명의 실시예들은 본 발명의 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다. 또한, 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함할 수 있다.

Claims (14)

  1. 플래시 메모리를 위한 시간 기반의 캐시를 교체하는 방법에 있어서,
    상기 캐시에 요청된 페이지가 있는지 여부를 판단하는 단계;
    상기 요청된 페이지가 상기 캐시에 없는 경우 플러시 메모리에서 상기 요청된 페이지를 획득하여 출력하는 단계;
    상기 캐시에 저장된 페이지를 제거해야 하면, 상기 캐시의 비활성 영역에 포함된 하나 이상의 클린 페이지를 순차적으로 드롭하는 단계; 및
    상기 요청된 페이지가 소정의 시간 이내에 다시 요청된 경우에는 상기 요청된 페이지를 상기 캐시에 입력하는 단계를 포함하는, 시간 기반의 캐시 교체 방법.
  2. 제1항에 있어서,
    상기 비활성 영역에 포함된 상기 하나 이상의 클린 페이지가 모두 제거되었는데 상기 캐시에 저장된 페이지를 더 제거해야 하면, 상기 비활성 영역에 포함된 하나 이상의 더티 페이지를 순차적으로 드롭하는 단계를 더 포함하는, 시간 기반의 캐시 교체 방법.
  3. 제2항에 있어서,
    상기 하나 이상의 더티 페이지 및 상기 하나 이상의 클린 페이지는 오른쪽에서 왼쪽 방향으로 순차적으로 드롭되고,
    상기 요청된 페이지는 상기 캐시의 가장 왼쪽 영역에 입력되는, 시간 기반의 캐시 교체 방법.
  4. 제2항에 있어서,
    상기 터디 페이지는 상기 캐시에서 드롭되기 전에 상기 플래시 메모리로 플러시되는, 시간 기반의 캐시 교체 방법.
  5. 제3항에 있어서,
    상기 비활성 영역에 포함된 모든 페이지가 제거되었는데 상기 캐시에 저장된 페이지를 더 제거해야 하면, 상기 캐시의 활성 영역에 포함된 하나 이상의 클린 페이지를 순차적으로 드롭하는 단계를 더 포함하는, 시간 기반의 캐시 교체 방법.
  6. 제5항에 있어서,
    상기 캐시에 저장된 페이지를 더 제거해야 하면, 상기 활성 영역에 포함된 하나 이상의 더티 페이지를 순차적으로 드롭하는 단계를 더 포함하는, 시간 기반의 캐시 교체 방법.
  7. 제6항에 있어서,
    상기 활성 영역은 마지막 참조 시간이 t-w 내지 t 사이에 있는 페이지들이 포함된 영역이며, t는 현재 시간을 나타내고 w는 상기 활성 영역의 활성 기간을 나타내는, 시간 기반의 개시 교체 방법.
  8. 플래시 메모리를 위한 시간 기반의 캐시를 교체하도록 구성된 장치는,
    활성 영역 및 비활성 영역을 포함하는 캐시;
    플래시 메모리; 및
    상기 캐시와 상기 플래시 메모리의 동작을 제어하는 중앙처리장치(CPU)를 포함하되,
    상기 CPU는:
    상기 캐시에 요청된 페이지가 있는지 여부를 판단하고,
    상기 요청된 페이지가 상기 캐시에 없는 경우 상기 플러시 메모리에서 상기 요청된 페이지를 획득하여 출력하도록 제어하고,
    상기 캐시에 저장된 페이지를 제거해야 하면, 상기 캐시의 비활성 영역에 포함된 하나 이상의 클린 페이지를 순차적으로 드롭하도록 제어하며,
    상기 요청된 페이지가 소정의 시간 이내에 다시 요청된 경우에는 상기 요청된 페이지를 상기 캐시에 입력하도록 구성되는, 장치.
  9. 제8항에 있어서,
    상기 비활성 영역에 포함된 상기 하나 이상의 클린 페이지가 모두 제거되었는데 상기 캐시에 저장된 페이지를 더 제거해야 하면, 상기 CPU는 상기 비활성 영역에 포함된 하나 이상의 더티 페이지를 순차적으로 드롭하도록 구성되는, 장치.
  10. 제9항에 있어서,
    상기 하나 이상의 더티 페이지 및 상기 하나 이상의 클린 페이지는 오른쪽에서 왼쪽 방향으로 순차적으로 드롭되고,
    상기 요청된 페이지는 상기 캐시의 가장 왼쪽 영역에 입력되는, 장치.
  11. 제9항에 있어서,
    상기 터디 페이지는 상기 캐시에서 드롭되기 전에 상기 플래시 메모리로 플러시되는, 장치.
  12. 제10항에 있어서,
    상기 비활성 영역에 포함된 모든 페이지가 제거되었는데 상기 캐시에 저장된 페이지를 더 제거해야 하면, 상기 CPU는 상기 캐시의 활성 영역에 포함된 하나 이상의 클린 페이지를 순차적으로 드롭하도록 구성되는, 장치.
  13. 제12항에 있어서,
    상기 캐시에 저장된 페이지를 더 제거해야 하면, 상기 CPU는 상기 활성 영역에 포함된 하나 이상의 더티 페이지를 순차적으로 드롭하도록 구성되는, 장치.
  14. 제13항에 있어서,
    상기 활성 영역은 마지막 참조 시간이 t-w 내지 t 사이에 있는 페이지들이 포함된 영역이며, t는 현재 시간을 나타내고 w는 상기 활성 영역의 활성 기간을 나타내는, 장치.
KR1020190118176A 2019-09-25 2019-09-25 플래시 메모리를 위한 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치 KR20210036120A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190118176A KR20210036120A (ko) 2019-09-25 2019-09-25 플래시 메모리를 위한 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190118176A KR20210036120A (ko) 2019-09-25 2019-09-25 플래시 메모리를 위한 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치

Publications (1)

Publication Number Publication Date
KR20210036120A true KR20210036120A (ko) 2021-04-02

Family

ID=75466801

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190118176A KR20210036120A (ko) 2019-09-25 2019-09-25 플래시 메모리를 위한 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치

Country Status (1)

Country Link
KR (1) KR20210036120A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230009121A (ko) * 2021-07-08 2023-01-17 창원대학교 산학협력단 기계 학습 기반 페이지 교체 정책

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
1. 미국 공개 번호 제2016-0196063호: APPARATUS AND METHOD FOR MANAGING BUFFER HAVING THREE STATES ON THE BASIS OF FLASH MEMORY
다만, 본 발명은 활성 영역을 분류하는 기준으로 활성 기간이 최우선인 반면, 특허문헌 1은 참조 회수를 고려하고 있는 점에서 차이가 있다. 예를 들어, 본원 발명의 실시예들은 활성 기간(5분) 안에 1번 참조된 페이지 a와 활성 기간 직전(5분 1초)에 10번 참조된 페이지 b가 있는 경우, 활성 기간(예를 들어, 5분)안에 참조된 페이지만들 활성 영역으로 설정하므로 페이지 b는 활성 영역으로 분류되지 않고 페이지 a만 활성 영역으로 분류될 수 있다. 그러나 특허문헌 1은 참조 회수가 페이지 a 보다 많은 페이지 b를 핫 영역으로 선택할 수 있는 점에서 본원 발명과 차이가 있다.
본 발명의 페이지가 활성 기간 안에 참조되었는지 여부에 따라 캐시를 활성 영역과 비활성 영역으로 분류하는 점에서 특허문헌 1이 버퍼의 적중률을 높이기 위한 핫 영역(활성 영역)과 교체할 유닛(페이지)를 선택하는 콜드 영역(비활성 영역)으로 버퍼(캐시)를 구분(분류)한다는 점에서 유사한 점이 있다.
특허문헌 1은 플래시 메모리의 버퍼를 핫 영역과 콜드 영역으로 구분하여 관리하고, 콜드 영역에 포함된 유닛들은 버퍼 유닛(페이지)의 반출이 필요한 경우, 교체 대상으로 선택되며, 핫 영역은 적중률을 높이기 위하여 참조 시간 및 회수에 따라 선택된 버퍼 유닛들이 포함되는 내용을 개시하고 있다.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230009121A (ko) * 2021-07-08 2023-01-17 창원대학교 산학협력단 기계 학습 기반 페이지 교체 정책

Similar Documents

Publication Publication Date Title
US8639883B2 (en) Reducing write amplification in a cache with flash memory used as a write cache
US10552317B2 (en) Cache allocation in a computerized system
Jo et al. FAB: Flash-aware buffer management policy for portable media players
US9177670B1 (en) Method and apparatus for flash cache management
US20170139825A1 (en) Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach
US11194710B2 (en) Garbage collection—automatic data placement
US20150127889A1 (en) Nonvolatile memory system
CN110968253B (zh) 一种数据存储方法、装置及系统
KR102453192B1 (ko) 다른 캐시에서의 엔트리들의 가용성을 기반으로 한 캐시 엔트리 교체
US11809330B2 (en) Information processing apparatus and method
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
JP6711121B2 (ja) 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
KR102304130B1 (ko) 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치
Ramasamy et al. RFFE: A buffer cache management algorithm for flash-memory-based SSD to improve write performance
KR20150004949A (ko) 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법
KR20090107098A (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
TW201719431A (zh) 寫入命令過濾技術
KR102195896B1 (ko) 디스크 캐시 제어 장치 및 방법
US20120047330A1 (en) I/o efficiency of persistent caches in a storage system
KR20210036120A (ko) 플래시 메모리를 위한 시간 기반의 캐시 교체 방법 및 이를 지원하는 장치
KR101284465B1 (ko) 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체
Kim et al. LSF: a new buffer replacement scheme for flash memory-based portable media players
US20140359228A1 (en) Cache allocation in a computerized system
KR101153688B1 (ko) 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application