KR102540752B1 - 비할당 캐시 정책 - Google Patents
비할당 캐시 정책 Download PDFInfo
- Publication number
- KR102540752B1 KR102540752B1 KR1020197017353A KR20197017353A KR102540752B1 KR 102540752 B1 KR102540752 B1 KR 102540752B1 KR 1020197017353 A KR1020197017353 A KR 1020197017353A KR 20197017353 A KR20197017353 A KR 20197017353A KR 102540752 B1 KR102540752 B1 KR 102540752B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- data
- specified data
- expected
- reused
- Prior art date
Links
Images
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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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
- 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/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/455—Image or video data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
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
본 발명은 캐시 메모리에서 데이터 할당을 효율적으로 수행하기 위한 시스템 및 방법에 관한 것이다.
관련 기술의 설명
다양한 실시예에서, 마이크로프로세서가 캐시 계층구조의 하나 이상의 레벨에 연결된다. 종래 기술에서 잘 이해되는 바와 같이, 캐시는 메모리에 저장된 데이터에 대한 요청의 레이턴시를 감소시키는 데 사용된다. 일반적으로 캐시는 하나 이상의 데이터 블록을 저장하며, 이들 각각은 시스템 메모리 내 대응하는 주소에 저장되는 데이터의 복사본이다. 캐시에 있는 동안, 데이터는 마이크로프로세서에 의해 조작되는 것처럼 업데이트될 수 있다. 캐시는 유한한 크기를 갖기 때문에, 캐시 블록의 총 개수가 본질적으로 제한적이다. 덧붙여, 집합 연관 캐시(set-associative cache) 내 지정 세트로 사상되는 블록의 수에 제한이 있다.
특정 데이터가 이용 가능한 캐시 저장 위치를 점유하면, 상기 점유된 캐시 위치에 현재 저장된 데이터가 방출될 때까지, 상기 위치는 타 데이터에게 이용 가능하지 않다. 그러나 일부 경우, 캐시에 저장된 특정 데이터가 재사용되지 않거나 지정 횟수 미만으로만 재사용될 것으로 예상된다(가령, 데이터가 단 1회만 또는 비교적 적은 횟수로 재사용될 수 있다고 예상된다. 결과적으로, 어떠한 재사용도 예상되지 않는 캐시를 점유하고 있는 데이터가 더 많은 재사용이 예상될 수 있는 데이터가 캐시의 위치를 이용하지 못하게 한다. 따라서 액세스 레이턴시가 증가되고 전체 성능이 감소될 수 있다.
이점을 고려하여, 캐시 메모리 내 데이터 할당을 효율적으로 수행하기 위한 효과적인 방법 및 시스템이 희망된다.
도 1은 데이터 저장의 하나의 실시예의 일반화된 다이어그램이다.
도 2는 재사용이 예상되지 않는 데이터를 갖는 애플리케이션을 처리하기 위한 방법의 하나의 실시예의 일반화된 도면이다.
도 3은 재사용이 예상되지 않는 데이터에 대한 읽기 액세스 요청을 수행하기 위한 방법의 하나의 실시예의 일반화된 도면이다.
도 4는 재사용이 예상되지 않는 데이터에 대한 쓰기 액세스 요청을 수행하기 위한 방법의 하나의 실시예의 일반화된 도면이다.
본 발명이 다양한 변경 및 대안적 형태를 가지며, 특정 실시예가 도면에서 예시로 나타나고 본 명세서에 상세히 기재된다. 그러나 도면 및 상세한 설명이 본 발명을 개시된 특정 형태로 한정하려는 의도가 아니며, 반대로, 본 발명은 청구항에 의해 정의되는 본 발명의 범위 내에 속하는 모든 변경예, 균등예 및 대안예를 포함한다.
도 2는 재사용이 예상되지 않는 데이터를 갖는 애플리케이션을 처리하기 위한 방법의 하나의 실시예의 일반화된 도면이다.
도 3은 재사용이 예상되지 않는 데이터에 대한 읽기 액세스 요청을 수행하기 위한 방법의 하나의 실시예의 일반화된 도면이다.
도 4는 재사용이 예상되지 않는 데이터에 대한 쓰기 액세스 요청을 수행하기 위한 방법의 하나의 실시예의 일반화된 도면이다.
본 발명이 다양한 변경 및 대안적 형태를 가지며, 특정 실시예가 도면에서 예시로 나타나고 본 명세서에 상세히 기재된다. 그러나 도면 및 상세한 설명이 본 발명을 개시된 특정 형태로 한정하려는 의도가 아니며, 반대로, 본 발명은 청구항에 의해 정의되는 본 발명의 범위 내에 속하는 모든 변경예, 균등예 및 대안예를 포함한다.
이하의 기재에서, 본 발명의 완전한 이해를 제공하기 위해 많은 특정 세부사항이 제공된다. 그러나 해당 분야의 통상의 기술자라면 이들 특정 세부사항 없이 본 발명이 실시될 수 있음을 알 것이다. 예를 들어, 본 발명을 모호하게 하는 것을 피하기 위해 잘 알려진 회로, 구조, 및 기법은 상세히 도시되지 않았다. 또한 설명의 단순화 및 명료화를 위해, 도면에 나타난 요소들이 반드시 실측 비율로 그려진 것은 아니다. 예를 들어, 요소들 중 일부의 치수가 타 요소에 비해 과장된다.
저장 어레이(storage array)에서 재사용이 예상되지 않는 데이터를 할당하기 위한 시스템 및 방법이 고려된다. 다양한 실시예에서, 저장 어레이는 데이터를 저장하기 위한 복수의 블록을 포함하고 저장 제어기는 복수의 블록으로의 액세스를 제어하기 위한 저장 어레이에 연결된다. 일부 실시예에서, 저장 어레이는 집합 연관 캐시(set associative cache) 어레이이다. 그러나 그 밖의 다른 실시예에서, 저장 어레이는 다양한 저장 자원, 가령, 완전 연관 큐(fully associative queue), 내용 주소화 메모리(CAM: content addressable memory) 어레이, 선입선출(FIFO: first-in-first-out) 큐, 직접 사상된 캐시(direct mapped cache) 등 중 하나이다.
다양한 실시예에서, 저장 어레이에 저장된 데이터가 재사용이 예상되지 않는 데이터로 마킹된다. 일부 실시예에서, 저장 어레이 내 지정 데이터에 대한 액세스 요청이 액세스 중인 지정 데이터가 재사용이 예상되지 않는다는 지시자를 포함한다. 일부 실시예에서, 저장 제어기는 액세스 요청이 특정 주소 범위를 타깃으로 하는지 또는 지정 소스 식별자(ID)와 연관되는지를 결정함으로써, 액세스 요청이 재사용이 예상되지 않는 데이터에 대응하는지 여부를 결정한다. 또한, 다양한 실시예에서, 저장 제어기가 액세스 요청에 대해 저장 어레이에서 지정 데이터를 찾지 않을 때 저장 제어기는 저장 어레이에 예상되는 비 재사용 유형의 지정 데이터를 할당하는 것을 막는다.
도 1을 참조하면, 데이터 저장소(100)의 하나의 실시예의 일반화된 블록도가 도시된다. 저장 어레이(110)는 데이터 및 대응하는 메타데이터를 저장하기 위한 복수의 엔트리를 포함한다. 다양한 실시예에서, 저장 어레이(110)는 범용 프로세서 또는 병렬 아키텍처 프로세서, 가령, 그래픽 처리 장치 또는 디지털 신호 프로세서에 의해 처리되는 복수의 스레드에 의해 공유된다. 하나의 실시예에서, 저장 어레이(110)는 프로세서 코어 상에서의 데이터 저장을 위해 사용되는 큐에 대응한다. 또 다른 실시예에서, 저장 어레이(110)는 캐시 메모리 계층구조의 하나 이상의 레벨 중 지정 레벨 내 캐시 어레이에 대응한다. 예를 들어, 저장 어레이는 집합 연관 캐시 어레이이다. 그러나 또 다른 실시예에서, 저장 어레이는 다양한 저장 자원, 가령, 완전 연관 큐, 내용 주소화 메모리(CAM) 어레이, 선입선출(FIFO) 큐, 직접 사상된 캐시 등 중 하나이다.
도시된 바와 같이, 저장 어레이(110)의 각각의 엔트리는 복수의 필드(112-118)를 포함한다. 필드(112-118)에 저장된 정보가 연속된 방식으로 저장되는 것으로 보이지만, 다양한 실시예에서, 데이터는 상이한 순서로 저장되고, 비-연속 방식으로 저장되며, 도시되지 않은 그 밖의 다른 필드에 저장된다. 덧붙여, 일부 실시예에서, 저장 어레이(110)는 필드(112-118)를 저장하기 위한 둘 이상의 개별 어레이를 포함한다.
다양한 실시예에서, 재사용 데이터 유형 필드(112)가 엔트리와 연관된 데이터가 비할당 데이터 유형(no allocate data type)(120)임을 지시한다. 이하에서 "비할당 데이터 유형"이 기재되지만, 이는 데이터 유형 자체라기보다는 데이터와 연관된 캐시 정책으로 볼 수 있다. 따라서 비할당 데이터 유형이 언급되는 경우, 이는 대안적으로 데이터와 연관된 비할당 정책으로 판독될 수 있다. 다양한 실시예에서, 비할당 데이터 유형은 데이터가 재사용될 것으로 예상되지 않음을 지시한다. 예를 들어, 데이터는 1회 사용되도록 생성되고 결정되며, 반면에, 그 밖의 다른 데이터는 복수 번 재사용될 것으로 예상될 수 있다. 하나의 예시에서, 비디오 그래픽 렌더링은 벡터 셰이딩 계산을 포함한다. 일부 정점 셰이딩 결과가 효율적인 처리를 위해 재사용되고, 반면에 그 밖의 다른 정점 셰이딩 결과가 1회 사용된다. 정점 인덱스가 사용되어 어느 결과가 재사용되는지 그리고 어느 결과가 1회 사용되는지를 지시할 수 있다. 1회 사용되는 것으로 지시되는 결과가 비할당 데이터 유형(120)으로 마킹된다.
다양한 실시예에서, 비할당 데이터 유형(120)은 저장 어레이(110)를 위한 읽기/쓰기 연산을 핸들링하기 위한 알고리즘에 의해 사용되는 단계들을 변경한다. 이하에서 기재되겠지만, 이들 변경은 재사용이 예상되지 않는 데이터를 저장하고 있는 저장 어레이(110)에 할당되는 엔트리의 개수를 감소시키는 것을 목적으로 한다. 다양한 실시예에서, 액세스 요청의 소스가 데이터가 재사용될 것으로 예상되지 않을 때를 결정하고 데이터가 비할당 데이터 유형(120)에 대응한다는 지시자를 제공한다.
일부 실시예에서, 특정 데이터가 지정 횟수로 사용될 것으로 예상됨이 결정된다. 상기 정점 셰이딩 예시에서, 결과 데이터와 연관된 정점 인덱스가 결과 데이터가 1회가 아닌 2회 사용됨을 지시한다. 일부 실시예에서, 표가 데이터의 프레임의 구획에 대해 정점 인덱스를 저장하고 상기 표로부터 정점 인덱스가 연관된 결과 데이터가 차후 사용되는 횟수를 지시함이 결정된다. 다양한 실시예에서, 결과 데이터에 대한 예상 사용 횟수의 카운트가 유지된다. 계산 완료, 스레드 완료, 액세스 완료 시마다 또는 그 밖의 다른 방식으로 결과 데이터가 사용된 후 카운트가 업데이트, 가령, 감분(decrement)된다. 카운트가 결과 데이터가 더는 재사용될 것으로 예상되지 않음을 지시할 때, 결과 데이터는 비할당 데이터 유형(120)으로 마킹된다. 따라서, 데이터가 비할당 유형에 대응하는 것으로 취급될 수 있다.
일부 실시예에서, 그 밖의 다른 데이터 속성 필드(114)가 엔트리에 저장된 데이터가 특정 계산, 프로세스 식별자(ID) 및/또는 스레드 ID, 우선순위 레벨, 노드 소유권 ID, 노드 소유자가 원격인지 또는 로컬인지 여부에 대한 지시자 등에 대응함을 지시한다. 다양한 실시예에서, 상태 필드(116)가 나이 정보(age information), 가령, 저장 제어기(130)에 의해 채용된 저장 블록 교체 알고리즘과 연관하여 사용되는 최소 최근 사용(LRU: Least Recently Used) 캐시 교체 정책 정보를 저장한다. 상태 필드(116)는 또한 저장된 데이터에 대한 클린(변경되지 않음) 또는 더티(변경됨) 상태의 지시자 및 저장된 데이터에 대한 유효 상태를 저장한다. 일부 실시예에서, 상태 필드(116)는 또한 캐시 일관성 상태, 가령, 변경(modified), 단독(exclusive), 소유(owned), 공유(shared) 및 무효(invalid)를 지정하는 지시자를 저장한다. 저장 블록(118)은 할당된 엔트리에 데이터를 저장한다. 다양한 크기 중 하나가 저장 블록(118)에 저장된 데이터에 대해 사용된다. 다양한 실시예에서, 저장 블록(118)은 집합 연관 캐시의 복수의 웨이(way) 중 하나의 웨이이다.
저장 제어기(130)는 제어 로직(132) 및 제어 레지스터(134)를 포함한다. 다양한 실시예에서, 제어 로직(132)은 저장 어레이(110) 내 엔트리를 할당 및 할당해제하기 위한 알고리즘을 구현하고, 저장 어레이(110)에 저장된 카운터, 포인터 및 상태 정보를 업데이트하기 위한 하드웨어 회로 및/또는 소프트웨어를 포함한다. 일부 실시예에서, 제어 레지스터(134)는 알고리즘을 구현하기 위해 제어 로직(132)에 의해 사용될 프로그램 가능 제어 및 상태 레지스터를 포함한다. 저장 제어기(130) 내 제어 로직(132) 및 제어 레지스터(134)가 또한 제어 유닛이라고 지칭될 수 있다. 또한 저장 제어기(130)는 저장 어레이(110), 그 밖의 다른 메모리 및 결과 버스와 통신하기 위한 인터페이스 로직(도시되지 않음)을 포함한다.
다양한 실시예에서, 저장 어레이(110)는 결과 데이터를 저장하기 위한 캐시 어레이이고 저장 제어기(130)는 캐시 제어기이다. 본 명세서에서 사용될 때, 용어 "블록(block)"은 캐시에서 일관성 목적으로 하나의 단위로서 취급되는, 연속되는 메모리 위치에 저장되는 바이트의 세트를 지칭하도록 사용된다. 본 명세서에서 사용될 때, 용어 "캐시 블록", "블록", "캐시 라인", 및 "라인"은 상호 교환 가능하다. 일부 실시예에서, 블록은 캐시 내 할당 및 할당해제의 단위이다. 다양한 크기 중 임의의 하나가 블록 내 바이트의 수를 지시하는 데 사용된다.
본 명세서에서 사용될 때, 캐시 메모리 서브시스템에 대한 용어 "액세스"는, 대응하는 요청 주소의 요청된 데이터가 저장 어레이(110) 내에 있는 경우, 캐시 적중(cache hit)을 야기하는 읽기 또는 쓰기 요청 동작을 수행하는 것을 지칭한다. 대응하는 요청 주소의 요청된 데이터가 저장 어레이(110) 내에 있지 않는 경우 읽기 또는 쓰기 요청 동작이 캐시 부적중(cache miss)을 야기한다. 캐시 부적중이 발생하는 경우, 읽기 요청이 저장 제어기(130)에 의해 생성되고 메모리 제어기를 통해 하위 레벨 메모리로 전송된다. 요청된 블록을 갖는 대응하는 캐시 필 라인(cache fill line)이 저장 어레이(110)로 전달되어, 이하에서 기재될 바와 같이 동작이 재사용 제한 데이터 유형에 의해 변경되지 않을 때 본래의 읽기 또는 쓰기 요청을 완료할 수 있다. 덧붙여, 캐시 필 라인은 캐시 내에 위치한다.
저장 어레이(110) 내에 어떠한 이용 가능한 저장 블록(118)도 없을 때, 저장 제어기(130)에 의해 구현되는 최소 최근 사용(LRU) 알고리즘(또는 그 밖의 다른 교체 정책 알고리즘)이 어느 엔트리(가령, 집합 연관 캐시 내 어느 웨이)가 자신의 데이터가 캐시로부터 방출되고 캐시 필 라인 데이터로 교체되게 하는지를 결정한다. 본 명세서에서 사용될 때, 용어 "할당"은 특정 캐시로의 캐시 부적중 후 메모리 계층구조의 하위 레벨로부터 인출된 캐시 필 라인을 특정 캐시의 웨이로 저장하는 것을 지칭한다. 다양한 실시예에서, 캐시로부터 방출될 캐시 블록의 선택은 필드(112, 114 및 116)에 저장된 파라미터 중 하나 이상을 기초로 한다.
다양한 실시예에서, 저장 제어기(130) 내 알고리즘이 뒤따르는 단계가 비할당 데이터 유형/정책(120)에 따라 변한다. 예를 들어, 저장 제어기(130)는 액세스 요청(102)을 수신한다. 일부 실시예에서, 액세스 요청(102)은 연관된 데이터가 비할당 데이터 유형(120)인지 여부를 지시한다. 그 밖의 다른 실시예에서, 저장 제어기(130) 내 프로그램 가능 제어 레지스터(134)가 업데이트되고 제어 로직(132)이 수신된 액세스 요청(102)과 연관된 데이터가 비할당 데이터 유형(120)을 갖는지 여부를 결정한다. 예를 들어, 특정 소스, 데이터를 이용한 특정 계산의 지시자 등이 제어 로직(132)에 의해 사용되어, 수신된 액세스 요청(102)과 연관된 데이터가 비할당 데이터 유형(120)인지 여부를 결정할 수 있다. 또 다른 실시예에서, 액세스 요청(102)에 대응하는 데이터가 비할당 데이터 유형(120)임을 지시하는 지시자가 저장 어레이(130)의 필드(112) 또는 저장 제어기(130) 내 표에 저장된다.
저장 제어기(130)가 지정 데이터가 비할당 데이터 유형(120)이라고 결정하고 저장 제어기(130)가 저장 어레이(110)에서 데이터를 더 발견하는 경우, 저장 제어기(130)는 캐시 교체 정책 정보를 업데이트하지 않아, 데이터가 자신의 캐시 내 수명을 연장하게 할 수 있다. 예를 들어, 데이터에 대한 LRU 데이터가 액세스에 응답하여 업데이트되지 않는다. 다양한 실시예에서, 저장 제어기(130)는 읽기 요청에 대해 부적중이 발생한 후 저장 어레이(110)에 지정 데이터를 할당하는 것을 추가로 막는다.
도 2를 참조하면, 재사용이 예상되지 않는 데이터를 갖는 애플리케이션을 처리하기 위한 방법(200)의 하나의 실시예가 도시된다. 설명 목적으로, 이 실시예(및 도 3-4)의 단계들이 순차적으로 나타난다. 그러나 그 밖의 다른 실시예에서, 일부 단계가 도시된 바와 다른 순서로 발생하고, 일부 단계들은 동시에 수행되며, 일부 단계는 타 단계와 조합되고, 일부 단계는 생략된다.
비할당 데이터 유형 또는 정책이 재사용이 예상되지 않는 데이터에 대해 생성된다(블록(202)). 예를 들어, 재사용이 예상되지 않는 데이터를 식별하도록 특정 인코딩이 선택된다. 다양한 실시예에서, 하나 이상의 제어 및 상태 레지스터가 지정 저장 어레이의 액세스 요청 동안 제어 로직에서 사용되도록 특정 인코딩으로 프로그램된다. 일부 실시예에서, 제어 및 상태 레지스터가 저장 제어기, 가령, 캐시 제어기 내에 있다. 일부 실시예에서, 데이터가 재사용이 예상되지 않는다는 결정이 특정 소스 생성 액세스 요청, 데이터를 이용한 특정 계산, 액세스되는 특정 주소 범위를 기초로, 또는 그 밖의 다른 방식으로 이뤄진다.
앞서 기재된 바와 같이, 다양한 실시예에서, 특정 유형의 계산이 그래픽 처리 파이프라인에서의 정점 셰이딩을 포함한다. 어떤 정점 셰이딩 결과는 처리 동안 재사용되며, 또 다른 정점 셰이딩 결과는 1회만 사용된다. 일부 실시예에서, 특정 표에 저장된 정점 인덱스가 재사용이 예상되지 않는 데이터를 식별하도록 사용된다. 도 2의 블록(204)에서,프로그램 명령이 실행되고, 스토리지, 가령, 캐시가 액세스된다. 특정 데이터가 애플리케이션의 처리 동안 재사용이 예상되지 않는 데이터 자격을 갖는 경우(조건부 블록(206)의 "예" 브랜치), 상기 특정 데이터는 비할당 데이터 유형으로 마킹된다(블록(208)). 그 후 캐시 액세스가 검출되지만(조건부 블록(210)의 "예" 브랜치), 요청된 데이터가 비할당 데이터 유형으로 마킹 또는 그 밖의 다른 방식으로 지시되지 않는 경우(조건부 블록(212)의 "아니오" 브랜치), 도 3 및 4와 연관하여 기재된 바와 같이 캐시 액세스는 비할당 데이터 유형으로 처리되지 않는다(블록(214)).
그러나 캐시 액세스가 검출되고(조건부 블록(210)의 "예" 브랜치), 데이터가 비할당 데이터 유형으로 마킹 또는 그 밖의 다른 방식으로 결정된 경우(조건부 블록(212)의 "예" 브랜치), 도 3 및 4와 연관하여 기재된 바와 같이, 캐시 액세스가 캐시 내 데이터의 수명을 제한하는 방식으로 처리된다(블록(216)). 예를 들어, 캐시 제어기는 캐시 내 부적중(miss) 후 캐시 내 연관된 데이터의 할당을 막을 수 있다. 이들 단계를 수행함으로써 비할당 데이터 유형을 갖는 캐시 블록의 수를 제한하는 것이 캐시에 재사용 가능성이 더 높은 데이터를 위한 더 많은 공간을 남긴다.
이제 도 3을 참조하면, 재사용이 예상되지 않는 데이터에 대한 읽기 액세스 요청을 수행하기 위한 방법(300)의 하나의 실시예가 도시된다. 하나 이상의 소프트웨어 애플리케이션이 처리되는 중일 때, 데이터 액세스 요청이 검출되고(블록(302)), 캐시가 데이터에 대해 액세스된다. 앞서 기재된 바와 같이, 복수의 방법이 사용되어 액세스 요청에 대응하는 데이터가 비할당 데이터 유형인지 여부를 결정할 수 있다. 이 경우, 읽기 요청은 비할당 데이터 유형의 데이터에 대한 것이다. 캐시의 룩업(lookup) 동작이 읽기 요청에 대해 수행된다. 적중(hit)이 발생한 경우(조건부 블록(304)의 "예" 브랜치), 요청된 데이터가 캐시 어레이로부터 읽히고 요청자에게 반환된다(블록(306)). 저장된 데이터가 캐시 어레이 내에서 액세스될지라도, 하나의 실시예에서, 캐시 제어기가 이 최근 액세스를 지시하도록 액세스된 캐시 블록을 업데이트하지 않는다(블록(308)). 예를 들어, 캐시 제어기는 액세스를 기초로 캐시 교체 정책을 위해 사용되는 데이터를 업데이트하지 않는다. 하나의 실시예에서, 데이터의 마지막 사용의 나이(age) 또는 그 밖의 다른 임의의 최소 최근 사용(LRU) 정보가 업데이트되지 않는다. 따라서 액세스는 데이터가 캐시 내에 머무르는 시간을 증가시키지 않는다. 오히려 액세스가 발생하기 않았던 것처럼, 액세스된 캐시 데이터를 위한 캐시 교체 정책 데이터가 변경되지 않은 채로 유지된다.
캐시 어레이로의 룩업 동작이 부적중(miss)을 야기하는 경우(조건부 블록(304)의 "아니오" 브랜치), 요청된 데이터가 하위-레벨 메모리로부터 불러와진다(블록(310)). 요청을 서비스하기 위해 요청된 데이터가 반환된다(블록(312)). 그러나 불러와진 데이터가 캐시로 할당되지 않는다(블록(314)). 따라서 비할당 데이터 유형의 데이터(재사용이 예상되지 않는 데이터)의 양이 캐시에서 증가되지 않는다.
지금부터 도 4를 참조하면, 재사용이 예상되지 않는 데이터에 대한 쓰기 액세스 요청을 수행하기 위한 방법(400)의 하나의 실시예가 도시된다. 하나 이상의 소프트웨어 애플리케이션이 처리되는 중일 때, 데이터에 대해 캐시가 액세스된다. 앞서 기재된 바와 같이, 복수의 방법이 사용되어 액세스 요청에 대응하는 데이터가 비할당 데이터 유형인지 여부를 결정할 수 있다. 도시된 예시에서, 비할당 데이터 유형의 데이터에 대한 캐시 쓰기 요청이 검출된다(블록(402)). 캐시로의 룩업 동작이 쓰기 요청을 위해 수행된다. 적중이 발생하고(조건부 블록(404)의 "예" 브랜치) 캐시 우회에 대한 지시자가 검출되는 경우(조건부 블록(410)의 "아니오" 브랜치), 쓰기 요청 데이터가 캐시 어레이에 써진다(블록(412)). 캐시에서 저장된 데이터가 액세스되고 업데이트되더라도, 캐시 제어기가 캐시 블록에 대해, 캐시 교체 정책 데이터, 가령, 최소 최근 사용 데이터를 업데이트하지 않는다(블록(414)). 따라서 캐시 내 데이터의 수명이 액세스로 인해 연장되지 않는다.
적중이 발생하고(조건부 블록(404)의 "예" 브랜치) 캐시 우회에 대한 지시자가 검출되는 경우(조건부 블록(410)의 "예" 브랜치), 캐시 내 비할당 데이터 유형의 데이터의 양을 감소시키는 것이 더 적극적이게 된다. 예를 들어, 캐시에 저장되고 쓰기 요청의 타깃인 데이터가 클린(변경되지 않음)인 경우(조건부 블록(416)의 "예" 브랜치), 타깃 데이터가 캐시로부터 할당해제(또는 무효화)되고(블록(418)) 쓰기 요청 데이터가 하위-레벨 메모리 내 타깃 데이터의 복사본을 업데이트하기 위해 하위 레벨 메모리로 전송된다(블록(420)).
캐시 우회에 대한 지시자가 검출되지만(조건부 블록(410)의 "예" 브랜치) 캐시에 저장되고 쓰기 요청의 타깃인 데이터가 더티(변경됨)인 경우(조건부 블록(416)의 "아니오" 브랜치), 방법(400)의 제어 흐름이 쓰기 요청 데이터가 캐시 어레이에 써지는 블록(412)으로 이동한다. 일부 실시예에서, 클린과 더티 서브-블록 모두 타깃 데이터 내에서 식별된다. 일부 실시예에서, 서브-블록은 멀티-바이트 캐시 라인 내 하나 이상의 바이트이다. 비트 벡터가 사용되어 어느 서브-블록이 클린이고 어느 서브-블록이 더티인지를 지시할 수 있다. 적중이 발생하고(조건부 블록(404)의 "예" 브랜치) 캐시 우회에 대한 지시자가 검출될 때(조건부 블록(410)의 "예" 브랜치), 클린 서브-블록이 캐시로부터 할당 해제되며 그 동안 더티 서브-블록은 유지된다. 더티 서브-블록 중 임의의 것이 쓰기 요청의 타깃인 경우, 이들은 쓰기 요청 데이터로 캐시 내에서 변경된다. 클린 서브-블록 중 임의의 것이 쓰기 요청의 타깃인 경우, 이들은 쓰기 요청 데이터로 하위 레벨 메모리에서 변경된다.
캐시 어레이의 룩업 동작이 부적중을 도출하는 경우(조건부 블록(404)의 "아니오" 브랜치), 쓰기 요청 데이터가 타깃 데이터를 업데이트하기 위해 하위 레벨 메모리로 전송된다(블록(406)). 타깃 데이터는 캐시로 할당되지 않도록 된다(블록(408)). 따라서 제한된 재사용 데이터 유형의 데이터의 양이 캐시에서 감소된다.
상기에서 기재된 실시예들 중 하나 이상이 소프트웨어를 포함함을 알아야 한다. 이러한 실시예에서, 방법 및/또는 수단을 구현하는 프로그램 명령이 컴퓨터 판독형 매체 상에 전달 또는 저장된다. 프로그램 명령을 저장하도록 구성된 다양한 유형의 매체가 이용 가능하고 하드 디스크, 플로피 디스크, CD-ROM, DVD, 플래시 메모리, 프로그램 가능 ROM(PROM), 랜덤 액세스 메모리(RAM), 및 그 밖의 다른 다양한 형태의 휘발성 또는 비휘발성 저장장치를 포함한다. 일반적으로 말하면, 컴퓨터 액세스 가능 저장 매체는 명령 및/또는 데이터를 컴퓨터로 제공하기 위한 사용 동안 컴퓨터에 의해 액세스 가능한 임의의 저장 매체를 포함한다. 예를 들어, 컴퓨터 액세스 가능 저장 매체는 저장 매체, 가령, 자성 또는 광학 매체, 가령, 디스크(고정식 또는 탈착식), 테이프, CD-ROM, 또는 DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, 또는 블루-레이(Blu-Ray)를 포함한다. 저장 매체는 휘발성 또는 비휘발성 메모리 매체, 가령, RAM(가령, 동기식 동적 RAM(SDRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM, 저전력 DDR(LPDDR2 등) SDRAM, 램버스 DRAM(RDRAM), 정적 RAM(SRAM) 등), ROM, 플래시 메모리, 주변 인터페이스, 가령, USB(Universal Serial Bus) 인터페이스 등을 통해 액세스 가능한 비휘발성 메모리(가령, 플래시 메모리)를 더 포함한다. 저장 매체는 통신 매체, 가령, 네트워크 및/또는 무선 링크를 통해 액세스 가능한 마이크로전자기계 시스템(MEMS) 및 저장 매체를 포함한다.
덧붙여, 다양한 실시예에서, 프로그램 명령은 하이 레벨 프로그래밍 언어, 가령, C, 또는 설계 언어(HDL), 가령, 베릴로그(Verilog), VHDL, 또는 데이터베이스 포맷, 가령, GDA II 스트림 포맷(GDSII)의 행동-레벨 기술어 또는 레지스터-전달 레벨(RTL) 기술어를 포함한다. 일부 경우, 기술어는 기술어를 종합하여 종합 라이브러리로부터 게이트들의 리스트를 포함하는 넷리스트를 생성하는 종합 툴에 의해 읽힌다. 상기 넷리스트는 시스템을 포함하는 하드웨어의 기능을 또한 나타내는 게이트의 세트를 포함한다. 그 후 넷리스트가 마스크로 적용될 기하학적 형태를 기술하는 데이터 세트를 생성하도록 배치 및 라우팅된다. 그 후 마스크가 다양한 반도체 제조 단계에서 사용되어, 시스템에 대응하는 반도체 회로들을 생성할 수 있다. 또는, 컴퓨터 액세스 가능 저장 매체 상의 명령이 필요에 따라 (종합 라이브러리를 갖거나 갖지 않는) 넷리스트 또는 데이터 세트이다. 덧붙여, 명령은, 업체, 가령, Cadence®, EVE®, 및 Mentor Graphics®의 하드웨어 기반 유형 에뮬레이터에 의한 에뮬레이션 목적으로 사용된다.
상기의 실시예가 상당히 상세히 기재되었지만, 상기의 개시내용을 완전히 숙지하면 많은 변형 및 수정이 해당 분야의 통상의 기술자에게 명백할 것이다. 다음의 청구항이 이러한 모든 변형 및 수정을 포함하는 것으로 해석되도록 의도된다.
Claims (20)
- 컴퓨팅 시스템으로서,
데이터를 저장하기 위한 복수의 블록을 포함하는 캐시, 및
캐시에 연결된 캐시 제어기를 포함하고, 지정 데이터에 대한 액세스 요청을 검출한 경우, 상기 캐시 제어기는
상기 지정 데이터가 재사용이 예상되는 것으로 지시되는지 여부를 결정하고,
캐시에서 액세스 요청이 부적중한다고 결정한 경우:
지정 데이터가 재사용이 예상되는 것으로 지시된다고 결정한 경우, 캐시에 상기 지정 데이터를 할당하고 그리고 상기 지정 데이터가 재사용될 것이라 예상되는 횟수에 관한 표시를 저장하며,
지정 데이터가 재사용이 예상되지 않는 것으로 지시된다고 결정한 경우, 캐시에 상기 지정 데이터를 할당하지 않도록 구성되는, 컴퓨팅 시스템. - 제1항에 있어서,
캐시에서 액세스 요청이 적중한다고 결정한 경우, 캐시 제어기는 액세스에 응답하여 캐시에서 지정 데이터에 대한 캐시 교체 정책 정보를 업데이트하지 않는, 컴퓨팅 시스템. - 제2항에 있어서,
상기 캐시 교체 정책 정보는 최소 최근 사용 데이터인, 컴퓨팅 시스템. - 제1항에 있어서,
상기 지정 데이터가 재사용이 예상되는 것으로 지시되는지 여부를 결정하는 것은 액세스 요청에서 지정 데이터가 재사용이 예상되는 것인지 여부를 지시하는 지시자를 검출하는 것을 포함하는, 컴퓨팅 시스템. - 제1항에 있어서,
상기 지정 데이터가 재사용이 예상되는 것으로 지시되는지 여부를 결정하는 것은 액세스 요청이 지정 주소 범위 내 주소를 지시한다고 결정하는 것을 포함하는, 컴퓨팅 시스템. - 제1항에 있어서,
상기 지정 데이터가 재사용이 예상되지 않는다고 결정하는 것은 지정 데이터가 그래픽 파이프라인 내 정점 셰이딩의 결과를 포함한다고 결정하는 것을 포함하는, 컴퓨팅 시스템. - 제1항에 있어서,
액세스 요청이 캐시에서 적중하는 쓰기 요청이라고 결정하고,
지정 데이터가 캐시에서 클린(clean)이라고 검출한 경우, 상기 캐시 제어기는
쓰기 데이터에 의한 변경 없이 캐시로부터 지정 데이터를 할당 해제하도록 더 구성되는, 컴퓨팅 시스템. - 제7항에 있어서,
지정 데이터가 재사용이 예상되는 것으로 지시된다고 결정한 경우, 캐시 제어기는 상기 지정 데이터가 액세스되는 횟수에 대한 카운트를 유지하도록 더 구성되는, 컴퓨팅 시스템. - 제7항에 있어서,
캐시 제어기는
지정 데이터 내에서 클린 및 더티 서브-블록 모두를 식별하고,
쓰기 요청 데이터에 의한 변경 없이, 클린 서브-블록을 캐시로부터 할당 해제하며,
쓰기 요청 데이터로 더티 서브-블록을 변경하도록 더 구성되는, 컴퓨팅 시스템. - 메모리 시스템에서 데이터를 관리하기 위한 방법으로서, 상기 방법은,
인터페이스 로직이 메모리 시스템에 저장된 지정 데이터로의 액세스를 위한 요청을 수신하는 단계,
캐시 제어 로직이
상기 지정 데이터가 재사용이 예상되는 것으로 지시되는지 여부를 결정하는 단계,
캐시에서 액세스 요청이 부적중한다고 결정한 경우:
지정 데이터가 재사용이 예상되는 것으로 지시된다고 결정한 경우, 캐시에 상기 지정 데이터를 할당하고 그리고 상기 지정 데이터가 재사용될 것이라 예상되는 횟수에 관한 표시를 저장하는 단계, 및
지정 데이터가 재사용 예상되지 않는 것으로 지시된다고 결정한 경우, 캐시에 상기 지정 데이터를 할당하지 않도록 하는 단계를 포함하는, 데이터를 관리하기 위한 방법. - 제10항에 있어서,
캐시에서 액세스 요청이 적중한다고 결정한 경우, 상기 방법은 액세스에 응답하여 지정 데이터에 대한 캐시 교체 정책 정보의 업데이트를 하지 않는 단계를 더 포함하는, 데이터를 관리하기 위한 방법. - 제11항에 있어서,
캐시 교체 정책 정보는 최소 최근 사용 데이터인, 데이터를 관리하기 위한 방법. - 제10항에 있어서,
액세스 요청이 캐시에서 적중하는 쓰기 요청임을 결정하고,
지정 데이터가 캐시에서 클린(clean)이라고 검출한 경우,
쓰기 요청에 의한 변경 없이 지정 데이터를 캐시로부터 할당 해제하는 단계를 더 포함하는, 데이터를 관리하기 위한 방법. - 제13항에 있어서,
쓰기 요청 데이터를 하위 레벨 메모리로 전송하는 단계를 더 포함하는, 데이터를 관리하기 위한 방법. - 제13항에 있어서,
지정 데이터 내 클린 및 더티 서브-블록 모두를 식별하는 단계,
쓰기 요청 데이터에 의한 변경 없이, 클린 서브-블록을 캐시로부터 할당 해제하는 단계, 및
쓰기 요청 데이터로 더티 서브-블록을 수정하는 단계를 더 포함하는, 데이터를 관리하기 위한 방법. - 제10항에 있어서,
지정 데이터가 재사용이 예상되지 않는다고 결정하는 것은 지정 데이터가 그래픽 파이프라인 내 정점 셰이딩의 결과를 포함한다고 결정하는 것을 포함하는, 데이터를 관리하기 위한 방법. - 캐시 제어기로서,
데이터를 저장하기 위한 복수의 블록을 포함하는 캐시에 연결된 제1 인터페이스, 및
제어 유닛
을 포함하며,
지정 데이터에 대한 액세스 요청을 검출한 경우, 상기 제어 유닛은
지정 데이터가 재사용이 예상되는 것으로 지시되는지 여부를 결정하고,
캐시에서 액세스 요청이 부적중한다고 결정된 경우,
지정 데이터가 재사용이 예상되는 것으로 지시된다고 결정한 경우, 캐시에 상기 지정 데이터를 할당하고 그리고 상기 지정 데이터가 재사용될 것이라 예상되는 횟수에 관한 표시를 저장하며,
지정 데이터가 재사용이 예상되지 않는 것으로 지시된다고 결정한 경우, 캐시에 상기 지정 데이터를 할당하지 않도록 구성되는, 캐시 제어기. - 제17항에 있어서,
액세스 요청이 캐시에서 적중한다고 결정한 경우, 상기 제어 유닛은 액세스에 응답하여 캐시에서 지정 데이터에 대한 캐시 교체 정책 정보를 업데이트하지 않는, 캐시 제어기. - 제18항에 있어서,
상기 캐시 교체 정책 정보는 최소 최근 사용 데이터인, 캐시 제어기. - 제17항에 있어서,
액세스 요청이 캐시에서 적중하는 쓰기 요청이라고 결정하고,
지정 데이터가 캐시에서 클린(clean)이라고 검출한 경우, 상기 제어 유닛은
쓰기 데이터에 의한 변경 없이 캐시로부터 지정 데이터를 할당 해제하도록 더 구성되는, 캐시 제어기.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/374,788 | 2016-12-09 | ||
US15/374,788 US9996478B1 (en) | 2016-12-09 | 2016-12-09 | No allocate cache policy |
PCT/US2017/065094 WO2018106906A1 (en) | 2016-12-09 | 2017-12-07 | No allocate cache policy |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190092444A KR20190092444A (ko) | 2019-08-07 |
KR102540752B1 true KR102540752B1 (ko) | 2023-06-08 |
Family
ID=60888634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197017353A KR102540752B1 (ko) | 2016-12-09 | 2017-12-07 | 비할당 캐시 정책 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9996478B1 (ko) |
EP (1) | EP3552110A1 (ko) |
JP (1) | JP7072573B2 (ko) |
KR (1) | KR102540752B1 (ko) |
CN (1) | CN110036376B (ko) |
WO (1) | WO2018106906A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984104B (zh) | 2017-06-02 | 2021-09-17 | 伊姆西Ip控股有限责任公司 | 用于缓存管理的方法和设备 |
US10922237B2 (en) * | 2018-09-12 | 2021-02-16 | Advanced Micro Devices, Inc. | Accelerating accesses to private regions in a region-based cache directory scheme |
CN112559389A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 存储控制装置、处理装置、计算机系统和存储控制方法 |
US11403034B1 (en) * | 2021-06-11 | 2022-08-02 | International Business Machines Corporation | Non-volatile storage class memory data flow with mismatched block sizes |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140075125A1 (en) * | 2012-09-11 | 2014-03-13 | Sukalpa Biswas | System cache with cache hint control |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01133162A (ja) * | 1987-11-18 | 1989-05-25 | Fujitsu Ltd | キャッシュメモリ制御方式 |
US6275904B1 (en) | 1998-03-31 | 2001-08-14 | Intel Corporation | Cache pollution avoidance instructions |
US6574708B2 (en) * | 2001-05-18 | 2003-06-03 | Broadcom Corporation | Source controlled cache allocation |
US7356650B1 (en) * | 2005-06-17 | 2008-04-08 | Unisys Corporation | Cache apparatus and method for accesses lacking locality |
US7415575B1 (en) * | 2005-12-08 | 2008-08-19 | Nvidia, Corporation | Shared cache with client-specific replacement policy |
US8230179B2 (en) | 2008-05-15 | 2012-07-24 | International Business Machines Corporation | Administering non-cacheable memory load instructions |
US8589629B2 (en) * | 2009-03-27 | 2013-11-19 | Advanced Micro Devices, Inc. | Method for way allocation and way locking in a cache |
US8392658B2 (en) * | 2009-07-10 | 2013-03-05 | Apple Inc. | Cache implementing multiple replacement policies |
US8542247B1 (en) * | 2009-07-17 | 2013-09-24 | Nvidia Corporation | Cull before vertex attribute fetch and vertex lighting |
US20140089600A1 (en) * | 2012-09-27 | 2014-03-27 | Apple Inc. | System cache with data pending state |
KR102100161B1 (ko) * | 2014-02-04 | 2020-04-14 | 삼성전자주식회사 | Gpu 데이터 캐싱 방법 및 그에 따른 데이터 프로세싱 시스템 |
US9720837B2 (en) | 2014-06-27 | 2017-08-01 | International Business Machines Corporation | Allowing non-cacheable loads within a transaction |
US20160041914A1 (en) * | 2014-08-05 | 2016-02-11 | Advanced Micro Devices, Inc. | Cache Bypassing Policy Based on Prefetch Streams |
-
2016
- 2016-12-09 US US15/374,788 patent/US9996478B1/en active Active
-
2017
- 2017-12-07 JP JP2019530390A patent/JP7072573B2/ja active Active
- 2017-12-07 EP EP17822865.6A patent/EP3552110A1/en active Pending
- 2017-12-07 CN CN201780075187.3A patent/CN110036376B/zh active Active
- 2017-12-07 WO PCT/US2017/065094 patent/WO2018106906A1/en unknown
- 2017-12-07 KR KR1020197017353A patent/KR102540752B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140075125A1 (en) * | 2012-09-11 | 2014-03-13 | Sukalpa Biswas | System cache with cache hint control |
Also Published As
Publication number | Publication date |
---|---|
JP2019537162A (ja) | 2019-12-19 |
WO2018106906A1 (en) | 2018-06-14 |
CN110036376B (zh) | 2023-07-07 |
US20180165221A1 (en) | 2018-06-14 |
CN110036376A (zh) | 2019-07-19 |
EP3552110A1 (en) | 2019-10-16 |
US9996478B1 (en) | 2018-06-12 |
KR20190092444A (ko) | 2019-08-07 |
JP7072573B2 (ja) | 2022-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9075730B2 (en) | Mechanisms to bound the presence of cache blocks with specific properties in caches | |
US10831678B2 (en) | Multi-tier cache placement mechanism | |
CN109313610B (zh) | 用于高速缓存替换策略的缩放集合竞争 | |
US9251081B2 (en) | Management of caches | |
JP6118285B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
US9251069B2 (en) | Mechanisms to bound the presence of cache blocks with specific properties in caches | |
US9098417B2 (en) | Partitioning caches for sub-entities in computing devices | |
KR102540752B1 (ko) | 비할당 캐시 정책 | |
US9489239B2 (en) | Systems and methods to manage tiered cache data storage | |
CN107810491B (zh) | 用于管理并控制存储器高速缓存的方法和系统 | |
US20060224830A1 (en) | Performance of a cache by detecting cache lines that have been reused | |
US20170083444A1 (en) | Configuring fast memory as cache for slow memory | |
US20170357596A1 (en) | Dynamically adjustable inclusion bias for inclusive caches | |
CN108628770B (zh) | 用于高性能高速缓存的基于近期最少使用的热跟踪机制增强 | |
KR20150038367A (ko) | 스티키 제거 엔진을 구비한 시스템 캐시 | |
US9454488B2 (en) | Systems and methods to manage cache data storage | |
US10725675B2 (en) | Management apparatus, information processing apparatus, management method, and computer program product | |
JP7024127B2 (ja) | 管理装置、情報処理装置、管理方法、およびプログラム | |
JP2019164411A (ja) | 管理装置、情報処理装置、管理方法、およびプログラム | |
JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ | |
US20200133884A1 (en) | Nvram system memory with memory side cache that favors written to items and/or includes regions with customized temperature induced speed settings | |
EP3258383A1 (en) | Dynamically adjustable inclusion bias for inclusive caches | |
JP2019164497A (ja) | 管理装置、情報処理装置、管理方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |