KR20180079278A - 하위 레벨 캐시에서 캐시 라인의 연령을 제어함으로써 메모리에 대한 후기입 감소 - Google Patents

하위 레벨 캐시에서 캐시 라인의 연령을 제어함으로써 메모리에 대한 후기입 감소 Download PDF

Info

Publication number
KR20180079278A
KR20180079278A KR1020180076526A KR20180076526A KR20180079278A KR 20180079278 A KR20180079278 A KR 20180079278A KR 1020180076526 A KR1020180076526 A KR 1020180076526A KR 20180076526 A KR20180076526 A KR 20180076526A KR 20180079278 A KR20180079278 A KR 20180079278A
Authority
KR
South Korea
Prior art keywords
cache
cache line
storage class
class memory
lower level
Prior art date
Application number
KR1020180076526A
Other languages
English (en)
Other versions
KR102176304B1 (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 에이취지에스티 네덜란드 비.브이.
Publication of KR20180079278A publication Critical patent/KR20180079278A/ko
Application granted granted Critical
Publication of KR102176304B1 publication Critical patent/KR102176304B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

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

메모리에 대한 라이트백을 감소시키는 방법 및 장치가 본원에 개시된다 방
법은 하위 레벨 캐시에 진입하는 판독/기록 요청이 변경된 데이터를 포함하는 캐시 라인인지 여부를 판단하는 단계, 및 판독/기록 요청이 변경된 데이터를 포함하는 캐시 라인이 아니라고 판단하는 것에 응하여, 메모리에 대한 라이트백의 수를 감소시키기 위해 캐시 라인의 연수 정보를 조작하는 단계를 포함한다

Description

하위 레벨 캐시에서 캐시 라인의 연령을 제어함으로써 메모리에 대한 후기입 감소{REDUCING WRITE-BACKS TO MEMORY BY CONTROLLING THE AGE OF CACHE LINES IN LOWER LEVEL CACHE}
본 발명의 실시예들은 일반적으로 저장 클래스 메모리에 관한 것으로, 보다 상세하게는, 메모리에 대한 라이트백을 감소시키는 관리 방법에 관한 것이다.
최근에 만들어진 저장 클래스 메모리(상 변화 메모리들, 스핀 전달 토크 랜덤 액세스 메모리 등) 기술은 동적 랜덤 액세스 메모리(DRAM), 또는 더 양호한 판독 레이턴시를 갖는다. 이는 프로세서 메모리 계층에의 주목하지 않을 수 없는 추가물로서, DRAM, 하이브리드 메모리 중 어느 하나의 대체로서, 또는 심지어 마지막 레벨 캐시의 대체로서의 최근에 만들어진 저장 클래스 메모리를 낳는다. 그러나, 발생하는 어려움은 저장 클래스 메모리의 느린 기록 레이턴시 및 내구성이다. 기록의 임의의 지연은 애플리케이션의 성능에 직접 영향을 줄 것이다. 마찬가지로, 프로세서 메모리 계층의 기록 주파수는 지속 저장소의 기록 주파수보다 수 자릿수 더 높다.
그러므로, DRAM 대체로서 또는 하이브리드 메인 메모리 시스템에서 저장 클래스 메모리를 사용하기 위해, 기록의 총수를 제어할 뿐만 아니라 기록 대역폭 필요 조건을 제한하기 위한 요구가 있다.
본 발명은 일반적으로 메모리에 대한 라이트백을 감소시키는 방법 및 장치에 관한 것이다. 방법은 하위 레벨 캐시에 진입하는 판독 요청이 변경된 데이터를 포함하는 캐시 라인인지 여부를 판단하는 단계, 및 판독 요청이 변경된 데이터를 포함하는 캐시 라인이 아니라고 판단하는 것에 응하여, 메모리에 대한 라이트백의 수를 감소시키기 위해 캐시 라인의 연수 정보를 조작하는 단계를 포함한다.
일 실시예에서, 메모리에 대한 라이트백을 감소시키는 방법이 본원에 개시된다. 방법은 하위 레벨 캐시에 진입하는 판독 요청이 변경된 데이터를 포함하는 캐시 라인인지 여부를 판단하는 단계, 및 판독 요청이 변경된 데이터를 포함하는 캐시 라인이 아니라고 판단하는 것에 응하여, 메모리에 대한 라이트백의 수를 감소시키기 위해 캐시 라인의 연수 정보를 조작하는 단계를 포함한다.
다른 실시예에서, 메모리에 대한 라이트백을 감소시키는 시스템이 본원에 개시된다. 시스템은 프로세서 및 메모리를 포함한다. 메모리는 프로세서 상에서 실행될 때, 메모리를 관리하는 작동을 수행하는 프로그램 코드를 저장한다. 작동은 하위 레벨 캐시에 진입하는 판독 요청이 변경된 데이터를 포함하는 캐시 라인인지 여부를 판단하는 것, 및 판독 요청이 변경된 데이터를 포함하는 캐시 라인이 아니라고 판단하는 것에 응하여, 메모리에 대한 라이트백의 수를 감소시키기 위해 캐시 라인의 연수 정보를 조작하는 것을 포함한다.
다른 실시예에서, 컴퓨터 판독 가능 저장 매체가 본원에 개시된다. 컴퓨터 판독 가능 저장 매체는 프로세서에 의해 실행될 때, 메모리를 관리하는 작동을 프로세서가 수행하게 하는 내부에 저장된 명령어들을 갖는다. 작동은 하위 레벨 캐시에 진입하는 판독 요청이 변경된 데이터를 포함하는 캐시 라인인지 여부를 판단하는 것, 및 판독 요청이 변경된 데이터를 포함하는 캐시 라인이 아니라고 판단하는 것에 응하여, 메모리에 대한 라이트백의 수를 감소시키기 위해 캐시 라인의 연수 정보를 조작하는 것을 포함한다.
본 발명의 위에 상술한 특징들이 상세히 이해될 수 있는 방식을 위해, 앞서 간략히 요약된 본 발명의 보다 상세한 설명이 일부가 첨부 도면들에서 도시되는 실시예들을 참조하여 이루어질 수 있다. 그러나, 본 발명이 다른 동등하게 유효한 실시예들을 가능하게 할 수 있으므로, 첨부 도면들이 본 발명의 전형적 실시예들만을 도시하고 그러므로 본 발명의 범위를 제한하는 것으로 고려되지 않아야 한다는 점이 주목되어야 한다.
도 1은 일 실시예에 따른 컴퓨팅 시스템을 도시한다.
도 2는 일 실시예에 따른 캐시의 상세도를 도시한다.
도 3은 일 실시예에 따른 프로세서가 새로운 캐시 라인을 캐시로 가져올 때, 캐시로부터 캐시 라인을 교체하는 통상적 방법을 도시한다.
도 4는 일 실시예에 따른 하위 레벨 캐시에서 캐시 라인들을 퇴거시키는 개선된 방법을 도시한다.
도 5는 다른 실시예에 따른 하위 레벨 캐시에서 캐시 라인들을 퇴거시키는 방법을 도시한다.
도 6은 다른 실시예에 따른 하위 레벨 캐시에서 캐시 라인들을 퇴거시키는 방법을 도시한다.
이해를 용이하게 하기 위해, 도면들에 공통인 동일한 요소들을 지정하는데 가능한 한 동일한 참조 번호들이 사용되었다. 일 실시예에 개시된 요소들이 구체적으로 상술 없이 다른 실시예들에서 유익하게 활용될 수 있다는 점이 고려된다.
이하에서, 본 발명의 실시예들을 참조한다. 그러나, 본 발명이 설명하는 특정 실시예들에 제한되지 않는다는 점이 이해되어야 한다. 대신에, 상이한 실시예들과 관련되든 아니든, 이하의 특징들 및 요소들의 임의의 조합이 본 발명을 구현하고 실시하는데 고려된다. 더욱이, 본 발명의 실시예들이 다른 가능한 해결법들 및/또는 종래 기술을 능가하는 이점들을 달성할 수 있지만, 특정 이점이 주어진 실시예에 의해 달성되는지 아닌지 여부는 본 발명을 제한하고 있지 않다. 따라서, 이하의 양태들, 특징들, 실시예들 및 이점들은 단지 예시적이고 청구항(들)에서 명확히 상술되는 경우를 제외하고 첨부된 청구항들의 요소들 또는 제한들로 고려되지 않는다. 마찬가지로, "본 발명"에 대한 참조는 본원에 개시된 임의의 본 발명의 대상의 일반화로 해석되지 않을 것이고 청구항(들)에서 명확히 상술되는 경우를 제외하고 첨부된 청구항들의 요소 또는 제한인 것으로 고려되지 않을 것이다.
본 발명은 일반적으로 메모리에 대한 라이트백을 감소시키는 방법 및 장치에 관한 것이다. 방법은 하위 레벨 캐시에 진입하는 판독 요청이 변경된 데이터를 포함하는 캐시 라인인지 여부를 판단하는 단계, 및 판독 요청이 변경된 데이터를 포함하는 캐시 라인이 아니라고 판단하는 것에 응하여, 메모리에 대한 라이트백의 수를 감소시키기 위해 캐시 라인의 연수 정보를 조작하는 단계를 포함한다.
도 1은 일 실시예에 따른 컴퓨팅 시스템(100)을 도시한다. 컴퓨팅 시스템(100)은 프로세서(104), 메모리(106), 저장소(108) 및 네트워크 인터페이스(110)를 포함하는 하드웨어 구성 요소들(102)을 포함한다. 컴퓨팅 시스템(100)은 또한 컴퓨팅 시스템(100)에 연결되는 I/O 디바이스(112)(예를 들어, 키보드 및 마우스 디바이스들)를 포함한다.
일 실시예에서, 프로세서(104)는 메모리(106)에 저장되는 프로그래밍 명령어들(예를 들어, 프로그램 코드(118))을 회수하고 실행시킬 뿐만 아니라 메모리(106)에 상주하는 애플리케이션 데이터를 저장하고 회수한다. 프로세서(104)는 단일 프로세서, 다수의 프로세서, 다수의 프로세싱 코어를 갖는 단일 프로세서 등을 나타내도록 포함된다. 프로세서(104)는 캐시(116)와 같은 복수의 하드웨어 모듈을 포함한다. 캐시(116)는 데이터에 대한 장래 요청들이 더 빠르게 제공될 수 있도록 데이터를 저장한다. 예를 들어, 캐시(116)에 저장되는 데이터는 더 이른 계산의 결과들, 또는 다른 곳에서 저장된 데이터의 복제물들일 수 있다.
일 실시예에서, 메모리(106)는 일반적으로 저장 클래스 메모리를 나타내도록 포함된다. 저장 클래스 메모리는 비휘발성인 컴퓨터 메모리 즉, 파워 사이클링된 후에도 저장된 정보를 회수할 수 있는 컴퓨터 메모리의 형태들을 포함한다. 예를 들어, 메모리(106)는 읽기 전용 메모리, 플래시 메모리, 강유전체 랜덤 액세스 메모리(F-RAM) 등일 수 있다. 메모리(106)는 복수의 프로그래밍 명령어를 갖는 프로그램 코드(118)를 포함한다. 예를 들어, 복수의 프로그래밍 명령어는 캐시(116)로부터 메모리(106)로의 라이트백을 감소시키는 프로그램 코드를 포함할 수 있다.
저장소(108)는 디스크 드라이브 저장 디바이스일 수 있다. 단일 유닛으로서 도시되지만, 저장소(108)는 고정된 디스크 드라이브들, 제거 가능 메모리 카드들, 광 저장소, 네트워크 부착 저장소(NAS) 또는 저장 영역 네트워크(SAN)와 같은 고정되고/되거나 제거 가능한 저장 디바이스들의 조합일 수 있다. 네트워크 인터페이스(110)는 컴퓨팅 시스템(100)이 네트워크(126)를 통하여 다른 컴퓨터들과 통신하는 것을 가능하게 하는 임의의 타입의 네트워크 통신 수단일 수 있다.
도 2는 일 실시예에 따른 캐시(116)의 상세도를 도시한다. 캐시(116)는 3개의 레벨: 마지막 레벨 (또는 하위 레벨 또는 L3) 캐시(202), 레벨 2(L2) 캐시(204) 및 레벨 1(L1) 캐시(206)를 포함한다. L1 캐시(206)는 가장 빠른 캐시이지만, 또한 최소 캐시이다. L2 캐시(204)는 L1 캐시(206)보다 더 느리지만, L1 캐시(206)보다 더 큰 용량을 갖는다. L3 캐시(202)는 캐시(116)에서 가장 느린 캐시이다. L3 캐시(202)는 또한 캐시(116)에서 최대 캐시이다. 현대 프로세서들에서, L1 캐시(206), L2 캐시(204) 및 하위 레벨 캐시(202)는 (도 1의 프로세서(104)와 같은) 프로세서 그 자체에 의해 관리된다. 프로세서들은 캐시들에서 자주 액세스된 데이터(즉, 캐시 라인들)가 저장 클래스 메모리(106)로 가는 것을 피하도록 유지하려 노력한다. 가장 자주 액세스된 데이터는 L1 캐시(206)에 저장된다. 데이터 또는 캐시 라인을 캐시(116)에서 찾을 수 없을 때마다, 프로세서(104)는 메모리(106)로부터 데이터를 가져오고 캐시 라인을 캐시(116)에 유지한다. 캐시(116)에서 새로운 캐시 라인에 대한 공간을 만들기 위해, 캐시(116)에서의 기존 캐시 라인은 캐시(116)로부터 교체될 필요가 있다.
도 3은 일 실시예에 따른 프로세서(104)가 새로운 캐시 라인을 캐시(116)로 가져올 때, 캐시(116)로부터 캐시 라인을 교체하는 통상적 방법(300)을 도시한다. 방법(300)은 단계(302)에서 시작한다. 단계(302)에서, 판독/기록 요청이 프로세서로부터 하위 레벨 캐시로 온다. 결정 블록(304)에서, 프로세서는 캐시 적중이 있는지 여부를 판단한다. 캐시 적중은 요청된 캐시 라인이 이미 하위 레벨 캐시에 있을 때, 일어난다. 캐시 적중이 일어나면, 그 다음 단계(306)에서, 프로세서는 캐시 라인의 연수 정보를 업데이트한다. 예를 들어, 0의 연수를 갖는 캐시 라인은 1의 연수를 갖는 캐시 라인보다 더 오래되었다. 이는 1의 연수를 갖는 캐시 라인이 0의 연수를 갖는 캐시 라인보다 더 자주 액세스된다는 것을 의미할 것이다.
그러나 결정 블록(304)에서, 프로세서가 캐시 적중이 있지 않다고 판단하면, 그 다음 단계(308)에서, 프로세서는 새로운 캐시 라인에 대한 공간을 만들기 위해 캐시에서 최소 최근 사용(least recently used) 캐시 라인을 퇴거시킨다. 최소 최근 사용 캐시 라인은 캐시 중에서 가장 오래된 캐시 라인, 또는 가장 오래된 캐시 라인들 중 하나이다.
그러나, 최소 최근 사용 퇴거 정책은 “클린” 캐시 라인과 “더티” 캐시 라인을 구별하지 않는다. “더티” 캐시 라인은 변경된 데이터를 포함하는 즉, 캐시 내에서만 변경되었던 데이터를 포함하는 캐시 라인이다. “클린” 캐시 라인은 어떤 변경된 데이터도 포함하지 않는 즉, 캐시 내에서 변경되지 않았던 데이터만을 포함하는 캐시 라인이다. 최소 최근 사용 퇴거 정책은 즉, 캐시 라인이 마지막으로 사용될 때의 캐시 라인에 대한 연수 정보만을 우선 순위화한다. 최소 최근 사용 정책은 휘발성 기반 메인 메모리의 판독/기록 레이턴시가 거의 동일하므로, 휘발성 기반 메인 메모리 시스템들과 함께 양호하게 작동한다. 그러나 저장 클래스 메모리의 경우, 기록은 휘발성 기반 메인 메모리에서보다 훨씬 더 느려질 수 있다. 따라서, 최소 최근 사용 퇴거 정책은 저장 클래스 메모리에서 더티 데이터를 라이트백하는 것이 훨씬 더 오래 걸릴 수 있고 결국 계산을 방해할 수 있으므로, 최적이 아닐 수 있다.
도 4는 일 실시예에 따른 하위 레벨 캐시에서 캐시 라인들을 퇴거시키는 개선된 방법(400)을 도시한다. 방법은 단계(402)에서 시작한다. 단계(402)에서, 판독/기록 요청이 하위 레벨 캐시로 온다. 결정 블록(404)에서, 프로세서는 캐시 라인이 클린 캐시 라인인지 아니면 더티 캐시 라인인지를 판단한다. 캐시 라인이 더티 캐시 라인이면, 그 다음 결정 블록(406)에서, 프로세서는 캐시 적중이 있었는지 여부를 판단한다. 캐시 적중이 있었으면, 그 다음 단계(408)에서, 프로세서는 이미 하위 레벨 캐시에 있는 캐시 라인의 연수를 업데이트한다. 캐시 적중이 있지 않았으면, 그 다음 단계(420)에서, 프로세서는 판독/기록 요청이 하위 레벨 캐시에 진입하는 새로운 캐시 라인이므로, 최소 최근 사용 캐시 라인을 퇴거시킨다.
그러나 결정 블록(404)에서, 프로세서가 캐시 라인이 클린 캐시 라인이라고 판단하면, 그 다음 결정 블록(410)에서, 프로세서는 요청이 판독 요청인지 아니면 기록 요청인지를 판단한다. 프로세서가 요청이 기록 요청이었다고 판단하면, 그 다음 방법은 기록 요청에 대한 캐시 라인들이 결국 더티가 될 것이고, 통상적 최소 최근 사용 접근법이 사용되어야 하므로, 결정 블록(412)으로 이동한다. 결정 블록(412)에서, 프로세서는 캐시 적중이 일어났는지 여부를 판단한다. 캐시 적중이 일어났으면, 그 다음 단계(414)에서, 캐시 라인의 연수 정보가 업데이트된다. 그러나, 프로세서가 캐시 적중이 일어나지 않았다고 판단하면, 그 다음 단계(422)에서, 캐시 라인의 연수 정보가 업데이트되고, 단계(420)에서, 최소 최근 사용 캐시 라인이 하위 레벨 캐시에서 퇴거된다.
결정 블록(410)에서, 프로세서가 요청이 판독 요청이었다고 판단하면, 그 다음 방법은 결정 블록(416)으로 이동한다. 결정 블록(416)에서, 프로세서는 캐시 적중이 일어났는지 여부를 판단한다. 캐시 적중이 일어났으면, 그 다음 캐시 라인의 연수 정보가 단계(414)에서 업데이트된다. 결정 블록(416)에서, 프로세서가 캐시 적중이 일어나지 않았다고 판단하면, 그 다음 단계(418)에서, 프로세서는 캐시 라인의 연수 정보를 업데이트하지 않는다. 프로세서는 예를 들어, 캐시 라인에 제로 연수를 할당할 수 있다. 근본적으로, 방법(400)은 한번 액세스되고 결코 재사용되지 않은 클린 캐시 라인들과 자주 액세스된 클린 캐시 라인들 사이를 판독하기 위해 클린 캐시 라인들의 연수 정보를 조작하고 있다.
프로세서가 캐시 라인의 연수 정보를 업데이트하지 않은 후에, 그 다음 단계(420)에서, 프로세서는 최소 최근 사용 캐시 라인을 퇴거시킨다.
도 5는 다른 실시예에 따른 하위 레벨 캐시에서 캐시 라인들을 퇴거시키는 방법(500)을 도시한다. 방법은 단계(502)에서 시작한다. 단계(502)에서, 판독/기록 요청이 하위 레벨 캐시로 온다. 결정 블록(504)에서, 프로세서는 캐시 라인이 클린 캐시 라인인지 아니면 더티 캐시 라인인지를 판단한다. 캐시 라인이 더티 캐시 라인이면, 그 다음 결정 블록(506)에서, 프로세서는 캐시 적중이 있었는지 여부를 판단한다. 캐시 적중이 있었으면, 그 다음 단계(508)에서, 프로세서는 이미 하위 레벨 캐시에 있는 캐시 라인의 연수를 업데이트한다. 캐시 적중이 있지 않았으면, 그 다음 단계(520)에서, 프로세서는 판독/기록 요청이 하위 레벨 캐시에 진입하는 새로운 캐시 라인이므로, 최소 최근 사용 캐시 라인을 퇴거시킨다.
그러나 결정 블록(504)에서, 프로세서가 캐시 라인이 클린 캐시 라인이라고 판단하면, 그 다음 방법(500)은 결정 블록(510)으로 간다. 결정 블록(510)에서, 프로세서는 요청이 판독 요청인지 아니면 기록 요청인지를 판단한다. 프로세서가 요청이 기록 요청이었다고 판단하면, 그 다음 방법은 기록 요청에 대한 캐시 라인들이 결국 더티가 될 것이고, 통상적 최소 최근 사용 접근법이 사용될 수 있으므로, 결정 블록(512)으로 이동한다. 결정 블록(512)에서, 프로세서는 캐시 적중이 일어났는지 여부를 판단한다. 캐시 적중이 일어났으면, 그 다음 단계(514)에서, 캐시 라인의 연수 정보가 업데이트된다. 프로세서가 캐시 적중이 일어나지 않았다고 판단하면, 그 다음 단계(522)에서, 캐시 라인의 연수 정보가 업데이트되고, 단계(520)에서, 최소 최근 사용 캐시 라인이 하위 레벨 캐시에서 퇴거된다.
결정 블록(510)에서, 프로세서가 요청이 판독 요청이었다고 판단하면, 그 다음 방법은 결정 블록(516)으로 이동한다. 결정 블록(516)에서, 프로세서는 캐시 적중이 일어났는지 여부를 판단한다. 캐시 적중이 일어나지 않았으면, 그 다음 캐시 라인의 연수 정보가 단계(522)에서 업데이트된다. 단계(520)에서, 프로세서는 최소 최근 사용 캐시 라인을 퇴거시킨다. 그러나 결정 블록(516)에서, 프로세서가 캐시 적중이 일어났다고 판단하면, 그 다음 단계(518)에서, 프로세서는 캐시 라인의 연수 정보를 업데이트하지 않는다. 근본적으로, 방법(400)은 한번만, 즉, 캐시 라인이 처음 하위 레벨 캐시에 진입할 때, 클린 캐시 라인들의 연수 정보를 업데이트함으로써 모든 클린 캐시 라인이 동일한 연수 정보를 갖는다는 것을 확실히 하기 위해 클린 캐시 라인들의 연수 정보를 조작하고 있다. 프로세서가 캐시 라인의 연수 정보를 업데이트하지 않은 후에, 그 다음 단계(524)에서, 방법(500)은 단계(502)로 복귀한다.
도 6은 다른 실시예에 따른 하위 레벨 캐시에서 캐시 라인들을 퇴거시키는 방법(600)을 도시한다. 방법은 단계(602)에서 시작한다. 단계(602)에서, 판독/기록 요청이 하위 레벨 캐시로 온다. 결정 블록(604)에서, 프로세서는 캐시 라인이 클린 캐시 라인인지 아니면 더티 캐시 라인인지를 판단한다. 캐시 라인이 더티 캐시 라인이면, 그 다음 결정 블록(606)에서, 프로세서는 캐시 적중이 있었는지 여부를 판단한다. 캐시 적중이 있었으면, 그 다음 단계(608)에서, 프로세서는 이미 하위 레벨 캐시에 있는 캐시 라인의 연수를 업데이트한다. 캐시 적중이 있지 않았으면, 그 다음 단계(620)에서, 프로세서는 판독/기록 요청이 하위 레벨 캐시에 진입하는 새로운 캐시 라인이므로, 최소 최근 사용 캐시 라인을 퇴거시킨다.
그러나 결정 블록(604)에서, 프로세서가 캐시 라인이 클린 캐시 라인이라고 판단하면, 그 다음 방법(600)은 결정 블록(610)으로 간다. 결정 블록(610)에서, 프로세서는 요청이 판독 요청인지 아니면 기록 요청인지를 판단한다. 프로세서가 요청이 기록 요청이었다고 판단하면, 그 다음 방법은 기록 요청에 대한 캐시 라인들이 결국 더티가 될 것이고, 통상적 최소 최근 사용 접근법이 사용되어야 하므로, 결정 블록(612)으로 이동한다. 결정 블록(612)에서, 프로세서는 캐시 적중이 일어났는지 여부를 판단한다. 캐시 적중이 일어났으면, 그 다음 단계(614)에서, 캐시 라인의 연수 정보가 업데이트된다. 그러나, 프로세서가 캐시 적중이 일어나지 않았다고 판단하면, 그 다음 단계(624)에서, 캐시 라인의 연수 정보가 업데이트되고, 단계(620)에서, 최소 최근 사용 캐시 라인이 하위 레벨 캐시에서 퇴거된다.
결정 블록(610)에서, 프로세서가 요청이 판독 요청이었다고 판단하면, 그 다음 방법은 결정 블록(616)으로 이동한다. 결정 블록(616)에서, 프로세서는 캐시 적중이 일어났는지 여부를 판단한다. 캐시 적중이 일어났으면, 그 다음 단계(622)에서, 방법(600)은 단계(602)로 복귀한다. 결정 블록(616)에서, 프로세서가 캐시 적중이 일어나지 않았다고 판단하면, 그 다음 단계(618)에서, 프로세서는 캐시 라인의 연수 정보를 업데이트하지 않는다. 근본적으로, 방법(600)은 클린 캐시 라인들의 연수 정보를 결코 업데이트하지 않음으로써 클린 캐시 라인들의 연수 정보를 조작하고 있다.
프로세서가 캐시 라인의 연수 정보를 업데이트하지 않은 후에, 그 다음 단계(620)에서, 프로세서는 최소 최근 사용 캐시 라인을 퇴거시킨다.
클린 캐시 라인들의 연수 정보를 조작함으로써, 저장 클래스 메모리에 대한 라이트백의 수가 감소된다. 저장 클래스 메모리에 대한 라이트백의 수를 감소시키는 것은 메인 메모리로서 휘발성 메모리의 대체로서의 저장 클래스 메모리의 성능을 개선한다. 따라서, 판독 레이턴시는 기록 레이턴시를 감소시키지 않거나 적어도 상당히 감소시키지 않고 저장 클래스 메모리의 사용을 통해 증가될 수 있다.
전술한 것이 본 발명의 실시예들에 관한 것이지만, 본 발명의 다른 그리고 추가의 실시예들이 본 발명의 기본 범위로부터 벗어나지 않는 범위 내에서 고안될 수 있고, 본 발명의 범위는 뒤따르는 청구항들에 의해 결정된다.

Claims (26)

  1. 저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법에 있어서,
    상기 저장 클래스 메모리에의 판독 및 기입 요청 중 적어도 하나를 수신하는 단계;
    상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나가 더티 캐시 라인을 가지는지를 결정하는 단계;
    더티 캐시 라인이 존재하는 경우, 상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나가 캐시 적중을 가지는지를 결정하는 단계; 및
    캐시 적중이 없는 경우, 최소 최근 사용 캐시 라인을 퇴거시키고, 상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나를 수신하는 단계로 돌아가는 단계를 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  2. 제1 항에 있어서,
    상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나를 수신하는 단계는 상기 하위 레벨 캐시에서 일어나는 것인,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  3. 제1 항에 있어서,
    상기 저장 클래스 메모리는 3개의 캐시 레벨을 가지는 것인,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  4. 제1 항에 있어서,
    상기 더티 캐시 라인은 캐시 적중이 있는 라인인 것인,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  5. 제1 항에 있어서,
    상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나가 클린 캐시 라인을 가지는지를 결정하는 경우, 상기 저장 클래스 메모리에의 상기 판독 및 기입 요청중 적어도 하나가 기입 요청 또는 판독 요청인지를 결정하는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  6. 제5 항에 있어서,
    상기 클린 캐시 라인은 캐시 적중이 없는 라인인 것인,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  7. 제5 항에 있어서,
    프로세서를 통해, 상기 판독 및 기입 요청 중 적어도 하나가 기입 요청인 경우, 캐시 적중이 일어났는지 결정하는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  8. 제7 항에 있어서,
    캐시 적중이 일어나는 경우, 캐시 라인의 연수(age) 정보를 업데이트하는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  9. 제7 항에 있어서,
    캐시 적중이 일어나지 않는 경우, 캐시 라인의 연수 정보를 업데이트하는 단계; 및
    상기 최소 최근 사용 캐시 라인을 퇴거시키고, 상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나를 수신하는 단계로 돌아가는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  10. 제1 항에 있어서,
    프로세서를 통해, 상기 판독 및 기입 요청 중 적어도 하나가 판독 요청인 경우, 캐시 적중이 일어났는지 결정하는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  11. 제10 항에 있어서,
    캐시 적중이 일어나지 않는 경우, 캐시 라인의 연수를 업데이트하지 않는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  12. 제11 항에 있어서,
    상기 최소 최근 사용 캐시 라인을 퇴거시키고, 상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나를 수신하는 단계로 돌아가는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  13. 제10 항에 있어서,
    캐시 적중이 일어나지 않는 경우, 캐시 라인의 연수를 업데이트하는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  14. 제13 항에 있어서,
    상기 캐시 적중이 일어나지 않는 경우 캐시 라인의 연수를 업데이트한 후, 상기 최소 최근 사용 캐시 라인을 퇴거시키고 상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나를 수신하는 단계로 돌아가는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  15. 제10 항에 있어서,
    캐시 적중이 일어나는 경우, 캐시 라인의 연수를 업데이트하지 않는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  16. 제15 항에 있어서,
    상기 캐시 적중이 일어나는 경우 캐시 라인의 연수를 업데이트하지 않은 후, 상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나를 수신하는 단계로 복귀하는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  17. 제10 항에 있어서,
    캐시 적중이 일어나는 경우, 상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나를 수신하는 단계로 복귀하는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  18. 제10 항에 있어서,
    캐시 적중이 일어나지 않는 경우, 캐시 라인의 연수를 업데이트하지 않는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  19. 제18 항에 있어서,
    캐시 라인의 연수를 업데이트하지 않은 후, 상기 최소 최근 사용 캐시 라인을 퇴거시키는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  20. 제19 항에 있어서,
    상기 최소 최근 사용 캐시 라인을 퇴거시킨 후, 상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나를 수신하는 단계로 복귀하는 단계를 더 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  21. 장치에 있어서,
    저장 클래스 메모리에의 판독 및 기입 요청 중 적어도 하나를 수신하기 위한 수단;
    상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나가 더티 캐시 라인을 가지는지를 결정하기 위한 수단;
    더티 캐시 라인이 존재하는 경우, 상기 저장 클래스 메모리에의 상기 판독 및 기입 요청 중 적어도 하나가 캐시 적중을 가지는지를 결정하기 위한 수단; 및
    최소 최근 사용 캐시 라인을 퇴거시키기 위한 수단을 포함하는, 장치.
  22. 제21 항에 있어서,
    캐시 적중이 일어나지 않는 경우, 상기 판독 및 기입 요청 중 적어도 하나가 판독 요청인지를 결정하기 위한 프로세서 수단을 더 포함하는, 장치.
  23. 장치에 있어서,
    메모리에의 판독 및 기입 요청 중 적어도 하나를 수신하기 위한 수단;
    상기 메모리에의 판독 및 기입 요청 중 적어도 하나가 더티 캐시 라인을 가지는지를 결정하기 위해, 상기 판독 및 기입 요청 중 적어도 하나를 메모리와 비교하기 위한 수단;
    상기 판독 및 기입 요청 중 적어도 하나와 연관된 데이터를 업데이트하기 위한 수단; 및
    최소 최근 사용 캐시 라인을 퇴거시키기 위한 수단을 포함하는, 장치.
  24. 제23 항에 있어서,
    상기 메모리는 저장 클래스 메모리인 것인, 장치.
  25. 저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법에 있어서,
    상기 저장 클래스 메모리에의 적어도 하나의 기입 요청을 수신하는 단계;
    상기 저장 클래스 메모리에의 상기 적어도 하나의 기입 요청이 더티 캐시 라인을 가지는지를 결정하는 단계;
    상기 적어도 하나의 기입 요청을 캐시와 비교하는 단계;
    더티 캐시 라인이 존재하는 경우, 상기 저장 클래스 메모리에의 상기 적어도 하나의 기입 요청이 캐시 적중을 가지는지를 결정하는 단계; 및
    캐시 적중이 없는 경우, 최소 최근 사용 캐시 라인을 퇴거시키고, 상기 저장 클래스 메모리에의 상기 적어도 하나의 기입 요청을 수신하는 단계로 돌아가는 단계를 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 적어도 하나의 캐시 라인을 퇴거시키는 방법.
  26. 저장 클래스 메모리의 하위 레벨 캐시로부터 기입 요청 내의 적어도 하나의 캐시 라인을 퇴거시키도록 구성된 배열에 있어서,
    저장 클래스 메모리에의 적어도 하나의 기입 요청을 수신하기 위한 수단;
    상기 저장 클래스 메모리에의 상기 적어도 하나의 기입 요청이 더티 캐시 라인을 가지는지를 결정하기 위한 수단;
    상기 적어도 하나의 기입 요청을 캐시와 비교하고, 더티 캐시 라인이 존재하는 경우 상기 저장 클래스 메모리에의 상기 적어도 하나의 기입 요청이 캐시 적중을 가지는지를 결정하기 위한 프로세서 수단; 및
    캐시 적중이 없는 경우, 최소 최근 사용 캐시 라인을 퇴거시키고, 상기 저장 클래스 메모리에의 상기 적어도 하나의 기입 요청을 수신하는 단계로 돌아가기 위한 수단을 포함하는,
    저장 클래스 메모리의 하위 레벨 캐시로부터 기입 요청 내의 적어도 하나의 캐시 라인을 퇴거시키도록 구성된 배열.
KR1020180076526A 2015-10-29 2018-07-02 하위 레벨 캐시에서 캐시 라인의 연령을 제어함으로써 메모리에 대한 후기입 감소 KR102176304B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/927,410 US9952973B2 (en) 2015-10-29 2015-10-29 Reducing write-backs to memory by controlling the age of cache lines in lower level cache
US14/927,410 2015-10-29

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020160141955A Division KR101875844B1 (ko) 2015-10-29 2016-10-28 하위 레벨 캐시에서 캐시 라인들의 연수를 제어함으로써 메모리에 대한 라이트백을 감소시키는 것

Publications (2)

Publication Number Publication Date
KR20180079278A true KR20180079278A (ko) 2018-07-10
KR102176304B1 KR102176304B1 (ko) 2020-11-09

Family

ID=58546139

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020160141955A KR101875844B1 (ko) 2015-10-29 2016-10-28 하위 레벨 캐시에서 캐시 라인들의 연수를 제어함으로써 메모리에 대한 라이트백을 감소시키는 것
KR1020180076526A KR102176304B1 (ko) 2015-10-29 2018-07-02 하위 레벨 캐시에서 캐시 라인의 연령을 제어함으로써 메모리에 대한 후기입 감소

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020160141955A KR101875844B1 (ko) 2015-10-29 2016-10-28 하위 레벨 캐시에서 캐시 라인들의 연수를 제어함으로써 메모리에 대한 라이트백을 감소시키는 것

Country Status (5)

Country Link
US (2) US9952973B2 (ko)
JP (1) JP2017117437A (ko)
KR (2) KR101875844B1 (ko)
CN (1) CN107085556B (ko)
DE (1) DE102016012879A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952973B2 (en) 2015-10-29 2018-04-24 Western Digital Technologies, Inc. Reducing write-backs to memory by controlling the age of cache lines in lower level cache

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026372A1 (en) * 2004-07-28 2006-02-02 Samsung Electronics Co., Ltd. Page replacement method using page information

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043885A (en) 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
US5734861A (en) * 1995-12-12 1998-03-31 International Business Machines Corporation Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
US5996048A (en) * 1997-06-20 1999-11-30 Sun Microsystems, Inc. Inclusion vector architecture for a level two cache
US5978951A (en) 1997-09-11 1999-11-02 3Com Corporation High speed cache management unit for use in a bridge/router
US6484237B1 (en) * 1999-07-15 2002-11-19 Texas Instruments Incorporated Unified multilevel memory system architecture which supports both cache and addressable SRAM
US20020152361A1 (en) 2001-02-05 2002-10-17 International Business Machines Corporation Directed least recently used cache replacement method
US20030084249A1 (en) * 2001-10-31 2003-05-01 Johnson David J.C. Preemptive eviction of stale entries is a computer cache by use of age-bits
US7062611B2 (en) * 2002-02-07 2006-06-13 Sun Microsystems, Inc. Dirty data protection for cache memories
EP1387277B1 (en) 2002-07-31 2009-07-15 Texas Instruments Incorporated Write back policy for memory
US7356651B2 (en) * 2004-01-30 2008-04-08 Piurata Technologies, Llc Data-aware cache state machine
US7337276B2 (en) 2005-08-11 2008-02-26 International Business Machines Corporation Method and apparatus for aging data in a cache
US7577795B2 (en) 2006-01-25 2009-08-18 International Business Machines Corporation Disowning cache entries on aging out of the entry
US7937531B2 (en) * 2007-02-01 2011-05-03 Cisco Technology, Inc. Regularly occurring write back scheme for cache soft error reduction
US7966456B2 (en) 2007-09-28 2011-06-21 Intel Corporation Method for reducing number of writes in a cache memory
KR101056460B1 (ko) * 2009-06-05 2011-08-11 세종대학교산학협력단 캐쉬 제어기 및 캐쉬 블록 교체 방법
JP5574039B2 (ja) 2011-03-11 2014-08-20 富士通株式会社 演算処理装置及び演算処理装置の制御方法
WO2013095537A1 (en) 2011-12-22 2013-06-27 Intel Corporation Controlling a processor cache using a real-time attribute
WO2015047348A1 (en) * 2013-09-27 2015-04-02 Intel Corporation Cache operations for memory management
US20160026372A1 (en) 2014-07-22 2016-01-28 Sunil Arvindam Graph-based approach for dynamic configuration of user interfaces
US9952973B2 (en) 2015-10-29 2018-04-24 Western Digital Technologies, Inc. Reducing write-backs to memory by controlling the age of cache lines in lower level cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026372A1 (en) * 2004-07-28 2006-02-02 Samsung Electronics Co., Ltd. Page replacement method using page information
US7366855B2 (en) * 2004-07-28 2008-04-29 Samsung Electronics Co., Ltd. Page replacement method using page information

Also Published As

Publication number Publication date
US10552325B2 (en) 2020-02-04
US20170123984A1 (en) 2017-05-04
KR102176304B1 (ko) 2020-11-09
US9952973B2 (en) 2018-04-24
JP2017117437A (ja) 2017-06-29
KR101875844B1 (ko) 2018-08-02
KR20170054268A (ko) 2017-05-17
CN107085556A (zh) 2017-08-22
US20180239703A1 (en) 2018-08-23
DE102016012879A1 (de) 2017-05-04
CN107085556B (zh) 2020-11-03

Similar Documents

Publication Publication Date Title
US10482032B2 (en) Selective space reclamation of data storage memory employing heat and relocation metrics
US8972661B2 (en) Dynamically adjusted threshold for population of secondary cache
US9223710B2 (en) Read-write partitioning of cache memory
KR102057543B1 (ko) 하이브리드 버퍼 풀
US9672161B2 (en) Configuring a cache management mechanism based on future accesses in a cache
US20130111146A1 (en) Selective population of secondary cache employing heat metrics
KR20200088502A (ko) 메모리 대역폭 사용을 제한하기 위한 메모리 요청 스로틀링
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
US20140082296A1 (en) Deferred re-mru operations to reduce lock contention
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
US9904569B2 (en) Pre-loading page table cache lines of a virtual machine
US8966186B2 (en) Cache memory prefetching
US11372778B1 (en) Cache management using multiple cache memories and favored volumes with multiple residency time multipliers
KR102176304B1 (ko) 하위 레벨 캐시에서 캐시 라인의 연령을 제어함으로써 메모리에 대한 후기입 감소
US9760488B2 (en) Cache controlling method for memory system and cache system thereof
US11379382B2 (en) Cache management using favored volumes and a multiple tiered cache memory

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant