KR20220142190A - 효율적인 캐시 교체를 위한 메모리 제어 방법 및 장치 - Google Patents

효율적인 캐시 교체를 위한 메모리 제어 방법 및 장치 Download PDF

Info

Publication number
KR20220142190A
KR20220142190A KR1020210048625A KR20210048625A KR20220142190A KR 20220142190 A KR20220142190 A KR 20220142190A KR 1020210048625 A KR1020210048625 A KR 1020210048625A KR 20210048625 A KR20210048625 A KR 20210048625A KR 20220142190 A KR20220142190 A KR 20220142190A
Authority
KR
South Korea
Prior art keywords
block
memory control
reference block
cache
replacement candidate
Prior art date
Application number
KR1020210048625A
Other languages
English (en)
Other versions
KR102575380B1 (ko
Inventor
박세진
최혜정
Original Assignee
계명대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 계명대학교 산학협력단 filed Critical 계명대학교 산학협력단
Priority to KR1020210048625A priority Critical patent/KR102575380B1/ko
Publication of KR20220142190A publication Critical patent/KR20220142190A/ko
Application granted granted Critical
Publication of KR102575380B1 publication Critical patent/KR102575380B1/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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative cache

Landscapes

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

Abstract

효율적인 캐시 교체를 위한 메모리 제어 방법 및 장치가 개시된다. 메모리 제어 방법은 특정 시점까지의 참조 블록들로 구성된 제1 길이의 입력 시퀀스를 참조 블록 예측 모델에 입력하는 단계; 상기 참조 블록 예측 모델로부터 상기 특정 시점 이후의 참조 블록들을 예측하기 위한 델타들로 구성된 제2 길이의 출력 시퀀스를 식별하는 단계; 상기 식별된 출력 시퀀스와 직전 시점의 참조 블록을 이용하여 상기 특정 시점 이후에 참조될 가능성이 있는 참조 블록을 예측하는 단계; 및 상기 특정 시점 이후에 참조될 가능성이 있는 것으로 예측된 참조 블록을 예측 버퍼에 저장하는 단계를 포함할 수 있다.

Description

효율적인 캐시 교체를 위한 메모리 제어 방법 및 장치{MEMORY CONTROL METHOD AND APPARATUS FOR EFFICIENT CACHE REPLACEMENT}
본 발명은 효율적인 캐시 교체를 위한 메모리 제어 방법 및 장치에 관한 것으로, 보다 구체적으로는 과거의 참조 블록을 기반으로 미래에 이용될 가능성이 있는 참조 블록을 예측함으로써 효율적인 캐시 교체 방법을 제공하는 메모리 제어 방법 및 장치에 관한 것이다.
제한적인 메모리 스토리지 디바이스인 캐시를 효율적으로 활용하기 위해서 캐시 관리는 필수적이다. 그중 캐시 교체 정책이 존재하는데 기존 캐시 교체 정책은 미래의 블록 참조 패턴을 알지 못해 미래에 참조될 블록을 제거하여 캐시 유용성을 보장할 수 없다.
이에 대해 머신 러닝은 과거의 블록 참조 패턴을 학습하여 미래의 블록 참조 패턴을 예측할 수 있으며, 이전에도 머신 러닝으로 접근한 사례가 존재한다. 그러나 이러한 이전의 사례들은 단지 미래의 블록 참조 패턴을 예측할 뿐 실제 미래에 참조될 블록 자체를 예측하지는 못한다는 한계가 있다.
본 발명은 Sequence-to-Sequence 기반의 참조 블록 예측 모델을 통해 과거의 참조 블록을 이용하여 미래에 이용될 가능성이 있는 참조 블록을 예측함으로써 효율적인 캐시 교체 방법을 제공하는 메모리 제어 방법 및 장치를 제공한다.
본 발명의 일실시예에 따른 메모리 제어 방법은 특정 시점까지의 참조 블록들로 구성된 제1 길이의 입력 시퀀스를 참조 블록 예측 모델에 입력하는 단계; 상기 참조 블록 예측 모델로부터 상기 특정 시점 이후의 참조 블록들을 예측하기 위한 델타들로 구성된 제2 길이의 출력 시퀀스를 식별하는 단계; 상기 식별된 출력 시퀀스와 직전 시점의 참조 블록을 이용하여 상기 특정 시점 이후에 참조될 가능성이 있는 참조 블록을 예측하는 단계; 및 상기 특정 시점 이후에 참조될 가능성이 있는 것으로 예측된 참조 블록을 예측 버퍼에 저장하는 단계를 포함할 수 있다.
상기 출력 시퀀스는 상기 입력 시퀀스를 구성하는 인접한 참조 블록들 사이의 차이를 이용하여 결정될 수 있다.
상기 예측하는 단계는 상기 식별된 출력 시퀀스의 델타와 상기 델타의 직전 시점에 대한 참조 블록을 합산함으로써 상기 델타에 대응하는 시점에서 참조될 가능성이 있는 참조 블록을 예측할 수 있다.
상기 제1 길이의 입력 시퀀스는 상기 예측 버퍼가 비어 있는 경우, 실제 참조가 수행된 참조 블록에 대한 정보를 저장하고 있는 히스토리 블록(History block)의 리스트를 이용하여 결정될 수 있다.
상기 제1 길이의 입력 시퀀스는 상기 예측 버퍼에 저장된 참조 블록의 개수가 상기 입력 시퀀스의 제1 길이 보다 짧은 경우, 상기 예측 버퍼에 저장된 참조 블록 및 상기 히스토리 블록에 포함된 참조 블록을 연결하여 결정될 수 있다.
상기 제1 길이의 입력 시퀀스는 상기 예측 버퍼에 저장된 참조 블록의 개수가 상기 입력 시퀀스의 제1 길이를 충족하는 경우, 상기 예측 버퍼에 저장된 참조 블록을 이용하여 결정될 수 있다.
상기 제1 길이의 입력 시퀀스는 특정 시점까지의 참조 블록들이 시간 순서대로 정렬될 수 있다.
본 발명의 일실시예에 따른 메모리 제어 방법은 캐시 내 여유 공간이 없는 상황에서 신규 참조 블록이 상기 캐시 내에 존재하지 않는 경우, 상기 캐시 내에 존재하는 참조 블록들 중 가장 오랫동안 참조되지 않은 참조 블록을 교체 후보 블록으로 선택하는 단계; 상기 선택된 교체 후보 블록이 예측 버퍼 내에 존재하는 지 여부에 따라 상기 선택된 교체 후보 블록의 제거 여부를 판단하는 단계; 및 상기 선택된 교체 후보 블록을 제거하는 것으로 판단된 경우, 상기 선택된 교체 후보 블록을 제거하고, 상기 신규 참조 블록을 상기 캐시에 추가하는 단계를 포함할 수 있다.
상기 판단하는 단계는 상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하지 않는 경우, 상기 선택된 교체 후보 블록을 제거하는 것으로 판단하고, 상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하는 경우, 상기 선택된 교체 후보 블록을 제거하지 않는 것으로 판단할 수 있다.
상기 판단하는 단계는 상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하여 제거하지 않는 것으로 판단된 경우, 상기 캐시 내에 존재하는 참조 블록들 중 다음으로 우선 순위를 가지는 참조 블록에 대해 제거 여부를 판단할 수 있다.
상기 캐시 내에 존재하는 참조 블록들은 LRU(Least Recently Used) 방식에 따라 저장되고, 상기 캐시에 추가하는 단계는 상기 신규 참조 블록을 상기 캐시의 MRU(Most Recently Used) 위치에 저장할 수 있다.
상기 예측 버퍼의 크기는 상기 캐시의 크기와 동일할 수 있다.
본 발명의 일실시예에 따른 메모리 제어 장치는, 프로세서를 포함하고, 상기 프로세서는 특정 시점까지의 참조 블록들로 구성된 제1 길이의 입력 시퀀스를 참조 블록 예측 모델에 입력하고, 상기 참조 블록 예측 모델로부터 상기 특정 시점 이후의 참조 블록들을 예측하기 위한 델타들로 구성된 제2 길이의 출력 시퀀스를 식별하며, 상기 식별된 출력 시퀀스와 직전 시점의 참조 블록을 이용하여 상기 특정 시점 이후에 참조될 가능성이 있는 참조 블록을 예측하고, 상기 특정 시점 이후에 참조될 가능성이 있는 것으로 예측된 참조 블록을 예측 버퍼에 저장할 수 있다.
상기 출력 시퀀스는 상기 입력 시퀀스를 구성하는 인접한 참조 블록들의 차이를 이용하여 결정될 수 있다.
상기 프로세서는 상기 식별된 출력 시퀀스의 델타와 상기 델타의 직전 시점에 대한 참조 블록을 합산함으로써 상기 델타에 대응하는 시점에서 참조될 가능성이 있는 참조 블록을 예측할 수 있다.
상기 제1 길이의 입력 시퀀스는 상기 예측 버퍼가 비어 있는 경우, 실제 참조가 수행된 참조 블록에 대한 정보를 저장하고 있는 히스토리 블록(History block)의 리스트를 이용하여 결정되고, 상기 예측 버퍼에 저장된 참조 블록의 개수가 상기 입력 시퀀스의 제1 길이 보다 짧은 경우, 상기 예측 버퍼에 저장된 참조 블록 및 상기 히스토리 블록에 포함된 참조 블록을 연결하여 결정되며, 상기 예측 버퍼에 저장된 참조 블록의 개수가 상기 입력 시퀀스의 제1 길이를 충족하는 경우, 상기 예측 버퍼에 저장된 참조 블록을 이용하여 결정될 수 있다.
본 발명의 일실시예에 따른 메모리 제어 장치는, 프로세서를 포함하고, 상기 프로세서는 캐시 내 여유 공간이 없는 상황에서 신규 참조 블록이 상기 캐시 내에 존재하지 않는 경우, 상기 캐시 내에 존재하는 참조 블록들 중 가장 오랫동안 참조되지 않은 참조 블록을 교체 후보 블록으로 선택하고, 상기 선택된 교체 후보 블록이 예측 버퍼 내에 존재하는 지 여부에 따라 상기 선택된 교체 후보 블록의 제거 여부를 판단하며, 상기 선택된 교체 후보 블록을 제거하는 것으로 판단된 경우, 상기 선택된 교체 후보 블록을 제거하고, 상기 신규 참조 블록을 상기 캐시에 추가할 수 있다.
상기 프로세서는 상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하지 않는 경우, 상기 선택된 교체 후보 블록을 제거하는 것으로 판단하고, 상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하는 경우, 상기 선택된 교체 후보 블록을 제거하지 않는 것으로 판단할 수 있다.
상기 프로세서는 상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하여 제거하지 않는 것으로 판단된 경우, 상기 캐시 내에 존재하는 참조 블록들 중 다음으로 우선 순위를 가지는 참조 블록에 대해 제거 여부를 판단할 수 있다.
상기 캐시 내에 존재하는 참조 블록들은 LRU(Least Recently Used) 방식에 따라 저장되고, 상기 프로세서는 상기 신규 참조 블록을 상기 캐시의 MRU(Most Recently Used) 위치에 저장할 수 있다.
본 발명은 Sequence-to-Sequence 기반의 참조 블록 예측 모델을 통해 과거의 참조 블록을 이용하여 미래에 이용될 가능성이 있는 참조 블록을 예측함으로써 효율적인 캐시 교체 방법을 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 참조 블록 예측을 통한 메모리 제어 시스템을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 미래에 이용될 가능성이 있는 참조 블록의 예측 방법을 나타낸 도면이다.
도 3a 내지 도 3c는 본 발명의 일실시예에 따른 입력 시퀀스를 생성하는 예를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 예측 버퍼를 이용한 캐시 교체 방법을 나타낸 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 참조 블록 예측을 통한 메모리 제어 시스템을 나타낸 도면이다.
도 1을 참고하면, 메모리 제어 시스템(100)은 메모리 제어 장치(110), 예측 버퍼(120) 및 캐시 메모리(130)로 구성될 수 있다. 보다 구체적으로 메모리 제어 장치(110)는 프로세서(111)를 포함할 수 있으며, 프로세서(111)는 Sequence-to-Sequence 기반의 참조 블록 예측 모델을 통해 과거의 참조 블록을 이용하여 미래에 이용될 가능성이 있는 참조 블록을 예측할 수 있다. 이와 같이 예측된 미래에 이용될 가능성이 있는 참조 블록은 예측 버퍼(120)에 시간 순서대로 저장될 수 있다.
이후 메모리 제어 장치(110)의 프로세서(111)는 향후 캐시 메모리(130)의 캐시 교체가 필요한 경우, 예측 버퍼(120)에 저장된 참조 블록을 이용하여 캐시 메모리(130)에 저장된 교체 후보 블록의 교체 여부를 결정함으로써 미래에 이용될 가능성이 있는 참조 블록을 제거할 위험성을 감소시킬 수 있다. 이때, 예측 버퍼(120)의 사이즈는 캐시 메모리(130)의 사이즈와 동일할 수 있다.
도 2는 본 발명의 일실시예에 따른 미래에 이용될 가능성이 있는 참조 블록의 예측 방법을 나타낸 도면이다.
본 발명의 메모리 제어 장치(110)는 Sequence-to-Sequence 기반의 참조 블록 예측 모델을 통해 과거의 참조 블록을 이용하여 미래에 이용될 가능성이 있는 참조 블록을 예측할 수 있다. 이때, 참조 블록 예측 모델에 입력되는 입력 시퀀스는 시간 순서대로 정렬된 참조 블록들의 시퀀스이고, 참조 블록 예측 모델을 통해 출력되는 출력 시퀀스는 미래에 이용될 가능성이 있는 참조 블록을 예측하는데 사용되는 델타들의 시퀀스이다.
이때, 출력 시퀀스는 입력 시퀀스를 구성하는 인접한 참조 블록들 사이의 차이를 이용하여 결정될 수 있다. 일례로, 입력 시퀀스가 {1, 4, 5} 인 경우, 출력 시퀀스는 인접한 두 참조 블록들 {1, 4} 및 {4, 5}의 차인 {3, 1}로 결정될 수 있다.
도 2는 일례로, 입력 시퀀스의 길이가 4이고, 출력 시퀀스의 길이가 2인 경우에 대해 메모리 제어 장치(110)가 미래에 이용될 가능성이 있는 참조 블록을 예측하는 방법을 제공한다.
도 2를 참고하면, 메모리 제어 장치(110)는 현재 시점(
Figure pat00001
)까지 실제 이용된 참조 블록들(
Figure pat00002
~
Figure pat00003
)을 Sequence-to-Sequence 기반의 참조 블록 예측 모델에 입력할 수 있으며, 그 결과 현재 시점(
Figure pat00004
) 이후에 이용될 가능성이 있는 참조 블록을 예측하기 위한 델타들(
Figure pat00005
)의 시퀀스를 획득할 수 있다. 이때, 획득된 델타들(
Figure pat00006
) 각각은 현재 시점(
Figure pat00007
) 이후의
Figure pat00008
시점 및
Figure pat00009
시점에서 이용될 가능성이 있는 참조 블록을 예측하는데 사용될 수 있다.
메모리 제어 장치(110)는
Figure pat00010
시점에서 이용될 가능성이 있는 참조 블록을 예측하기 위하여 직전 시점의 참조 블록, 즉
Figure pat00011
시점의 참조 블록과
Figure pat00012
시점의 델타
Figure pat00013
을 이용할 수 있다. 보다 구체적으로 메모리 제어 장치(110)는
Figure pat00014
시점의 참조 블록 값과
Figure pat00015
시점의 델타
Figure pat00016
값을 합산하여
Figure pat00017
시점에서 이용될 가능성이 있는 참조 블록을 예측할 수 있다. 일례로,
Figure pat00018
시점에서 이용될 가능성이 있는 참조 블록은
Figure pat00019
시점의 참조 블록 값 5와
Figure pat00020
시점의 델타
Figure pat00021
값 3을 합산하여 8의 값을 가질 수 있다.
이후 메모리 제어 장치(110)는
Figure pat00022
시점에서 이용될 가능성이 있는 참조 블록을 예측하기 위하여 직전 시점의 참조 블록, 즉
Figure pat00023
시점의 참조 블록과
Figure pat00024
시점의 델타
Figure pat00025
를 이용할 수 있다. 보다 구체적으로 메모리 제어 장치(100)는
Figure pat00026
시점의 참조 블록 값과
Figure pat00027
시점의 델타
Figure pat00028
값을 합산하여
Figure pat00029
시점에서 이용될 가능성이 있는 참조 블록을 예측할 수 있다. 일례로,
Figure pat00030
시점에서 이용될 가능성이 있는 참조 블록은
Figure pat00031
시점의 참조 블록 값 8와
Figure pat00032
시점의 델타
Figure pat00033
값 -4 를 합산하여 4의 값을 가질 수 있다.
메모리 제어 장치(110)는 이와 같이 예측된 미래에 이용될 가능성이 잇는 참조 블록의 값을 예측 버퍼(120)에 저장할 수 있다. 그리고 메모리 제어 장치(100)는 향후 캐시 메모리(130)의 캐시 교체가 필요한 경우, 예측 버퍼(120)에 저장된 참조 블록을 이용하여 캐시 메모리(130)에 저장된 교체 후보 블록의 교체 여부를 결정함으로써 미래에 이용될 가능성이 있는 참조 블록을 제거할 위험성을 감소시킬 수 있다.
도 3a 내지 도 3c는 본 발명의 일실시예에 따른 입력 시퀀스를 생성하는 예를 나타낸 도면이다.
도 3a 내지 도 3c에서 입력 시퀀스의 길이는 4, 출력 시퀀스의 길이는 2, 그리고 예측 버퍼의 사이즈는 6을 가정한다. 메모리 제어 장치(110)는 실제 참조가 이루어진 과거부터 현재 시점까지의 참조 블록에 대한 기록과 미래에 이용될 가능성이 있는 참조 블록을 저장하고 있는 예측 버퍼(120)를 기반으로 Sequence-to-Sequence 기반의 참조 블록 예측 모델에 입력되는 입력 시퀀스를 생성할 수 있다.
(i) 예측 버퍼가 비어 있는 경우
도 3a와 같이 입력 버퍼가 비어 있는 경우, 메모리 제어 장치(110)는 실제 참조가 이루어진 참조 블록에 대한 정보를 저장하고 있는 히스토리 블록(History block)의 리스트를 이용하여 입력 시퀀스를 생성할 수 있다.
즉, 메모리 제어 장치(110)는 히스토리 블록에 저장된 참조 블록에 대한 정보를 이용하여 현재 시점(
Figure pat00034
)까지 실제 이용된 참조 블록들(
Figure pat00035
)을 추출함으로써 입력 시퀀스를 생성할 수 있다. 메모리 제어 장치(110)는 이와 같이 생성된 입력 시퀀스를 Sequence-to-Sequence 기반의 참조 블록 예측 모델에 입력하여 현재 시점(
Figure pat00036
) 이후에 이용될 가능성이 있는 참조 블록을 예측하기 위한 델타들(
Figure pat00037
)의 시퀀스인 출력 시퀀스를 획득할 수 있다.
이후 메모리 제어 장치(110)는 획득된 출력 시퀀스를 이용하여 현재 시점(
Figure pat00038
) 이후의
Figure pat00039
시점 및
Figure pat00040
시점에서 이용될 가능성이 있는 참조 블록(8, 4)을 예측할 수 있으며, 예측된 참조 블록들을 예측 버퍼(120)에 저장할 수 있다.
(ii) 예측 버퍼가 채워져 있지만 입력 시퀀스 길이를 충족하지 못하는 경우
도 3b와 같이 예측 버퍼(120)의 일부가 참조 블록들로 채워져 있지만 입력 시퀀스 길이를 충족하지 못하는 경우, 메모리 제어 장치(110)는 실제 참조가 이루어진 참조 블록에 대한 정보를 저장하고 있는 히스토리 블록 및 예측 버퍼(120)를 이용하여 입력 시퀀스를 생성할 수 있다.
보다 구체적으로 메모리 제어 장치(110)는 예측 버퍼(120)에 저장된 참조 블록들과 히스토리 블록에 기록된 참조 블록들을 연결하여 입력 시퀀스를 생성할 수 있다.
일례로, 예측 버퍼(120)에는
Figure pat00041
시점 및
Figure pat00042
시점에서 이용될 가능성이 있는 참조 블록들(8, 4)이 저장되어 있지만 입력 시퀀스의 길이 4에는 부족하기 때문에 메모리 제어 장치(110)는 부족한 길이에 대응하는 참조 블록들을 히스토리 블록에 기록된 참조 블록들(6, 5)로 채울 수 있다.
메모리 제어 장치(110)는 이와 같이 생성된 입력 시퀀스(6, 5, 8, 4)를 Sequence-to-Sequence 기반의 참조 블록 예측 모델에 입력하여
Figure pat00043
시점 이후에 이용될 가능성이 있는 참조 블록을 예측하기 위한 델타들(
Figure pat00044
)의 시퀀스인 출력 시퀀스를 획득할 수 있다.
이후 메모리 제어 장치(110)는 획득된 출력 시퀀스를 이용하여
Figure pat00045
시점 이후의
Figure pat00046
시점 및
Figure pat00047
시점에서 이용될 가능성이 있는 참조 블록(10, 14)을 예측할 수 있으며, 예측된 참조 블록들을 예측 버퍼(120)에 저장할 수 있다.
(iii) 예측 버퍼가 채워져 있고, 입력 시퀀스 길이를 충족하는 경우
도 3c와 같이 예측 버퍼(120)가 참조 블록들로 채워져 있고, 입력 시퀀스 길이를 충족하는 경우, 메모리 제어 장치(110)는 예측 버퍼(120)를 이용하여 입력 시퀀스를 생성할 수 있다. 즉, 메모리 제어 장치(110)는 예측 버퍼(120)에 저장된 참조 블록에 대한 정보를 이용하여
Figure pat00048
시점까지 예측된 참조 블록들(8, 4, 10, 14)을 추출함으로써 입력 시퀀스를 생성할 수 있다. 메모리 제어 장치(110)는 이와 같이 생성된 입력 시퀀스를 Sequence-to-Sequence 기반의 참조 블록 예측 모델에 입력하여
Figure pat00049
시점 이후에 이용될 가능성이 있는 참조 블록을 예측하기 위한 델타들(
Figure pat00050
)의 시퀀스인 출력 시퀀스를 획득할 수 있다.
이후 메모리 제어 장치(110)는 획득된 출력 시퀀스를 이용하여
Figure pat00051
시점 이후의
Figure pat00052
시점 및
Figure pat00053
시점에서 이용될 가능성이 있는 참조 블록(10, 11)을 예측할 수 있으며, 예측된 참조 블록들을 예측 버퍼(120)에 저장할 수 있다.
도 4는 본 발명의 일실시예에 따른 예측 버퍼를 이용한 캐시 교체 방법을 나타낸 도면이다.
캐시 교체는 캐시 메모리(130) 내 여유 공간이 없는 상황에서 신규 참조 블록이 해당 캐시 메모리(130) 내에 존재하지 않는 경우 실행될 수 있다. 메모리 제어 장치(110)는 캐시 메모리(130) 내에 존재하는 참조 블록들 중 LRU(Least Recently Used) 방식에 따라 가장 오랫동안 참조되지 않은 참조 블록을 교체 후보 블록으로 선택할 수 있다.
이후, 메모리 제어 장치(110)는 선택된 교체 후보 블록이 예측 버퍼(120) 내에 존재하는 지 여부에 따라 선택된 교체 후보 블록의 제거 여부를 판단할 수 있다. 보다 구체적으로 메모리 제어 장치(110)는 선택된 교체 후보 블록이 예측 버퍼(120) 내에 존재하지 않는 경우, 해당 선택된 교체 후보 블록을 제거하는 것으로 판단하고, 선택된 교체 후보 블록이 예측 버퍼(120) 내에 존재하는 경우, 해당 선택된 교체 후보 블록을 제거하지 않는 것으로 판단할 수 있다.
만약 선택된 교체 후보 블록이 예측 버퍼(120) 내에 존재하여 제거하지 않는 것으로 판단된 경우, 메모리 제어 장치(110)는 캐시 메모리(130) 내에 존재하는 참조 블록들 중 다음으로 오랫동안 참조되지 않은 참조 블록을 교체 후보 블록을 선택하고, 제거 여부를 판단할 수 있다.
이때, 선택된 교체 후보 블록이 예측 버퍼(120)에 존재하지 않는 경우, 메모리 제어 장치(110)는 선택된 교체 후보 블록을 캐시 메모리(130)에서 제거하고, 신규 참조 블록을 캐시 메모리(130)에 추가할 수 있다.
도 4의 예를 참고하면, 현재 시점(
Figure pat00054
)에 대응하는 신규 참조 블록(5)이 캐시 메모리(130)에 존재하지 않고, 캐시 메모리(130)에 여유 공간이 없으므로 캐시 교체가 필요할 수 있다. 여기서, 캐시 메모리(130)는 가장 오래된 참조 블록부터 최근의 참조 블록 순서로 저장되어 있으므로 메모리 제어 장치(110)는 LRU(Least Recently Used) 방식에 따라 교체 후보 블록(8)을 선택할 수 있다.
이때, 8이라는 교체 후보 블록은 예측 버퍼(120)에 존재하므로 메모리 제어 장치(110)는 다음 우선순위를 가지는 교체 후보 블록(10)을 선택할 수 있다. 마찬가지로, 10이라는 교체 후보 블록도 예측 버퍼(120)에 존재하므로 메모리 제어 장치(110)는 다음 우선순위를 가지는 교체 후보 블록(2)을 선택할 수 있다.
선택된 2라는 교체 후보 블록은 예측 버퍼(120)에 존재하지 않으므로 메모리 제어 장치(110)는 캐시 메모리(130)에서 2라는 교체 후보 블록을 제거하고, 신규 참조 블록(5)을 캐시 메모리(130)의 MRU(Most Recently Used) 위치에 추가할 수 있다.
한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.
본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.
컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
100 : 메모리 제어 시스템
110 : 메모리 제어 장치
120 : 예측 버퍼
130 : 캐시 메모리

Claims (20)

  1. 특정 시점까지의 참조 블록들로 구성된 제1 길이의 입력 시퀀스를 참조 블록 예측 모델에 입력하는 단계;
    상기 참조 블록 예측 모델로부터 상기 특정 시점 이후의 참조 블록들을 예측하기 위한 델타들로 구성된 제2 길이의 출력 시퀀스를 식별하는 단계;
    상기 식별된 출력 시퀀스와 직전 시점의 참조 블록을 이용하여 상기 특정 시점 이후에 참조될 가능성이 있는 참조 블록을 예측하는 단계; 및
    상기 특정 시점 이후에 참조될 가능성이 있는 것으로 예측된 참조 블록을 예측 버퍼에 저장하는 단계
    를 포함하는 메모리 제어 방법.
  2. 제1항에 있어서,
    상기 출력 시퀀스는,
    상기 입력 시퀀스를 구성하는 인접한 참조 블록들 사이의 차이를 이용하여 결정되는 메모리 제어 방법.
  3. 제1항에 있어서,
    상기 예측하는 단계는,
    상기 식별된 출력 시퀀스의 델타와 상기 델타의 직전 시점에 대한 참조 블록을 합산함으로써 상기 델타에 대응하는 시점에서 참조될 가능성이 있는 참조 블록을 예측하는 메모리 제어 방법.
  4. 제1항에 있어서,
    상기 제1 길이의 입력 시퀀스는,
    상기 예측 버퍼가 비어 있는 경우, 실제 참조가 수행된 참조 블록에 대한 정보를 저장하고 있는 히스토리 블록(History block)의 리스트를 이용하여 결정되는 메모리 제어 방법.
  5. 제4항에 있어서,
    상기 제1 길이의 입력 시퀀스는,
    상기 예측 버퍼에 저장된 참조 블록의 개수가 상기 입력 시퀀스의 제1 길이 보다 짧은 경우, 상기 예측 버퍼에 저장된 참조 블록 및 상기 히스토리 블록에 포함된 참조 블록을 연결하여 결정되는 메모리 제어 방법.
  6. 제4항에 있어서,
    상기 제1 길이의 입력 시퀀스는,
    상기 예측 버퍼에 저장된 참조 블록의 개수가 상기 입력 시퀀스의 제1 길이를 충족하는 경우, 상기 예측 버퍼에 저장된 참조 블록을 이용하여 결정되는 메모리 제어 방법.
  7. 제1항에 있어서,
    상기 제1 길이의 입력 시퀀스는,
    특정 시점까지의 참조 블록들이 시간 순서대로 정렬되는 메모리 제어 방법.
  8. 메모리 제어 방법에 있어서,
    캐시 내 여유 공간이 없는 상황에서 신규 참조 블록이 상기 캐시 내에 존재하지 않는 경우, 상기 캐시 내에 존재하는 참조 블록들 중 가장 오랫동안 참조되지 않은 참조 블록을 교체 후보 블록으로 선택하는 단계;
    상기 선택된 교체 후보 블록이 예측 버퍼 내에 존재하는 지 여부에 따라 상기 선택된 교체 후보 블록의 제거 여부를 판단하는 단계; 및
    상기 선택된 교체 후보 블록을 제거하는 것으로 판단된 경우, 상기 선택된 교체 후보 블록을 제거하고, 상기 신규 참조 블록을 상기 캐시에 추가하는 단계
    를 포함하는 메모리 제어 방법.
  9. 제8항에 있어서,
    상기 판단하는 단계는,
    상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하지 않는 경우, 상기 선택된 교체 후보 블록을 제거하는 것으로 판단하고,
    상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하는 경우, 상기 선택된 교체 후보 블록을 제거하지 않는 것으로 판단하는 메모리 제어 방법.
  10. 제9항에 있어서,
    상기 판단하는 단계는,
    상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하여 제거하지 않는 것으로 판단된 경우, 상기 캐시 내에 존재하는 참조 블록들 중 다음으로 우선 순위를 가지는 참조 블록에 대해 제거 여부를 판단하는 메모리 제어 방법.
  11. 제8항에 있어서,
    상기 캐시 내에 존재하는 참조 블록들은,
    LRU(Least Recently Used) 방식에 따라 저장되고,
    상기 캐시에 추가하는 단계는,
    상기 신규 참조 블록을 상기 캐시의 MRU(Most Recently Used) 위치에 저장하는 메모리 제어 방법.
  12. 제8항에 있어서,
    상기 예측 버퍼의 크기는,
    상기 캐시의 크기와 동일한 메모리 제어 방법.
  13. 메모리 제어 장치에 있어서,
    상기 메모리 제어 장치는, 프로세서를 포함하고,
    상기 프로세서는,
    특정 시점까지의 참조 블록들로 구성된 제1 길이의 입력 시퀀스를 참조 블록 예측 모델에 입력하고, 상기 참조 블록 예측 모델로부터 상기 특정 시점 이후의 참조 블록들을 예측하기 위한 델타들로 구성된 제2 길이의 출력 시퀀스를 식별하며, 상기 식별된 출력 시퀀스와 직전 시점의 참조 블록을 이용하여 상기 특정 시점 이후에 참조될 가능성이 있는 참조 블록을 예측하고, 상기 특정 시점 이후에 참조될 가능성이 있는 것으로 예측된 참조 블록을 예측 버퍼에 저장하는 메모리 제어 장치.
  14. 제13항에 있어서,
    상기 출력 시퀀스는,
    상기 입력 시퀀스를 구성하는 인접한 참조 블록들의 차이를 이용하여 결정되는 메모리 제어 장치.
  15. 제13항에 있어서,
    상기 프로세서는,
    상기 식별된 출력 시퀀스의 델타와 상기 델타의 직전 시점에 대한 참조 블록을 합산함으로써 상기 델타에 대응하는 시점에서 참조될 가능성이 있는 참조 블록을 예측하는 메모리 제어 장치.
  16. 제13항에 있어서,
    상기 제1 길이의 입력 시퀀스는,
    상기 예측 버퍼가 비어 있는 경우, 실제 참조가 수행된 참조 블록에 대한 정보를 저장하고 있는 히스토리 블록(History block)의 리스트를 이용하여 결정되고,
    상기 예측 버퍼에 저장된 참조 블록의 개수가 상기 입력 시퀀스의 제1 길이 보다 짧은 경우, 상기 예측 버퍼에 저장된 참조 블록 및 상기 히스토리 블록에 포함된 참조 블록을 연결하여 결정되며,
    상기 예측 버퍼에 저장된 참조 블록의 개수가 상기 입력 시퀀스의 제1 길이를 충족하는 경우, 상기 예측 버퍼에 저장된 참조 블록을 이용하여 결정되는 메모리 제어 장치.
  17. 메모리 제어 장치에 있어서,
    상기 메모리 제어 장치는, 프로세서를 포함하고,
    상기 프로세서는,
    캐시 내 여유 공간이 없는 상황에서 신규 참조 블록이 상기 캐시 내에 존재하지 않는 경우, 상기 캐시 내에 존재하는 참조 블록들 중 가장 오랫동안 참조되지 않은 참조 블록을 교체 후보 블록으로 선택하고, 상기 선택된 교체 후보 블록이 예측 버퍼 내에 존재하는 지 여부에 따라 상기 선택된 교체 후보 블록의 제거 여부를 판단하며, 상기 선택된 교체 후보 블록을 제거하는 것으로 판단된 경우, 상기 선택된 교체 후보 블록을 제거하고, 상기 신규 참조 블록을 상기 캐시에 추가하는 메모리 제어 장치.
  18. 제17항에 있어서,
    상기 프로세서는,
    상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하지 않는 경우, 상기 선택된 교체 후보 블록을 제거하는 것으로 판단하고, 상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하는 경우, 상기 선택된 교체 후보 블록을 제거하지 않는 것으로 판단하는 메모리 제어 장치.
  19. 제8항에 있어서,
    상기 프로세서는,
    상기 선택된 교체 후보 블록이 상기 예측 버퍼 내에 존재하여 제거하지 않는 것으로 판단된 경우, 상기 캐시 내에 존재하는 참조 블록들 중 다음으로 우선 순위를 가지는 참조 블록에 대해 제거 여부를 판단하는 메모리 제어 장치.
  20. 제17항에 있어서,
    상기 캐시 내에 존재하는 참조 블록들은,
    LRU(Least Recently Used) 방식에 따라 저장되고,
    상기 프로세서는,
    상기 신규 참조 블록을 상기 캐시의 MRU(Most Recently Used) 위치에 저장하는 메모리 제어 장치.
KR1020210048625A 2021-04-14 2021-04-14 효율적인 캐시 교체를 위한 메모리 제어 방법 및 장치 KR102575380B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210048625A KR102575380B1 (ko) 2021-04-14 2021-04-14 효율적인 캐시 교체를 위한 메모리 제어 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210048625A KR102575380B1 (ko) 2021-04-14 2021-04-14 효율적인 캐시 교체를 위한 메모리 제어 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20220142190A true KR20220142190A (ko) 2022-10-21
KR102575380B1 KR102575380B1 (ko) 2023-09-06

Family

ID=83805433

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210048625A KR102575380B1 (ko) 2021-04-14 2021-04-14 효율적인 캐시 교체를 위한 메모리 제어 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102575380B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070069346A (ko) * 2005-12-28 2007-07-03 엠텍비젼 주식회사 캐시 메모리 컨트롤러 및 이를 이용한 캐시 메모리 관리방법
KR20130081784A (ko) * 2012-01-10 2013-07-18 고려대학교 산학협력단 계층 캐시 시스템 및 방법
US20190370632A1 (en) * 2018-05-31 2019-12-05 Google Llc Computer system prediction machine learning models

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070069346A (ko) * 2005-12-28 2007-07-03 엠텍비젼 주식회사 캐시 메모리 컨트롤러 및 이를 이용한 캐시 메모리 관리방법
KR20130081784A (ko) * 2012-01-10 2013-07-18 고려대학교 산학협력단 계층 캐시 시스템 및 방법
US20190370632A1 (en) * 2018-05-31 2019-12-05 Google Llc Computer system prediction machine learning models

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문1(2017.10.05) *
논문2(2019.03.31) *

Also Published As

Publication number Publication date
KR102575380B1 (ko) 2023-09-06

Similar Documents

Publication Publication Date Title
CN112368677B (zh) 基于分支指令的类型选择性地执行提前分支预测
EP1936508A1 (en) Information recording medium access apparatus, and data recording method
CN101673192A (zh) 时序化的数据处理方法、装置及系统
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
CN109343796B (zh) 一种数据处理方法和装置
CN110109868A (zh) 用于索引文件的方法、装置和计算机程序产品
CN108108089A (zh) 一种图片加载方法及装置
CN112114753A (zh) 一种数据写入方法、装置及设备
CN113544640A (zh) 分支指令的处理方法、分支预测器及处理器
JP2009169688A (ja) 記憶装置、データ移行装置、およびデータ移行方法
US8762773B2 (en) Processing apparatus, data migration method, and computer-readable recording medium having data migration program recorded thereon
US9946512B2 (en) Adaptive radix external in-place radix sort
CN107798063B (zh) 快照处理方法和快照处理装置
CN116964573A (zh) 使用多个存储设备复制数据改变并跟踪存储在存储设备上的未决数据改变的记录
KR102575380B1 (ko) 효율적인 캐시 교체를 위한 메모리 제어 방법 및 장치
US7441093B2 (en) Segmentation management using a rolling window technique
CN112286460A (zh) 基于生存者寿命预测来优化垃圾收集
KR20040076313A (ko) 버퍼 캐시 분할 관리 방법
EP2381354A2 (en) Data recording device
CN113778964A (zh) 用于储存多个暂存档案的记录装置及暂存档案的管理方法
US20180157425A1 (en) Storage control apparatus, storage apparatus, and non-transitory computer-readable recording medium having control program stored therein
US20180165219A1 (en) Memory system and method for operating the same
CN113467724A (zh) 一种crc校验码存储方法、装置、设备及介质
CN114518841A (zh) 存储器中处理器和使用存储器中处理器输出指令的方法
CN110196785B (zh) 数据备份管理方法、装置及电子设备

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right