KR102627410B1 - 서비스 품질 더티 라인 추적 - Google Patents
서비스 품질 더티 라인 추적 Download PDFInfo
- Publication number
- KR102627410B1 KR102627410B1 KR1020227010942A KR20227010942A KR102627410B1 KR 102627410 B1 KR102627410 B1 KR 102627410B1 KR 1020227010942 A KR1020227010942 A KR 1020227010942A KR 20227010942 A KR20227010942 A KR 20227010942A KR 102627410 B1 KR102627410 B1 KR 102627410B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- counter
- memory bandwidth
- cache line
- write
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 88
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000005259 measurement Methods 0.000 claims abstract description 7
- 238000012986 modification Methods 0.000 claims description 12
- 230000004048 modification Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
기록 메모리 대역폭의 측정값을 생성하기 위한 시스템, 장치 및 방법이 개시된다. 제어 장치는 캐시 계층에 대한 기록을 모니터링한다. 캐시 라인에 대한 기록이 캐시 계층에 들어간 이후 처음으로 캐시 라인이 수정되는 경우 제어 장치는 기록 메모리 대역폭 카운터를 증가시킨다. 그렇지 않고, 기록이 캐시 계층에 들어간 이후 이미 수정된 캐시 라인에 대한 것이라면 기록 메모리 대역폭 카운터는 증가되지 않는다. 캐시 라인에 대한 첫 번째 기록은 기록 메모리 대역폭에 대한 프록시이다. 이는 결국 메모리에 기록을 유발하기 때문이다. 제어 장치는 기록 메모리 대역폭 카운터의 값을 사용하여 기록 메모리 대역폭의 측정값을 생성한다. 또한, 제어 장치는 스레드 클래스당 기록 메모리 대역폭을 계산하기 위해 다른 스레드 클래스에 대해 여러 카운터를 유지할 수 있다.
Description
대부분의 최신 컴퓨팅 디바이스는 컴퓨팅 디바이스의 주 메모리 외에 적어도 한 수준의 캐시 메모리(또는 캐시)를 제공한다. 일반적으로 캐시는 동작을 수행하는 컴퓨팅 디바이스의 기능 블록에 더 가까운 다양한 작업을 수행하는 데 사용되는 제한된 수의 데이터 사본과 10개의 명령어를 저장하기 위해 사용되는 더 작은 용량의 더 빠른 액세스 메모리이다. 케시는 일반적으로 정적 랜덤 액세스 메모리(SRAM) 집적 회로 또는 다른 유형의 메모리 회로와 같은 고속 메모리 회로를 사용하여 구현된다. 프로세서가 메모리에 저장된 데이터에 대한 액세스를 요청하면 프로세서는 먼저 데이터 사본이 캐시에 저장되어 있는지를 결정한다. 저장되어 있다면 프로세서는 캐시에 액세스하여 데이터에 더 효율적으로 액세스할 수 있다.
일부 캐시에서는 캐시 라인과 관련된 클래스 또는 스레드가 캐시에 저장된다. 이것은 많은 양의 영역을 소비할 수 있는 추가 정보가 캐시에 저장되게 한다. 또한, 스레드 클래스의 표시가 캐시에 저장되는 방식에서 소프트웨어는 스레드 클래스를 주기적으로 변경할 수 있다. 이 경우 잠재적으로 큰 L3(레벨 3) 캐시의 캐시 라인에 있는 스레드 클래스 정보가 부실한 상태일 수 있다.
본 명세서에 설명된 방법들 및 메커니즘들의 이점들은 첨부 도면들과 함께 이하의 설명을 참조함으로써 더 잘 이해될 수 있으며, 첨부 도면들에서:
도 1은 컴퓨팅 시스템의 일 구현 예의 블록도이다.
도 2는 프로세서의 일 구현 예의 블록도이다.
도 3은 캐시 계층 구조에 대한 기록 메모리 대역폭을 계산하는 일 구현 예의 블록도이다.
도 4는 기록 메모리 대역폭의 측정값을 생성하기 위한 방법의 일 구현을 예시하는 일반화된 흐름도이다.
도 5는 캐시에 대한 기록을 모니터링하기 위한 방법의 일 구현을 예시하는 일반화된 흐름도이다.
도 6은 기록 메모리 대역폭의 측정값을 생성하기 위한 방법의 일 구현을 예시하는 일반화된 흐름도이다.
도 7은 스레드 클래스당 기록 메모리 대역폭의 측정값을 생성하기 위한 방법의 일 구현을 예시하는 일반화된 흐름도이다.
도 1은 컴퓨팅 시스템의 일 구현 예의 블록도이다.
도 2는 프로세서의 일 구현 예의 블록도이다.
도 3은 캐시 계층 구조에 대한 기록 메모리 대역폭을 계산하는 일 구현 예의 블록도이다.
도 4는 기록 메모리 대역폭의 측정값을 생성하기 위한 방법의 일 구현을 예시하는 일반화된 흐름도이다.
도 5는 캐시에 대한 기록을 모니터링하기 위한 방법의 일 구현을 예시하는 일반화된 흐름도이다.
도 6은 기록 메모리 대역폭의 측정값을 생성하기 위한 방법의 일 구현을 예시하는 일반화된 흐름도이다.
도 7은 스레드 클래스당 기록 메모리 대역폭의 측정값을 생성하기 위한 방법의 일 구현을 예시하는 일반화된 흐름도이다.
다음의 설명에서, 많은 특정 세부사항들이 본원에 제시된 방법들 및 메커니즘들의 완전한 이해를 제공하기 위해 제시된다. 그러나 본 기술분야에서 통상의 기술을 가진 자는 다양한 구현예들이 이러한 특정 세부 사항들 없이 실시될 수 있음을 인식해야 한다. 일부 예들에서, 주지의 구조들, 컴포넌트들, 신호들, 컴퓨터 프로그램 명령어들 및 기술들은 본원에 설명된 접근 방식들을 모호하게 하지 않도록 상세하게 설명되지 않았다. 설명의 단순성 및 명료성을 위해, 도면들에 도시된 요소들은 반드시 비례하여 도시된 것은 아님이 이해될 것이다. 예를 들어, 요소들 중 일부의 치수들은 다른 요소들에 비해 과장될 수 있다.
기록 메모리 대역폭을 측정하기 위한 다양한 시스템, 장치, 방법 및 컴퓨터 판독가능 매체가 본원에 개시된다. 일 구현 예에서 시스템은 프로세서, 캐시 계층 및 메모리 서브시스템을 포함한다. 캐시 계층은 하나 이상의 캐시 레벨과 하나 이상의 캐시 컨트롤러(즉, 제어 장치)를 포함한다. 일 구현 예에서, 주어진 제어 장치는 캐시 계층에 대한 기록을 모니터링한다. 캐시 라인에 대한 기록이 캐시 계층에 들어간 이후 처음으로 캐시 라인이 수정되는 경우 제어 장치는 기록 메모리 대역폭 카운터를 증가시킨다. 그렇지 않고, 기록이 캐시 계층에 들어간 이후 이미 수정된 캐시 라인에 대한 것이라면 제어 장치는 기록 메모리 대역폭 카운터를 증가시키지 않는다. 캐시 라인에 대한 첫 번째 기록은 기록 메모리 대역폭에 대한 프록시이다. 이는 결국 메모리에 기록을 유발하기 때문이다. 제어 장치는 기록 메모리 대역폭 카운터의 값을 사용하여 기록 메모리 대역폭의 측정값을 생성한다. 또한, 제어 장치는 스레드 클래스당 기록 메모리 대역폭을 계산하기 위해 다른 스레드 클래스에 대해 여러 카운터를 유지할 수 있다.
이제 도 1을 참조하면, 컴퓨팅 시스템(100)의 일 구현예의 블록도가 도시된다. 일 구현예에서, 컴퓨팅 시스템(100)은 적어도 프로세서들(105A-N), 입력/출력(I/O) 인터에피스들(120), 버스(125), 메모리 컨트롤러(들)(130A-N) 및 네트워크 인터페이스(135) 및 메모리 디바이스(들)(140A-N)를 포함한다. 다른 구현예들에서, 컴퓨팅 시스템(100)은 다른 컴포넌트들(예: 디스플레이 컨트롤러)을 포함하고/하거나 컴퓨팅 시스템(100)은 다르게 배열된다. 프로세서들(105A-N)은 시스템(100)에 포함되는 임의 개수의 프로세서들을 나타낸다.
일 구현예에서, 프로세서(105A)는 중앙 처리 장치(CPU)와 같은 범용 프로세서이다. 일 구현예에서, 프로세서(105N)는 고 병렬 아키텍처(highly parallel architecture)를 갖는 데이터 병렬 프로세서이다. 데이터 병렬 프로세서들은 그래픽 처리 유닛(GPU), 디지털 신호 프로세서(DSP), 필드 프로그램 가능 게이트 어레이(FPGA), 주문형 반도체(ASIC) 등을 포함한다. 일 구현예에서 프로세서(105A)는 적어도 실행 코어(들)(110A), 캐시 서브시스템(115A) 및 메모리 컨트롤러(130A)를 포함한다. 유사하게, 프로세서(105N)는 적어도 실행 코어(들)(110N), 캐시 서브시스템(115N) 및 메모리 컨트롤러(130N)를 포함한다. 실행 코어(들)(110A-N)는 본원에서 실행 유닛으로도 지칭될 수 있다는 점에 유의한다. 도면을 불명료하게 하는 것을 피하기 위해 프로세서(105A-N)가 도시되지 않은 다른 컴포넌트들을 포함한다는 점에도 유의한다.
시스템(100)의 경우 소프트웨어에 대한 정보 제공에 대해, 서비스 품질 방식을 통한 대역폭 할당에 대해 또는 얼마나 많은 메모리 대역폭이 사용되고 있는지에 대해 관심이 있는 다른 하드웨어에 대해 주어진 프로세스 또는 프로세스의 클래스에 대한 메모리 대역폭을 측정하고자 할 수 있다. 기존 솔루션은 캐시 미스 요청에 글로벌 요청자 ID 또는 기타 클래스 표시가 요청에 첨부되어 있기 때문에 비교적 간단한 방식으로 판독 메모리 대역폭을 측정한다. 기록 메모리 대역폭을 측정하는 것은 기록이 캐시 축출(eviction)의 결과일 수 있고 캐시가 캐시 라인이 속한 클래스의 표시를 저장하지 않을 수 있기 때문에 덜 간단하다. 따라서, 다양한 구현예들에서, 시스템(100)은 메모리 디바이스들(140A-N)에 대한 기록 메모리 대역폭을 효율적인 방식으로 측정하기 위해 다양한 기술들을 사용한다.
일 구현예에서 캐시 서브시스템(115A-N)은 캐시 서브시스템(115A-N)으로 가져온 후 실행 코어(들)(110A-N) 각각에 의해 캐시 라인이 처음으로 기록되는 시간을 모니터링하기 위한 제어 로직을 포함한다. 일 구현예에서 제어 로직은 캐시 라인이 대응하는 캐시 서브시스템(115A-N)의 임의의 레벨에서 캐시된 이후 처음으로 수정될 때마다 카운터를 증가시킨다. 캐시 라인이 두 번째 또는 그 후에 수정되는 경우 제어 로직은 카운터를 증가시키지 않는다. 제어 로직은 카운터 값을 기반으로 기록 메모리 대역폭의 측정값을 생성한다. 일 구현예에서 제어 로직은 스레드 클래스 기반으로 캐시 라인에 대한 최초 기록을 모니터링한다. 이 구현예에서 제어 로직은 기록 메모리 대역폭의 스레드 클래스당 측정값을 생성한다.
메모리 컨트롤러(들)(130A-N)은 임의의 수 및 유형의 메모리 디바이스(들)(140A-N)에 각각 결합되는 임의의 수 및 유형의 메모리 컨트롤러를 나타낸다. 메모리 컨트롤러(들)(130A-N)가 각각 프로세서(105A-N) 내에 위치하는 것으로 도시되어 있지만, 이는 단지 하나의 구현을 나타내는 것일 뿐이다. 다른 구현예에서, 메모리 컨트롤러(들)(130A-N)는 각각 프로세서(105A-N) 외부에 있다. 캐시 서브시스템(115A-N)의 일부는 각각 실행 코어(들)(110A-N) 내에 위치할 수 있고, 캐시 서브시스템(115A-N)의 다른 부분은 실행 코어(들)(110A-N) 외부에 위치할 수 있음이 또한 주목된다. 예를 들어, 한 구현예에서, 레벨 1(L1) 및 레벨 2(L2) 캐시는 실행 코어들(110A-N) 내에 위치하는 반면 마지막 레벨 캐시(LLC)는 실행 코어(들)(110A-N) 외부에 위치한다.
메모리 디바이스(들)(140)는 임의의 수 및 유형의 메모리 디바이스(들)을 나타낸다. 예를 들어, 메모리 디바이스(들)(140)의 메모리 유형은 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), NAND 플래시 메모리, NOR 플래시 메모리, 강유전체 랜덤 액세스 메모리(FeRAM) 등을 포함할 수 있다. I/O 인터페이스들(120)은 임의 개수 및 유형의 I/O 인터페이스들(예를 들어, 주변 컴포넌트 인터커넥트(PCI) 버스, 확장 PCI(PCI-X), PCIE(PCI Express) 버스, 기가바이트 이더넷(GBE) 버스, 범용 직렬 버스(USB))을 나타낸다. 다양한 유형의 주변 기기들(도시되지 않음)은 I/O 인터페이스들(120)에 결합된다. 이러한 주변 장치들은 (이에 제한되는 것은 아니나) 디스플레이, 네트워크 인터페이스 카드, 키보드, 마이크, 프린터, 스캐너, 조이스틱 또는 다른 유형의 게임 컨트롤러, 매체 기록 장치, 외부 저장 장치 등을 포함한다. 네트워크 인터페이스(135)는 네트워크를 통해 메시지들을 송수신하는 데 사용된다.
다양한 실시예들에서, 컴퓨팅 시스템(100)은 컴퓨터, 랩탑, 모바일 장치, 게임 콘솔, 서버, 스트리밍 장치, 웨어러블 장치 또는 임의의 다양한 다른 유형의 컴퓨팅 시스템들 또는 장치들일 수 있다. 컴퓨팅 시스템(100)의 컴포넌트들의 개수는 구현예마다 다를 수 있다는 점에 유의한다. 예를 들어, 도 1에 도시된 개수보다 더 많거나 더 적은 각 컴포넌트가 있을 수 있다. 컴퓨팅 시스템(100)은 도 1에 도시되지 않은 다른 컴포넌트들을 포함할 수도 있다는 점에 유의한다. 추가로, 다른 구현예들에서, 컴퓨팅 시스템(100)은 도 1에 도시된 것과 다른 방식들로 구조화될 수 있다.
이제 도 2를 참조하면, 프로세서(200)의 한 구현예의 블록도가 도시된다. 일 구현예에서 프로세서(200)는 적어도 실행 코어(205), 캐시 서브시스템(210), 제어 장치(215) 및 메모리 서브시스템(220)을 포함한다. 프로세서(200)는 도면을 불명료하게 하는 것을 피하기 위해 도시되지 않은 다른 컴포넌트들을 포함할 수도 있다. 코어(205)는 하나 이상의 프로그램 및/또는 운영 체제의 명령어를 실행하기 위한 임의의 수의 프로세서 코어를 나타낸다. 일 구현예에서, 프로세서(200)의 회로는 프로세서(105A) 및/또는 프로세서 105N(도 1의)에 포함된다.
일 구현예에서, 코어(205)는 읽기 및 기록 요청을 캐시 서브시스템(210)에 보낸다. 제어 장치(215)는 캐시 서브시스템(210)의 캐시 라인에 수행되는 기록을 모니터링하고 프로세서(200)의 다른 스레드 클래스에 대해 캐시 라인이 처음 기록되는 시간을 추적하기 위해 카운터를 유지한다. 캐시 서브시스템(210) 내로 가져온 이후 처음으로 캐시 라인이 기록될 때마다 제어 장치(215)는 캐시 라인의 대응하는 스레드 클래스에 대한 카운터를 증가시킨다. 각 카운터는 대응하는 스레드 캐시에 대한 기록 메모리 대역폭의 추정치를 생성하는 데 사용된다.
이제 도 3을 참조하면 캐시 계층(300)에 대한 기록 메모리 대역폭을 계산하는 일 구현예의 블록도가 도시되어 있다. 캐시 계층(300)은 임의의 수의 캐시 레벨을 포함하며, 그 레벨 수는 구현예에 따라 다르다. 일 구현예에서, 캐시 계층(300)은 도 2의 캐시 서브시스템(210)을 나타낸다. 제어 장치(310)는 캐시 계층(300)의 캐시 라인에 수행되는 기록을 모니터링한다. 일 구현예에서, 제어 장치(310)는 호스트 컴퓨팅 시스템의 개별 스레드 각각에 대한 개별 카운터(325A-N)을 포함한다. 주어진 캐시 라인이 캐시 계층(300)에 들어간 이후 처음으로 주어진 캐시 라인에 기록이 수행될 때 제어 장치(310)는 기록 동작(write operation)의 스레드 클래스를 결정한다. 일 구현예에서, 제어 장치(310)는 실행 유닛으로부터 스레드 클래스의 표시를 수신한다. 다른 구현예에서, 제어 장치(310)는 어드레스에 대응하는 스레드 클래스를 찾기 위해 주어진 캐시 라인의 어드레스로 테이블(330)에 대한 룩업을 수행한다. 추가 구현예에서, 제어 장치(310)는 기록 동작의 스레드 클래스를 결정하기 위해 실행 유닛의 로드/저장 유닛(미도시)에 질의한다. 다른 구현예에서, 제어 장치(310)는 기록 동작의 스레드 클래스를 결정하기 위해 다른 기술들을 사용한다.
각 카운터(325A-N)는 대응하는 스레드 캐시에 대한 기록 메모리 대역폭을 나타낸다. 일 구현예에서, 주어진 카운터(325A-N)의 값이 프로그램 가능한 임계값보다 크면 해당 스레드 클래스의 메모리 트래픽은 주어진 카운터(325A-N)의 값이 프로그램 가능한 임계값 아래로 떨어질 때까지 감소한다. 다양한 구현예에서, 해당 스레드 클래스의 메모리 트래픽은 메모리 컨틀롤러에서 기록 요청을 큐잉하여, 해당 스레드 클래스의 기록 요청의 우순순위를 낮추어서 또는 다른 기술을 사용하여 감소한다. 예를 들어, 해당스레드 클래스의 매모리 트래픽을 줄이기 위한 다른 메커니즘에는 실행 코어에서 해당 스레드 클래스의 미해결을 허용하는 것이 가능한 메모리 요청 수를 줄이고 해당 스레드 클래스의 실행 속도를 원하는 메모리 트래픽 속도에 도달하는 수준으로 줄이는 것이 포함된다.
이제 도 4를 참조하면, 기록 메모리 대역폭의 측정값을 생성하기 위한 방법(400)의 일 구현예가 도시되어 있다. 설명의 목적으로, 이 구현예의 단계들과 도 5~7의 단계들이 순차적으로 표시된다. 그러나 설명된 방법들의 다양한 구현예들에서, 설명된 요소들 중 하나 이상은 도시된 것과 다른 순서로 동시에 수행되거나 또는 완전히 생략된다는 점에 유의한다. 다른 추가 요소들이 또한 원하는 대로 수행된다. 본 명세서에서 설명된 다양한 시스템들 또는 장치들 중 어느 하나가 방법(400)을 구현하도록 구성된다.
제어 장치는 캐시 계층에 들어간 이후 처음으로 캐시 라인이 수정될 때마다 카운터를 증가시킨다(블록 405). 제어 장치는 카운터 값을 기반으로 기록 메모리 대역폭의 측정값을 생성한다(블록 410). 기록 메모리 대역폭의 측정치를 생성하는 일 예는 방법(600)(도 6의)에 설명되어 있다. 기록 메모리 대역폭의 측정값이 주어진 임계값보다 크면(조건부 블록(415), "예" 레그), 제어 장치는 메모리 서브시스템(420)으로 전송되는 기록 동작의 수를 줄인다. 그렇지 않고, 기록 메모리 대역폭의 측정값이 주어진 임계값보다 작으면(조건부 블록(415), "아니오" 레그), 제어 장치는 메모리 서브시스템으로 전송되는 기록 동작을 간섭하지 않는다(블록 425). 블록(420 및 425) 후, 방법(400)은 블록(405)으로 돌아간다. 다른 구현에에서, 제어 장치는 블록(410)에서 생성된 기록 메모리 대역폭의 측정값을 판독 메모리 대역폭의 측정값에 더함으로써 총 메모리 대역폭의 측정값을 생성한다. 그런 다음, 이 구현예에서, 제어 장치는 총 메모리 대역폭이 조건부 블록(415)에서 주어진 임계값보다 큰지를 결정한다.
이제 도 5를 참조하면, 캐시에 대한 기록을 모니터링하기 위한 방법(500)의 일 구현예가 도시되어 있다. 주어진 캐시 라인에 대한 기록 동작이 검출된다(블록 505). 기록 동작을 검출한 것에 응답하여, 제어 장치는 주어진 캐시 라인에 대한 기록이 캐시 계층에 들어간 이후 주어진 캐시 라인이 처음으로 수정되는지 여부를 결정한다(블록 510). 일 구현예에서, 주어진 캐시 라인의 더티 상태는 캐시 계층에 들어간 이후에 주어진 캐시 라인이 이전에 기록되었는지를 결정하기 위해 검사된다.
주어진 캐시 라인에 대한 기록이 주어진 캐시 라인이 캐시 계층에 들어간 이후 주어진 캐시 라인이 처음으로 수정되는 것이라면(조건부 블록 515, "예" 레그), 제어 장치는 대응하는 카운터를 증가시킨다(블록 520). 그렇지 않고, 주어진 캐시 라인이 캐시 계층에 들어간 이후 이전에 수정되었다면(조건부 블록 515, "아니오" 레그), 제어 장치는 대응하는 카운터를 변경하지 않고 유지한다(블록 525). 블록(520 및 525) 후, 방법(500)이 종료된다.
이제 도 6을 참조하면, 기록 메모리 대역폭의 측정값을 생성하기 위한 방법(600)의 일 구현예가 도시되어 있다. 제어 장치는 캐시 계층에 저장된 수정되지 않은 캐시 라인에 수행된 기록을 추적하기 위해 카운터를 유지한다(블록 605). 수정된 캐시 라인에 대해 수행된 기록은 카운터에 의해 추적되지 않는다. 제어 장치는 제1 시점에서 카운터 값의 제1 스냅샷을 취한다(블록 610). 또는, 다른 구현예에서, 제어 장치는 방법(600)의 시작에서 카운터를 리셋하고, 이 경우 블록(610)은 카운터가 제1 시점에서 0의 값을 가질 것이기 때문에 건너뛸 수 있다.
나중에, 일정 기간이 경과한 후, 제어 장치는 제2 시점에서 카운터 값의 제2 스냅샷을 취한다(블록 615). 제1 시점과 제2 시점 사이에 경과하도록 허용되는 시간의 양은 프로그래밍 가능하거나 미리 결정된 시간의 양일 수 있다. 다음으로, 제어 장치는 카운터 값의 제2 스냅샷과 제1 스냅샷 간의 차이를 제1 시점과 제2 시점 사이에 경과된 클록 사이클의 수로 나눈 것과 같은 기록 메모리 대역폭의 측정값을 생성한다(블록 620). 블록(620) 이후, 방법(600)이 종료된다. 블록(620)에서 생성된 기록 메모리 대역폭의 측정값은 다양한 방식으로 소프트웨어 및/또는 하드웨어에 의해 사용될 수 있음에 유의한다. 방법(600)이 주기적으로 실행될 수 있다는 것도 유의한다. 경우에 따라, 제어 장치는 방법(600)을 반복할 때마다 카운터를 재설정한다.
이제 도 7을 참조하면, 스레드 클래스당 기록 메모리 대역폭을 추적하기 위한 방법(700)의 일 구현예가 도시되어 있다. 제어 장치는 복수의 상이한 스레드 클래스에 대한 복수의 카운터를 유지하고, 각각의 카운터는 개별 스레드 클래스에 대한 기록 메모리 대역폭을 추적한다(블록 705). 캐시 라인에 대한 기록이 검출될 때마다 제어 장치는 캐시 라인이 캐시 계층에 들어간 이후 기록이 캐시 라인의 첫 번째 수정인지를 결정한다(블록 710). 예를 들어, 일 구현예에서, 대응하는 더티 비트 세트를 갖지 않는 캐시 라인에 대한 기록은 캐시 라인의 첫 번째 수정으로 간주된다.
기록이 캐시 라인이 캐시 계층에 들어간 이후 캐시 라인의 첫 번째 수정이면(조건부 블록 715, "예" 레그), 제어 장치는 캐시 라인이 속한 스레드 클래스를 결정한다(블록 720). 일 구현예에서, 제어 장치는 캐시 라인에 대한 기록을 야기한 명령어에 대응하는 로드/저장 유닛 엔트리로부터 스레드 클래스를 검색한다. 다른 구현예에서, 제어 장치는 캐시 라인에 대한 기록을 야기한 명령어에 대응하는 리오더 버퍼 엔트리로부터 스레드 클래스를 검색한다. 추가 구현예에서, 제어 장치는 어드레스에 대응하는 스레드 클래스를 결정하기 위해 캐시 라인의 어드레스를 사용하여 스레드 클래스의 룩업을 수행한다. 캐시 라인이 캐시 계층에 들어간 이후 이 기록이 캐시 라인의 첫 번째 수정이 아닌 경우(조건부 블록 715, "아니오" 레그), 방법(700)은 블록(710)으로 돌아간다. 캐시 라인이 속한 스레드 클래스를 결정한 후, 제어 장치는 이 스레드 클래스에 대응하는 카운터를 증가시킨다(블록 725). 블록(725) 이후, 방법(700)은 블록(710)으로 돌아간다.
다양한 구현예들에서, 소프트웨어 어플리케이션의 프로그램 명령어들은 본원에 설명된 방법들 및/또는 메커니즘들을 구현하는 데 사용된다. 예를 들어, 범용 또는 특수 목적 프로세서에 의해 실행 가능한 프로그램 명령어들이 고려된다. 다양한 구현예들에서, 이러한 프로그램 명령어들은 하이 레벨 프로그래밍 언어에 의해 표현된다. 다른 구현예들에서, 프로그램 명령어들은 하이 레벨 프로그래밍 언어에서 이진, 중간 또는 다른 형태로 컴파일된다. 대안으로, 하드웨어의 행동 또는 설계를 설명하는 프로그램 명령어들이 작성된다. 이러한 프로그램 명령어들은 C와 같은 하이 레벨 프로그래밍 언어에 의해 표현된다. 또는, 베릴로그(Verilog )와같은 하드웨어 설계 언어(HDL)가 사용된다. 다양한 구현예들에서, 프로그램 명령어들은 임의의 다양한 비일시적 컴퓨터 판독 가능 저장 매체에 저장된다. 저장 매체는 프로그램 실행을 위해 컴퓨팅 시스템에 프로그램 명령어들을 제공하기 위해 사용 동안 컴퓨팅 시스템에 의해 액세스 가능하다. 일반적으로 말하면, 이러한 컴퓨팅 시스템은 프로그램 명령어들을 실행하도록 구성된 적어도 하나 이상의 메모리들 및 하나 이상의 프로세서들을 포함한다.
전술한 구현예들은 단지 구현의 비-제한적인 예일 뿐이라는 것이 강조되어야 한다. 상술한 개시가 완전히 이해되면, 당업자에게는 다양한 변형 및 수정이 명백해질 것이다. 다음의 특허 청구 범위는 모든 변형과 수정을 포함하는 것으로 해석되어야 한다.
Claims (20)
- 회로를 포함하는 캐시 제어 장치(cache control unit)로서,
상기 회로는,
캐시에 저장된 캐시 라인(cache line)들에 대한 하나 이상의 기록(write)들을 검출하도록 구성되고, 그리고
상기 기록들 중 하나 이상의 기록이, 수정되지 않은 캐시 라인(unmodified cache line)들에 대한 것이라는 결정에 적어도 부분적으로 기반하여 메모리 대역폭(memory bandwidth)의 측정값을 생성하도록 구성되는 것을 특징으로 하는 캐시 제어 장치. - 제1항에 있어서,
상기 회로는,
상기 캐시에 저장된 수정되지 않은 캐시 라인들에 대한 기록들을 추적하기 위해 카운터(counter)를 유지하도록 구성되고, 그리고
상기 카운터에 적어도 부분적으로 기반하여 메모리 대역폭의 상기 측정값을 생성하도록 구성되는 것을 특징으로 하는 캐시 제어 장치. - 제2항에 있어서,
상기 회로는,
제1 시점에서의 상기 카운터의 값과 제2 시점에서의 상기 카운터의 값 간의 차이를 결정하도록 구성되고, 그리고
상기 차이에 적어도 부분적으로 기반하여 메모리 대역폭의 상기 측정값을 결정하도록 구성되는 것을 특징으로 하는 캐시 제어 장치. - 제2항에 있어서,
상기 회로는,
제1 캐시 라인에 대한 주어진 기록 동작이, 상기 제1 캐시 라인이 상기 캐시에 들어간 이후 상기 제1 캐시 라인의 첫 번째 수정이라는 결정에 응답하여 상기 카운터를 증가시키도록 구성되는 것을 특징으로 하는 캐시 제어 장치. - 제4항에 있어서,
상기 회로는,
상기 제1 캐시 라인에 대한 상기 주어진 기록이, 상기 제1 캐시 라인이 상기 캐시에 들어간 이후 상기 제1 캐시 라인의 상기 첫 번째 수정이 아니라는 결정에 응답하여 상기 카운터의 값을 유지하도록 구성되는 것을 특징으로 하는 캐시 제어 장치. - 제3항에 있어서,
상기 회로는,
상기 제1 시점과 상기 제2 시점 사이에 경과된 클록 사이클(clock cycle)들의 수(number)를 결정하도록 구성되는 것을 특징으로 하는 캐시 제어 장치. - 제1항에 있어서,
상기 회로는,
총 메모리 대역폭(total memory bandwidth)을 결정하기 위해 판독 메모리 대역폭(read memory bandwidth)의 측정값에 메모리 대역폭의 상기 측정값을 더하도록 구성되는 것을 특징으로 하는 캐시 제어 장치. - 방법으로서,
상기 방법은,
캐시에 저장된 캐시 라인들에 대한 하나 이상의 기록들을 검출하는 것과, 그리고
상기 기록들 중 하나 이상의 기록이, 수정되지 않은 캐시 라인들에 대한 것이라는 결정에 적어도 부분적으로 기반하여 메모리 대역폭의 측정값을 생성하는 것을 포함하는 것을 특징으로 하는 방법. - 제8항에 있어서,
상기 방법은 또한,
상기 캐시에 저장된 수정되지 않은 캐시 라인들에 대한 기록들을 추적하기 위해 카운터를 유지하는 것과, 그리고
상기 카운터에 적어도 부분적으로 기반하여 메모리 대역폭의 상기 측정값을 생성하는 것을 포함하는 것을 특징으로 하는 방법. - 제9항에 있어서,
상기 방법은 또한,
제1 시점에서의 상기 카운터의 값과 제2 시점에서의 상기 카운터의 값 간의 차이를 결정하는 것과, 그리고
상기 차이에 적어도 부분적으로 기반하여 메모리 대역폭의 상기 측정값을 결정하는 것을 포함하는 것을 특징으로 하는 방법. - 제9항에 있어서,
상기 방법은,
제1 캐시 라인에 대한 주어진 기록 동작이, 상기 제1 캐시 라인이 상기 캐시에 들어간 이후 상기 제1 캐시 라인의 첫 번째 수정이라는 결정에 응답하여 상기 카운터를 증가시키는 것을 포함하는 것을 특징으로 하는 방법. - 제11항에 있어서,
상기 방법은 또한,
상기 제1 캐시 라인에 대한 상기 주어진 기록이, 상기 제1 캐시 라인이 상기 캐시에 들어간 이후 상기 제1 캐시 라인의 상기 첫 번째 수정이 아니라는 결정에 응답하여 상기 카운터의 값을 유지하는 것을 포함하는 것을 특징으로 하는 방법. - 제10항에 있어서,
상기 방법은 또한,
상기 제1 시점과 상기 제2 시점 사이에 경과된 클록 사이클들의 수를 결정하는 것을 포함하는 것을 특징으로 하는 방법. - 시스템으로서,
상기 시스템은,
메모리 서브시스템(memory subsystem); 및
상기 메모리 서브시스템에 결합된 프로세서(processor)를 포함하고,
상기 프로세서는,
캐시에 저장된 캐시 라인들에 대한 하나 이상의 기록들을 검출하도록 구성되고, 그리고
상기 기록들 중 하나 이상의 기록이, 수정되지 않은 캐시 라인들에 대한 것이라는 결정에 적어도 부분적으로 기반하여 메모리 대역폭의 측정값을 생성하도록 구성되는 것을 특징으로 하는 시스템. - 제14항에 있어서,
상기 프로세서는,
상기 캐시에 저장된 수정되지 않은 캐시 라인들에 대한 기록들을 추적하기 위해 카운터를 유지하도록 구성되고, 그리고
상기 카운터에 적어도 부분적으로 기반하여 메모리 대역폭의 상기 측정값을 생성하도록 구성되는 것을 특징으로 하는 시스템. - 제15항에 있어서,
상기 프로세서는,
제1 시점에서의 상기 카운터의 값과 제2 시점에서의 상기 카운터의 값 간의 차이를 결정하도록 구성되고, 그리고
상기 차이에 적어도 부분적으로 기반하여 메모리 대역폭의 상기 측정값을 결정하도록 구성되는 것을 특징으로 하는 시스템. - 제15항에 있어서,
상기 프로세서는,
제1 캐시 라인에 대한 주어진 기록 동작이, 상기 제1 캐시 라인이 상기 캐시에 들어간 이후 상기 제1 캐시 라인의 첫 번째 수정이라는 결정에 응답하여 상기 카운터를 증가시키도록 구성되는 것을 특징으로 하는 시스템. - 제17항에 있어서,
상기 프로세서는,
상기 제1 캐시 라인에 대한 상기 주어진 기록이, 상기 제1 캐시 라인이 상기 캐시에 들어간 이후 상기 제1 캐시 라인의 상기 첫 번째 수정이 아니라는 결정에 응답하여 상기 카운터의 값을 유지하도록 구성되는 것을 특징으로 하는 시스템. - 제16항에 있어서,
상기 프로세서는,
상기 제1 시점과 상기 제2 시점 사이에 경과된 클록 사이클들의 수를 결정하도록 구성되는 것을 특징으로 하는 시스템. - 제14항에 있어서,
상기 프로세서는,
총 메모리 대역폭을 계산하기 위해 판독 메모리 대역폭의 측정값에 메모리 대역폭의 상기 측정값을 더하도록 구성되는 것을 특징으로 하는 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/562,128 US11106594B2 (en) | 2019-09-05 | 2019-09-05 | Quality of service dirty line tracking |
US16/562,128 | 2019-09-05 | ||
PCT/US2020/049215 WO2021046229A1 (en) | 2019-09-05 | 2020-09-03 | Quality of service dirty line tracking |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220057572A KR20220057572A (ko) | 2022-05-09 |
KR102627410B1 true KR102627410B1 (ko) | 2024-01-23 |
Family
ID=72561958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227010942A KR102627410B1 (ko) | 2019-09-05 | 2020-09-03 | 서비스 품질 더티 라인 추적 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11106594B2 (ko) |
EP (1) | EP4026008A1 (ko) |
JP (1) | JP7357148B2 (ko) |
KR (1) | KR102627410B1 (ko) |
CN (1) | CN114365101B (ko) |
WO (1) | WO2021046229A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11106594B2 (en) | 2019-09-05 | 2021-08-31 | Advanced Micro Devices, Inc. | Quality of service dirty line tracking |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140189252A1 (en) | 2012-12-31 | 2014-07-03 | Arijit Biswas | Dynamic cache write policy |
US20190095330A1 (en) | 2017-09-28 | 2019-03-28 | Advanced Micro Devices, Inc. | Preemptive cache writeback with transaction support |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307477A (en) | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
GB2273181A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Cache/non-cache access control. |
JPH0844626A (ja) | 1994-07-28 | 1996-02-16 | Nec Niigata Ltd | キャッシュシステムのフラッシュサイクル制御方法 |
US6205521B1 (en) | 1997-11-03 | 2001-03-20 | Compaq Computer Corporation | Inclusion map for accelerated cache flush |
EP1182564A3 (en) | 2000-08-21 | 2004-07-28 | Texas Instruments France | Local memory with indicator bits to support concurrent DMA and CPU access |
US7895239B2 (en) * | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US20060143397A1 (en) | 2004-12-29 | 2006-06-29 | O'bleness R F | Dirty line hint array for cache flushing |
US7330941B2 (en) | 2005-03-23 | 2008-02-12 | Qualcomm Incorporated | Global modified indicator to reduce power consumption on cache miss |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US8285940B2 (en) | 2008-02-29 | 2012-10-09 | Cadence Design Systems, Inc. | Method and apparatus for high speed cache flushing in a non-volatile memory |
US8103830B2 (en) | 2008-09-30 | 2012-01-24 | Intel Corporation | Disabling cache portions during low voltage operations |
US20110029735A1 (en) * | 2009-07-28 | 2011-02-03 | Ying-Chieh Chiang | Method for managing an embedded system to enhance performance thereof, and associated embedded system |
US8285936B2 (en) | 2009-10-20 | 2012-10-09 | The Regents Of The University Of Michigan | Cache memory with power saving state |
US8667449B2 (en) | 2010-11-17 | 2014-03-04 | Advanced Micro Devices, Inc. | Flip-flop library development for high frequency designs built in an ASIC flow |
US20130346683A1 (en) | 2012-06-22 | 2013-12-26 | William L. Walker | Cache Sector Dirty Bits |
JP6214888B2 (ja) | 2013-03-13 | 2017-10-18 | 株式会社ダイヘン | 変圧器 |
US9367472B2 (en) * | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
US9251081B2 (en) | 2013-08-01 | 2016-02-02 | Advanced Micro Devices, Inc. | Management of caches |
US10169240B2 (en) * | 2016-04-08 | 2019-01-01 | Qualcomm Incorporated | Reducing memory access bandwidth based on prediction of memory request size |
JP6511023B2 (ja) * | 2016-08-22 | 2019-05-08 | 日本電信電話株式会社 | 仮想マシン管理装置およびデプロイ可否判断方法 |
CA3041597C (en) * | 2016-10-31 | 2020-07-07 | Leonardo S.P.A. | Certifiable deterministic system software framework for hard real-time safety-critical applications in avionics systems featuring multi-core processors |
US10339060B2 (en) * | 2016-12-30 | 2019-07-02 | Intel Corporation | Optimized caching agent with integrated directory cache |
US10162756B2 (en) | 2017-01-18 | 2018-12-25 | Intel Corporation | Memory-efficient last level cache architecture |
US11068314B2 (en) * | 2017-03-29 | 2021-07-20 | Juniper Networks, Inc. | Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment |
US11556477B2 (en) * | 2018-06-15 | 2023-01-17 | Arteris, Inc. | System and method for configurable cache IP with flushable address range |
CN113490921A (zh) * | 2019-03-29 | 2021-10-08 | 英特尔公司 | 用于收集冷页的装置、方法和系统 |
US11106594B2 (en) | 2019-09-05 | 2021-08-31 | Advanced Micro Devices, Inc. | Quality of service dirty line tracking |
US20200401891A1 (en) * | 2020-09-04 | 2020-12-24 | Intel Corporation | Methods and apparatus for hardware-aware machine learning model training |
-
2019
- 2019-09-05 US US16/562,128 patent/US11106594B2/en active Active
-
2020
- 2020-09-03 JP JP2022512734A patent/JP7357148B2/ja active Active
- 2020-09-03 WO PCT/US2020/049215 patent/WO2021046229A1/en unknown
- 2020-09-03 CN CN202080062569.4A patent/CN114365101B/zh active Active
- 2020-09-03 KR KR1020227010942A patent/KR102627410B1/ko active IP Right Grant
- 2020-09-03 EP EP20775476.3A patent/EP4026008A1/en active Pending
-
2021
- 2021-08-27 US US17/459,100 patent/US11669457B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140189252A1 (en) | 2012-12-31 | 2014-07-03 | Arijit Biswas | Dynamic cache write policy |
US20190095330A1 (en) | 2017-09-28 | 2019-03-28 | Advanced Micro Devices, Inc. | Preemptive cache writeback with transaction support |
Also Published As
Publication number | Publication date |
---|---|
JP2022546358A (ja) | 2022-11-04 |
US11669457B2 (en) | 2023-06-06 |
JP7357148B2 (ja) | 2023-10-05 |
US20210390057A1 (en) | 2021-12-16 |
US20210073137A1 (en) | 2021-03-11 |
KR20220057572A (ko) | 2022-05-09 |
US11106594B2 (en) | 2021-08-31 |
CN114365101B (zh) | 2023-10-24 |
WO2021046229A1 (en) | 2021-03-11 |
CN114365101A (zh) | 2022-04-15 |
EP4026008A1 (en) | 2022-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10089014B2 (en) | Memory-sampling based migrating page cache | |
US9645933B2 (en) | Dynamic cache partitioning apparatus and method | |
CN111684425A (zh) | 适应于大高速缓存大小的基于区域的目录方案 | |
US10719247B2 (en) | Information processing device, information processing method, estimation device, estimation method, and computer program product | |
JP2023506264A (ja) | アクセスタイプの優先度に基づくキャッシュ管理 | |
JP2023507292A (ja) | ゼロ値メモリ圧縮 | |
US10580110B2 (en) | Hardware structure to track page reuse | |
KR102627410B1 (ko) | 서비스 품질 더티 라인 추적 | |
WO2022133053A1 (en) | Data placement with packet metadata | |
US11561895B2 (en) | Oldest operation wait time indication input into set-dueling | |
US20210182213A1 (en) | Cache line re-reference interval prediction using physical page address | |
CN115087961A (zh) | 用于相干及非相干存储器请求的仲裁方案 | |
US20220050785A1 (en) | System probe aware last level cache insertion bypassing | |
JP7335253B2 (ja) | スコアボードの保存及び復元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |