KR101458928B1 - 물리적으로 태그된 데이터 캐시로의 트래픽을 필터링하기 위한 방법 - Google Patents

물리적으로 태그된 데이터 캐시로의 트래픽을 필터링하기 위한 방법 Download PDF

Info

Publication number
KR101458928B1
KR101458928B1 KR1020147022849A KR20147022849A KR101458928B1 KR 101458928 B1 KR101458928 B1 KR 101458928B1 KR 1020147022849 A KR1020147022849 A KR 1020147022849A KR 20147022849 A KR20147022849 A KR 20147022849A KR 101458928 B1 KR101458928 B1 KR 101458928B1
Authority
KR
South Korea
Prior art keywords
tag array
tagged tag
array
data
virtual address
Prior art date
Application number
KR1020147022849A
Other languages
English (en)
Other versions
KR20140116506A (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 KR20140116506A publication Critical patent/KR20140116506A/ko
Application granted granted Critical
Publication of KR101458928B1 publication Critical patent/KR101458928B1/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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • 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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal 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

물리적으로 태그된 데이터 캐시로의 트래픽을 필터링하기 위한 방법{METHOD FOR FILTERING TRAFFIC TO A PHYSICALLY-TAGGED DATA CACHE}
본 출원은 2012년 1월 17일자로 출원된 METHOD FOR FILTERING TRAFFIC TO A PHYSICALLY-TAGGED DATA CACHE라는 명칭의 미국 가특허 출원 제61/587,140호에 대한 우선권을 주장하고, 상기 가출원의 전체 내용은 본원에 인용에 의해 포함된다.
본 개시는 데이터 캐시에 관한 것이다.
많은 현대의 마이크로프로세서들은 가상적으로 어드레싱된 캐시를 이용한다. 가상적으로 어드레싱된 캐시를 사용하기 위해서, 대응하는 물리 어드레스들로의 가상 어드레스들의 변환이 통상적으로 수행된다. 이 변환은 본질적으로 명령 파이프라인에 다른 스테이지를 부가하며, 이는 결국, 마이크로프로세서의 성능을 감소시킨다.
또한, 모바일 디바이스들에 대한 더 긴 배터리 수명에 대한 수요의 증가에 응답하여, 마이크로프로세서들의 전력 프로파일들이 점점 더 중요해졌다. 저장 유닛 내에서의 전력 이용의 가장 큰 컴포넌트들 중 하나는, 동작들이 명령 파이프라인 하위로 이동함에 따라, 각각의 동작에 대하여 물리적으로 태그된 태그 어레이를 탐색하는 것이다. 물리적으로 태그된 태그 어레이의 이러한 탐색은, 평균 부하(load)-사용 패널티가 가능한 한 낮도록, 명령 파이프라인으로부터 부하들을 직접 제거(retire)할 수 있는 것이 필요하다. 문제는 통상적으로 큰 구조인 물리적으로 태그된 태그 어레이로의 액세스와 연관된 전력이 꽤 크다는 점이다.
이로써, 물리적으로 태그된 태그 어레이에 대한 액세스들의 수를 제한하면서 명령 파이프라인이 동일한 성능을 달성하게 하는 데이터 캐시 및 데이터 캐시의 동작 방법에 대한 필요성이 존재한다.
데이터 캐시의 물리적으로 태그된 태그 어레이에 대한 액세스들의 수를 실질적으로 감소시키는 데이터 캐시의 실시예들이 개시된다. 일반적으로, 데이터 캐시는 데이터 엘리먼트들을 저장하는 데이터 어레이, 물리적으로 태그된 태그 어레이 및 가상적으로 태그된 태그 어레이를 포함한다. 일 실시예에서, 가상적으로 태그된 태그 어레이는 가상 어드레스를 수신한다. 가상적으로 태그된 태그 어레이에 가상 어드레스에 대한 매칭이 존재하면, 가상적으로 태그된 태그 어레이는 가상 어드레스에 대하여 가상적으로 태그된 태그 어레이에 저장된 웨이(way)를 데이터 어레이로 출력한다. 또한, 일 실시예에서, 가상적으로 태그된 태그 어레이는 물리적으로 태그된 태그 어레이를 디스에이블(disable)한다. 이러한 방식으로, 물리적으로 태그된 태그 어레이로의 액세스 없이 웨이가 획득된다. 가상적으로 태그된 태그 어레이에 의해 출력된 웨이를 사용하여, 데이터 어레이에서의 원하는 데이터 엘리먼트가 어드레싱된다. 이에 반해, 가상적으로 태그된 태그 어레이에 가상 어드레스에 대한 매칭이 존재하지 않으면, 물리 어드레스로의 가상 어드레스의 변환으로부터 획득된 물리 어드레스는 물리적으로 태그된 태그 어레이에 제공되고, 물리적으로 태그된 태그 어레이는 물리 어드레스에 대하여 물리적으로 태그된 태그 어레이에 저장된 웨이를 출력한다. 데이터 어레이에서의 원하는 데이터 엘리먼트는 가상 어드레스로부터 획득된 인덱스 및 가상적으로 태그된 태그 어레이로부터 획득된 웨이를 이용하여 어드레싱된다.
가상적으로 태그된 태그 어레이에 가상 어드레스와 태그 사이의 매칭이 존재할 때, 가상적으로 태그된 태그 어레이로부터 웨이를 획득함으로써, 물리적으로 태그된 태그 어레이로의 액세스 없이 웨이가 획득된다. 결과적으로, 데이터 캐시에서의 스테이지들의 수를 효과적으로 감소시킴으로써 성능이 향상된다. 또한, 가상적으로 태그된 태그 어레이에 가상 어드레스와 태그 사이의 매칭이 존재할 때, 물리적으로 태그된 태그 어레이가 디스에이블되는 실시예에서, 데이터 캐시의 소비 전력이 감소된다.
도 1은, 본 개시의 일 실시예에 따른, 가상적으로 태그된 태그 어레이를 포함하는 데이터 캐시를 예시한다.
도 2는, 도 1의 데이터 캐시의 데이터 어레이의 일례를 예시하며, 여기서 데이터 어레이는 본 개시의 일 실시예에 따른 세트 연관형(set-associative) 메모리 구조로서 구현된다.
도 3은, 도 1의 데이터 캐시를 사용할 수 있는 프로세서-기반 시스템의 일례를 예시한다.
이제, 도시한 도면들을 참조로, 본 개시의 몇몇 예시적인 실시예들이 설명된다. "예시적인"이라는 용어는 본 명세서에서 "예, 예시 또는 예증으로서 제공되는"의 의미로 사용된다. "예시적인" 것으로서 본 명세서에 설명되는 임의의 실시예가 반드시 다른 실시예들보다 선호되거나 또는 유리한 것으로 해석되는 것은 아니다.
데이터 캐시의 물리적으로 태그된 태그 어레이에 대한 액세스들의 수를 실질적으로 감소시키는 데이터 캐시의 실시예들이 개시된다. 아래에 논의되는 바와 같이, 물리적으로 태그된 태그 어레이에 대한 액세스들의 수를 감소시킴으로써, 데이터 캐시의 성능이 증가되면서, 데이터 캐시의 소비 전력은 감소된다. 도 1은 본 개시에 따른 데이터 캐시(10)의 일 실시예를 예시한다. 일반적으로, 데이터 캐시(10)는 도시된 바와 같이 연결되는 데이터 어레이(12), 변환 회로(14), 가상적으로 태그된 마이크로 태그 어레이(16) 및 물리적으로 태그된 태그 어레이(18)를 포함한다. 데이터 어레이(12)는 다수의 데이터 엘리먼트들(예를 들어, 다수의 64 바이트 데이터 엘리먼트들)을 저장한다. 추가로, 데이터 어레이(12)는, 데이터 어레이(12)에 대한 각각의 인덱스 또는 세트에 대하여, 데이터 어레이(12)가 도 2에 예시된 바와 같이, 각각이 개별 데이터 엘리먼트를 저장하는 다수의 "웨이들"을 포함하도록, 세트 연관형이다. 따라서, 데이터 어레이(12)에 대한 각각의 인덱스에 대하여, 데이터 어레이(12)는 N-1개의 데이터 엘리먼트들을 저장하며, 여기서 N-1은 데이터 어레이(12)에서의 웨이들의 수이다. 예를 들어, 데이터 어레이(12)가 4-웨이 세트 연관형이면, 데이터 어레이(12)는 각각이 각각의 인덱스 또는 세트에 대한 개별 데이터 엘리먼트를 데이터 어레이(12)에 저장하는 4개의 웨이들을 포함한다. 따라서, 인덱스 및 웨이 둘 모두는 데이터 어레이(12)에서의 특정한 데이터 엘리먼트를 어드레싱하는데 사용된다.
변환 회로(14)는 물리 어드레스 변환 기법에 대하여 공지된 가상 어드레스를 사용하여 데이터 캐시(10)에 입력된 가상 어드레스를 물리 어드레스로 변환하도록 동작한다. 가상적으로 태그된 마이크로 태그 어레이(16)는, 예를 들어, 세트 연관형 메모리 구조, 완전 연관형(fully associative) 메모리 구조 또는 직접 맵핑된(direct mapped) 메모리 구조와 같은 임의의 원하는 메모리 구조를 사용하여 구현될 수 있다. 가상적으로 태그된 마이크로 태그 어레이(16)의 크기는 바람직하게, 물리적으로 태그된 태그 어레이(18)의 크기보다 실질적으로 더 작다. 그러나, 가상적으로 태그된 마이크로 태그 어레이(16)의 크기가 이에 한정되는 것은 아니다. 예를 들어, 가상적으로 태그된 마이크로 태그 어레이(16)의 크기는 대안적으로, 물리적으로 태그된 태그 어레이(18)의 크기와 동일할 수 있다. 가상적으로 태그된 마이크로 태그 어레이(16)는 다수의 가상 태그들에 대한 웨이 값들을 저장한다. 물리적으로 태그된 태그 어레이(18)는 또한, 예를 들어, 세트 연관형 메모리 구조, 완전 연관형 메모리 구조 또는 직접 맵핑된 메모리 구조와 같은 임의의 원하는 메모리 구조를 사용하여 구현될 수 있다. 물리적으로 태그된 태그 어레이(18)는 다수의 물리 태그들에 대한 웨이 값들을 저장한다.
동작 시, 데이터 엘리먼트 또는 데이터 엘리먼트의 일부분이 데이터 어레이(12)에 기록될 때, 대응하는 웨이 값은 대응하는 가상 태그와 연관하여, 가상적으로 태그된 마이크로 태그 어레이(16)에 저장된다. 유사한 방식으로, 대응하는 웨이 값은 대응하는 물리 태그와 연관하여, 물리적으로 태그된 태그 어레이(18)에 저장된다. 웨이 값이 가상적으로 태그된 마이크로 태그 어레이(16) 및 물리적으로 태그된 태그 어레이(18)에 저장되는 정확한 방식은 가상적으로 태그된 마이크로 태그 어레이(16) 및 물리적으로 태그된 태그 어레이(18)의 구조들에 의존한다. 이 프로세스는 새로운 데이터 엘리먼트들 또는 데이터 엘리먼트들의 일부분들이 데이터 어레이(12)에 기록되어, 반복된다.
데이터 엘리먼트가 데이터 캐시(10)로부터 판독되거나 또는 그렇지 않으면 어드레싱될 것일 때, 데이터 캐시(10)는, 예를 들어, 마이크로프로세서의 명령 파이프라인으로부터 가상 어드레스(VA)를 수신한다. 가상 어드레스의 수신에 응답하여, 변환 회로(14)는 물리 어드레스 컨버전(conversion) 기법에 대하여 공지된 가상 어드레스를 사용하여 가상 어드레스를 물리 어드레스로 변환한다. 변환 회로(14)가 변환을 수행하는 동시에, 가상적으로 태그된 마이크로 태그 어레이(16)는 가상적으로 태그된 마이크로 태그 어레이(16)에 가상 어드레스에 대한 매칭이 존재하는지 여부를 결정한다. 가상적으로 태그된 마이크로 태그 어레이(16)가 가상적으로 태그된 마이크로 태그 어레이(16)에 가상 어드레스에 대한 매칭이 존재하는지 여부를 결정하는 방식은 특정한 구현에 따라 다양할 것이다. 예를 들어, 가상적으로 태그된 마이크로 태그 어레이(16)가, 예를 들어, CAM(Content Addressable Memory) 구조와 같은 세트 연관형 메모리 구조로서 구현되면, 가상 어드레스 또는 가상 어드레스에 포함된 적어도 가상 태그는, 가상적으로 태그된 마이크로 태그 어레이(16)에 가상 어드레스에 대한 매칭이 존재하는지 여부를 결정하기 위해서, 가상적으로 태그된 마이크로 태그 어레이(16)에 저장된 다수의 가상 태그들과 동시에 비교된다.
다른 예로서, 가상적으로 태그된 마이크로 태그 어레이(16)가 세트 연관형 메모리 구조로서 구현되면, 가상적으로 태그된 마이크로 태그 어레이(16)는 다수의 세트들 또는 인덱스들, 및 각각의 세트 또는 인덱스에 대하여, 다수의 웨이들을 포함할 수 있다. 바람직하게는, 가상적으로 태그된 마이크로 태그 어레이(16)에서의 웨이들의 수는 데이터 어레이(12)에서의 웨이들의 수보다 적다. 이 예에서, 가상적으로 태그된 마이크로 태그 어레이(16)에 대한 인덱스들은 데이터 어레이(12)에 대한 인덱스들과 동일하고, 가상적으로 태그된 마이크로 태그 어레이(16)에서의 각각의 데이터 엘리먼트(즉, 각각의 인덱스 및 웨이 결합)는 가상 태그 및 연관된 웨이를 저장하도록 구성된다. 가상 어드레스에 대한 매칭이 존재하는지 여부를 결정하기 위해서, 가상 어드레스에 포함된 인덱스는 가상적으로 태그된 마이크로 태그 어레이(16)를 인덱싱하는데 사용되고, 가상적으로 태그된 마이크로 태그 어레이(16)에서의 인덱스에 대한 웨이들은 이러한 웨이들 중 임의의 웨이에 대한 가상 태그가 가상 어드레스로부터의 가상 태그와 매칭하는지 여부를 결정하도록 탐색된다. 이러한 웨이들 중 임의의 웨이에 대한 가상 태그가 가상 어드레스로부터의 가상 태그와 매칭한다면, 가상 어드레스에 대한 매칭이 존재한다. 가상적으로 태그된 마이크로 태그 어레이(16)에 대한 전술된 예들이 오직 예시를 목적으로 제공되며, 본 개시의 범위를 한정하는 것으로 의도되지 않는다는 점이 주목된다.
가상적으로 태그된 마이크로 태그 어레이(16)에 가상 어드레스에 대한 매칭이 존재하지 않으면, 가상적으로 태그된 마이크로 태그 어레이(16)는 미스 표시자(miss indicator)를 출력하며, 이는 물리적으로 태그된 태그 어레이(18)를 인에이블한다. 이에 응답하여, 물리적으로 태그된 태그 어레이(18)는 대응하는 웨이를 데이터 어레이(12)로 출력하기 위해서 변환 회로(14)로부터의 물리 어드레스를 프로세싱한다. 물리적으로 태그된 태그 어레이(18)가 대응하는 웨이를 출력하기 위해서 물리 어드레스를 프로세싱하는 방식은 특정한 구현에 따라 다양할 것이다. 예를 들어, 물리적으로 태그된 태그 어레이(18)가 완전 연관형 메모리 구조(예를 들어, CAM 구조)로서 구현되면, 물리적으로 태그된 태그 어레이(18)는 다수의 물리 태그들 및 대응하는 웨이들을 저장한다. 그 다음, 물리적으로 태그된 태그 어레이(18)에서의 물리 태그들은, 물리적으로 태그된 태그 어레이(18)에서의 물리 태그와 연관하여 저장된 웨이 값을 출력하기 위해서, 물리 어드레스에 포함된 물리 태그와 동시에 비교된다. 다른 예로서, 물리적으로 태그된 태그 어레이(18)는 다수의 세트들 또는 인덱스들, 및 각각의 세트 또는 인덱스에 대한 다수의 웨이들을 갖는 세트 연관형 메모리 구조로서 구현될 수 있다. 물리적으로 태그된 태그 어레이(18)에 대한 인덱스들은 데이터 어레이(12)에 대한 인덱스들과 동일하고, 물리적으로 태그된 태그 어레이(18)에서의 각각의 데이터 엘리먼트(즉, 각각의 인덱스 및 웨이 결합)는 물리 태그 및 대응하는 웨이를 저장하도록 구성된다. 물리 어드레스에 포함된 인덱스는 물리적으로 태그된 태그 어레이(18)를 인덱싱하는데 사용되고, 물리적으로 태그된 태그 어레이(18)에서의 인덱스에 대한 웨이들은 물리 어드레스로부터의 물리 태그와 매칭하는 물리 태그에 대하여 탐색된다. 그 다음, 매칭하는 물리 태그와 연관하여 저장된 웨이 값은 물리적으로 태그된 태그 어레이(18)에 의해 출력된다. 물리적으로 태그된 태그 어레이(18)에 대한 전술된 예들이 오직 예시를 목적으로 제공되며, 본 개시의 범위를 한정하는 것으로 의도되지 않는다는 점이 주목된다.
물리적으로 태그된 태그 어레이(18)로부터의 웨이의 수신에 응답하여, 데이터 어레이(12)는 적절한 데이터 엘리먼트를 출력한다. 더 구체적으로, 일 실시예에서, 데이터 어레이(12)에서의 데이터 엘리먼트들은 가상 어드레스에 포함된 인덱스, 및 가상적으로 태그된 마이크로 태그 어레이(16) 또는 물리적으로 태그된 태그 어레이(18)로부터 획득된 웨이를 사용하여 어드레싱된다. 따라서, 가상 어드레스로부터의 인덱스 및 물리적으로 태그된 태그 어레이(18)에 의해 출력된 웨이를 사용하여, 데이터 어레이(12)는 인덱스 및 웨이에 의해 어드레싱된 데이터 엘리먼트를 출력한다.
가상적으로 태그된 마이크로 태그 어레이(16)에 가상 어드레스에 대한 매칭이 존재하면, 이러한 실시예에서, 가상적으로 태그된 마이크로 태그 어레이(16)는 히트 표시자(hit indicator)를 출력하며, 이는 물리적으로 태그된 태그 어레이(18)를 디스에이블한다. 또한, 가상적으로 태그된 마이크로 태그 어레이(16)는 가상 어드레스에 대한 웨이를 데이터 어레이(12)로 출력한다. 다시, 가상적으로 태그된 마이크로 태그 어레이(16)에 의해 출력된 웨이는 가상 어드레스와 매칭하는 가상 태그와 연관하여, 가상적으로 태그된 마이크로 태그 어레이(16)에 저장된 웨이 값이다. 가상적으로 태그된 마이크로 태그 어레이(16)로부터의 웨이의 수신에 응답하여, 데이터 어레이(12)는 적절한 데이터 엘리먼트를 출력한다. 더 구체적으로, 일 실시예에서, 데이터 어레이(12)에서의 데이터 엘리먼트들은 가상 어드레스에 포함된 인덱스, 및 가상적으로 태그된 마이크로 태그 어레이(16) 또는 물리적으로 태그된 태그 어레이(18)로부터 획득된 웨이에 포함된 인덱스를 사용하여 어드레싱된다. 따라서, 가상 어드레스로부터의 인덱스, 및 가상 어드레스에 대하여 가상적으로 태그된 마이크로 태그 어레이(16)에 의해 출력된 웨이를 사용하여, 데이터 어레이(12)는 인덱스 및 웨이에 의해 어드레싱된 데이터 엘리먼트를 출력한다.
특히, 가상적으로 태그된 마이크로 태그 어레이(16)는, 데이터 캐시(10)의 성능을 향상시키며, 통상적으로 큰 구조인 물리적으로 태그된 태그 어레이(18)에 대한 액세스들의 수를 감소시킴으로써, 데이터 캐시(10)의 소비 전력을 감소시킨다. 더 구체적으로, 가상적으로 태그된 마이크로 태그 어레이(16)에서의 가상 어드레스에 대한 히트가 존재하면, 웨이는 물리적으로 태그된 태그 어레이(18)로의 액세스 없이 획득된다. 결과적으로, 데이터 캐시(10)에서의 스테이지들의 수는 효과적으로 2개의 스테이지들로 감소된다. 구체적으로, 가상적으로 태그된 마이크로 태그 어레이(16)에 히트가 존재할 때, 데이터 캐시(10)에서의 스테이지들의 수는 2(즉, 가상적으로 태그된 마이크로 태그 어레이(16) 및 데이터 어레이(12))이다. 이에 반해, 전통적 데이터 캐시들은 3개의 스테이지들을 요구하며, 이는 가상적으로 태그된 마이크로 태그 어레이(16)에 가상 어드레스에 대한 히트가 존재하지 않을 때 데이터 캐시(10)에서 이용되는 변환 회로(14), 물리적으로 태그된 태그 어레이(18) 및 데이터 어레이(12)에 대응한다. 데이터 캐시(10)에서의 스테이지들의 수의 감소와 더불어, 가상적으로 태그된 마이크로 태그 어레이(16)에서의 히트는 또한, 그렇지 않으면 물리적으로 태그된 태그 어레이(18)에 의해 소비되었을 전력을 절약한다.
본 명세서에 설명된 데이터 캐시(10)에 의해 제공된 이점들의 2개의 예들은 성능을 증가시키는 것 및 전력을 낮추는 것이다. 성능은 데이터 어레이(12)로 인덱싱하기 위해서 가상적으로 태그된 마이크로 태그 어레이(16)로부터의 웨이를 사용함으로써 증가된다. 가상적으로 태그된 마이크로 태그 어레이(16)에 히트가 존재할 때, 물리적으로 태그된 태그 어레이(18)를 인에이블하지 않음으로써 전력이 감소된다. 그러나, 대안적인 실시예에서, 가상적으로 태그된 마이크로 태그 어레이(16)에 히트가 존재할 때, 물리적으로 태그된 태그 어레이(18)가 디스에이블되지 않을 수 있다(예를 들어, 히트 표시자는 물리적으로 태그된 태그 어레이(18)를 디스에이블하도록 제공되지 않을 수 있다)는 점이 주목되어야 한다. 그렇게 함으로써, 물리적으로 태그된 태그 어레이(18)의 디스에이블에 의해 소비 전력은 감소되지 않는다. 그러나, 가상적으로 태그된 마이크로 태그 어레이(16)로부터의 웨이를 데이터 어레이(12)에 제공함으로써 성능이 여전히 향상될 것이며, 이로써 데이터 캐시(10)의 스테이지들의 수를 효과적으로 감소시킨다.
본 명세서에 개시되는 실시예들에 따른 데이터 캐시(10)는 임의의 프로세서-기반 디바이스에 제공되거나 또는 이에 통합될 수 있다. 예들은, 한정 없이, 셋탑 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정된 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 컴퓨터, 휴대용 컴퓨터, 데스크탑 컴퓨터, 개인용 디지털 보조기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너(tuner), 라디오, 위성 라디오, 음악 플레이어, 디지털 음악 플레이어, 휴대용 음악 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크(DVD) 플레이어, 및 휴대용 디지털 비디오 플레이어를 포함한다.
이와 관련하여, 도 3은 도 1에 예시된 데이터 캐시(10)를 사용할 수 있는 프로세서-기반 시스템(20)의 예를 예시한다. 이러한 예에서, 프로세서-기반 시스템(20)은 각각이 하나 또는 둘 이상의 프로세서들(24)을 포함하는 하나 또는 둘 이상의 중앙 처리 유닛(CPU)들(22)을 포함한다. CPU(들)(22)는 일시적으로 저장된 데이터로의 신속한 액세스를 위한 프로세서(들)(24)에 커플링되는 데이터 캐시(10)를 포함한다. CPU(들)(22)는 시스템 버스(26)에 커플링되며, 프로세서-기반 시스템(20)에 포함된 마스터 디바이스들 및 슬래이브 디바이스들을 상호 커플링시킬 수 있다. 잘 알려져 있는 바와 같이, CPU(들)(22)는 시스템 버스(26)를 통해 어드레스, 제어 및 데이터 정보를 교환함으로써 이러한 다른 디바이스들과 통신한다. 도 3에 예시되지 않았지만, 다수의 시스템 버스들(26)이 제공될 수 있으며, 여기서 각각의 시스템 버스(26)는 상이한 패브릭(fabric)을 구성한다.
다른 마스터 및 슬래이브 디바이스들은 시스템 버스(26)에 연결될 수 있다. 도 3에 예시된 바와 같이, 이러한 디바이스들은 예들로서, 메모리 시스템(28), 하나 또는 둘 이상의 입력 디바이스들(30), 하나 또는 둘 이상의 출력 디바이스들(32), 하나 또는 둘 이상의 네트워크 인터페이스 디바이스들(34) 및 하나 또는 둘 이상의 디스플레이 제어기들(36)을 포함할 수 있다. 입력 디바이스(들)(30)는 입력 키들, 스위치들, 음성 프로세서들 등을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(32)는 오디오, 비디오, 다른 시각적 표시자들 등을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들)(34)는 네트워크(38)로의 그리고 네트워크(38)로부터의 데이터의 교환을 허용하도록 구성되는 임의의 디바이스일 수 있다. 네트워크(38)는 유선 또는 무선 네트워크, 사설 또는 공공 네트워크, 로컬 영역 네트워크(LAN), 원근거리 네트워크(WLAN: wide local area network) 및 인터넷을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(34)는 원하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다.
CPU(22)는 또한, 하나 또는 둘 이상의 디스플레이들(40)에 전송되는 정보를 제어하기 위해서 시스템 버스(26)를 통해 디스플레이 제어기(들)(36)에 액세스하도록 구성될 수 있다. 디스플레이 제어기(들)(36)는, 디스플레이될 정보를 디스플레이(들)(40)에 적합한 포맷으로 프로세싱하는 하나 또는 둘 이상의 비디오 프로세서들(42)을 통해 디스플레이될 정보를 디스플레이(들)(40)에 전송한다. 디스플레이(들)(40)는 캐소드 레이 튜브(CRT: cathode ray tube), 액정 디스플레이(LCD: liquid crystal display), 플라즈마 디스플레이 등을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 디스플레이를 포함할 수 있다.
당업자들은 본 명세서에 개시되는 실시예들과 관련하여 설명되는 다양한 예시적인 논리 블록들, 모듈들, 회로들 및 알고리즘들이 전자 하드웨어, 메모리 또는 다른 컴퓨터 판독가능한 매체에 저장되어 프로세서 또는 다른 프로세싱 디바이스에 의해 실행되는 명령들, 또는 이 둘의 결합들로서 구현될 수 있다는 것을 추가로 인식할 것이다. 본 명세서에 개시되는 메모리는 임의의 타입 및 크기의 메모리일 수 있으며, 원하는 임의의 타입의 정보를 저장하도록 구성될 수 있다. 이러한 상호교환가능성을 명백하게 예시하기 위해서, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능에 관하여 위에서 설명되었다. 이러한 기능이 어떻게 구현되는지는 특정 애플리케이션, 설계 선택들 및/또는 전체 시스템에 부과되는 설계 제약들에 의존한다. 당업자들은 각각의 특정 애플리케이션에 대하여 다양한 방식들로, 설명된 기능을 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위로부터의 이탈을 야기하게 하는 것으로 해석되어서는 안 된다.
본 명세서에 개시되는 실시예들과 관련하여 설명되는 다양한 예시적인 논리 블록들, 모듈들 및 회로들은 프로세서, DSP, 주문형 집적 회로(ASIC), FPGA 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에 설명되는 기능들을 수행하도록 설계되는 이들의 임의의 결합으로 구현 또는 수행될 수 있다. 프로세서는 마이크로프로세서일 수 있지만 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 결합, 예를 들어, DSP 및 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합한 하나 또는 둘 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로 구현될 수 있다.
본 명세서에 개시되는 실시예들은 하드웨어에 저장된 명령들에서 그리고 하드웨어에서 구현될 수 있으며, 예를 들어, 랜덤 액세스 메모리(RAM), 플래쉬 메모리, 판독 전용 메모리(ROM), 전기적 프로그래머블 ROM(EPROM), 전기적 삭제가능한 프로그래머블 ROM(EEPROM), 레지스터들, 하드 디스크, 이동식(removable) 디스크, CD-ROM 또는 당해 기술분야에 알려져 있는 임의의 다른 형태의 컴퓨터 판독가능한 매체 내에 상주할 수 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수 있다. ASIC는 원격국 내에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 원격국, 기지국 또는 서버에 개별 컴포넌트들로서 상주할 수 있다.
또한, 본 명세서에서의 예시적인 실시예들 중 임의의 것에서 설명되는 동작 단계들이 예들 및 논의를 제공하기 위해서 설명된다는 점에 주목하여야 한다. 설명되는 동작들은 예시되는 시퀀스들 외에 다수의 상이한 시퀀스들에서 수행될 수 있다. 또한, 단일 동작 단계로 설명되는 동작들은 실제로 다수의 상이한 단계들에서 수행될 수 있다. 추가적으로, 예시적인 실시예들에서 논의되는 하나 또는 둘 이상의 동작 단계들이 결합될 수 있다. 흐름도들에 예시되는 동작 단계들에, 당업자에게 용이하게 명백하듯이, 다수의 상이한 변경들이 취해질 수 있다는 것이 이해될 것이다. 당업자들은 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 것을 사용하여 표현될 수 있다는 것을 또한 이해할 것이다. 예를 들어, 위의 설명의 전체에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광 필드들 또는 광입자들 또는 이들의 임의의 결합으로 표현될 수 있다.
본 개시의 이전의 설명은 임의의 당업자가 본 개시를 실시하거나 또는 이용할 수 있도록 제공된다. 본 개시에 대한 다양한 변경들은 당업자들에게 용이하게 명백할 것이고, 본 명세서에서 정의되는 일반적인 원리들은 본 개시의 사상 또는 범위로부터 벗어나지 않고 다른 변화들에 적용될 수 있다. 따라서, 본 개시는 본 명세서에 설명되는 예들 및 설계들에 한정되는 것으로 의도된 것이 아니라, 본 명세서에 개시되는 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위를 따를 것이다.

Claims (27)

  1. 데이터 캐시로서,
    데이터 어레이;
    물리적으로 태그된 태그 어레이; 및
    가상적으로 태그된 태그 어레이를 포함하고,
    상기 가상적으로 태그된 태그 어레이는,
    가상 어드레스를 수신하고;
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하는지 여부를 결정하고;
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하면, 상기 가상 어드레스에 대하여 상기 가상적으로 태그된 태그 어레이에 의해 저장된 웨이(way)를 상기 데이터 어레이로 출력하고; 그리고
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하지 않으면, 상기 가상 어드레스에 대응하는 물리 어드레스를 사용한 상기 물리적으로 태그된 태그 어레이의 탐색을 인에이블하도록 구성되는,
    데이터 캐시.
  2. 제 1 항에 있어서,
    상기 가상적으로 태그된 태그 어레이가 상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하는지 여부를 결정하는 동안 상기 가상 어드레스를 상기 물리 어드레스로 변환시켜 상기 물리 어드레스를 상기 물리적으로 태그된 태그 어레이로 출력하도록 구성되는 변환 회로를 더 포함하는,
    데이터 캐시.
  3. 제 2 항에 있어서,
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하면, 상기 변환 회로로부터의 상기 물리 어드레스를 사용한 상기 물리적으로 태그된 태그 어레이의 탐색이 수행되지 않도록, 상기 물리적으로 태그된 태그 어레이가 디스에이블되는,
    데이터 캐시.
  4. 제 1 항에 있어서,
    상기 가상적으로 태그된 태그 어레이는, 상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하면, 상기 물리적으로 태그된 태그 어레이를 디스에이블하도록 추가로 구성되는,
    데이터 캐시.
  5. 제 1 항에 있어서,
    상기 물리적으로 태그된 태그 어레이의 탐색을 인에이블하기 위해서, 상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하지 않으면, 상기 가상적으로 태그된 태그 어레이는 상기 물리적으로 태그된 태그 어레이로 미스(miss)를 출력하도록 구성되는,
    데이터 캐시.
  6. 제 5 항에 있어서,
    상기 가상적으로 태그된 태그 어레이로부터의 미스에 응답하여, 상기 물리적으로 태그된 태그 어레이는,
    상기 물리적으로 태그된 태그 어레이에 상기 물리 어드레스에 대한 매칭이 존재하는지 여부를 결정하고; 그리고
    매칭이 존재하면, 상기 물리 어드레스에 대하여 상기 물리적으로 태그된 태그 어레이에 의해 저장된 웨이를 출력하도록 구성되는,
    데이터 캐시.
  7. 제 6 항에 있어서,
    상기 데이터 어레이는, 상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하면, 상기 가상적으로 태그된 태그 어레이로부터 상기 웨이를 수신하고, 상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하지 않지만 상기 물리적으로 태그된 태그 어레이에 상기 물리 어드레스에 대한 매칭이 존재하면, 상기 물리적으로 태그된 태그 어레이로부터 상기 웨이를 수신하고, 그리고
    상기 웨이의 수신에 응답하여, 상기 웨이에 기초하여 데이터 엘리먼트를 출력하도록 구성되는,
    데이터 캐시.
  8. 제 7 항에 있어서,
    상기 데이터 어레이는 세트 연관형(set associative)이고,
    상기 데이터 엘리먼트를 출력하기 위해서, 상기 데이터 어레이는 상기 가상 어드레스로부터 획득된 인덱스 및 상기 웨이에 의해 어드레싱된 데이터 엘리먼트를 출력하는,
    데이터 캐시.
  9. 제 1 항에 있어서,
    상기 가상적으로 태그된 태그 어레이의 크기는 상기 물리적으로 태그된 태그 어레이의 크기보다 작은,
    데이터 캐시.
  10. 제 1 항에 있어서,
    상기 가상적으로 태그된 어레이의 크기는 상기 물리적으로 태그된 태그 어레이의 크기와 동일한,
    데이터 캐시.
  11. 제 1 항에 있어서,
    상기 가상적으로 태그된 태그 어레이는, 세트 연관형 메모리 구조, 완전 연관형 메모리 구조, 및 직접 맵핑된 메모리 구조로 구성된 그룹으로부터 선택된 구조를 가지는,
    데이터 캐시.
  12. 제 1 항에 있어서,
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재할 때, 상기 데이터 캐시의 스테이지들의 수는 상기 가상적으로 태그된 태그 어레이 및 상기 데이터 어레이로 구성된 2개의 스테이지들로 감소되는,
    데이터 캐시.
  13. 제 1 항에 있어서,
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하고, 상기 매칭에 응답하여, 상기 가상적으로 태그된 태그 어레이는 상기 가상 어드레스에 대하여 상기 가상적으로 태그된 태그 어레이에 의해 저장된 상기 웨이를 상기 데이터 어레이로 출력하고, 상기 물리적으로 태그된 태그 어레이를 디스에이블하는,
    데이터 캐시.
  14. 제 1 항에 있어서,
    상기 데이터 캐시는 반도체 다이 상에 구현되는,
    데이터 캐시.
  15. 제 1 항에 있어서,
    상기 데이터 캐시는, 셋탑 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 컴퓨터, 휴대용 컴퓨터, 데스크탑 컴퓨터, 개인용 디지털 보조기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 휴대용 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크(DVD) 플레이어 및 휴대용 디지털 비디오 플레이어로 구성된 그룹으로부터 선택된 디바이스에 통합되는,
    데이터 캐시.
  16. 데이터 어레이, 물리적으로 태그된 태그 어레이 및 가상적으로 태그된 태그 어레이를 포함하는 데이터 캐시의 동작 방법으로서,
    가상 어드레스를 수신하는 단계;
    가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하는지 여부를 결정하는 단계;
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하면, 상기 가상 어드레스에 대하여 상기 가상적으로 태그된 태그 어레이에 의해 저장된 웨이를 상기 데이터 어레이로 출력하는 단계; 및
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하지 않으면, 상기 가상 어드레스에 대응하는 물리 어드레스를 사용한 상기 물리적으로 태그된 태그 어레이의 탐색을 인에이블하는 단계를 포함하는,
    데이터 어레이, 물리적으로 태그된 태그 어레이 및 가상적으로 태그된 태그 어레이를 포함하는 데이터 캐시의 동작 방법.
  17. 제 16 항에 있어서,
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하면, 상기 물리적으로 태그된 태그 어레이를 디스에이블하는 단계를 더 포함하는,
    데이터 어레이, 물리적으로 태그된 태그 어레이 및 가상적으로 태그된 태그 어레이를 포함하는 데이터 캐시의 동작 방법.
  18. 제 17 항에 있어서,
    상기 가상 어드레스를 상기 물리 어드레스로 변환하는 단계; 및
    상기 물리 어드레스를 상기 물리적으로 태그된 태그 어레이로 출력하는 단계를 더 포함하고,
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하는지 여부를 결정하는 동안 상기 가상 어드레스를 상기 물리 어드레스로 변환하는 단계 및 상기 물리 어드레스를 상기 물리적으로 태그된 태그 어레이로 출력하는 단계가 수행되는,
    데이터 어레이, 물리적으로 태그된 태그 어레이 및 가상적으로 태그된 태그 어레이를 포함하는 데이터 캐시의 동작 방법.
  19. 제 16 항에 있어서,
    상기 물리적으로 태그된 태그 어레이의 탐색을 인에이블하는 단계는, 상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하지 않으면, 상기 물리적으로 태그된 태그 어레이로 미스를 출력하는 단계를 포함하는,
    데이터 어레이, 물리적으로 태그된 태그 어레이 및 가상적으로 태그된 태그 어레이를 포함하는 데이터 캐시의 동작 방법.
  20. 제 19 항에 있어서,
    상기 가상적으로 태그된 태그 어레이로부터의 미스에 응답하여,
    상기 물리적으로 태그된 태그 어레이에 상기 물리 어드레스에 대한 매칭이 존재하는지 여부를 결정하는 단계; 및
    상기 물리적으로 태그된 태그 어레이에 상기 물리 어드레스에 대한 매칭이 존재하면, 상기 물리 어드레스에 대하여 상기 물리적으로 태그된 태그 어레이에 의해 저장된 웨이를 출력하는 단계를 더 포함하는,
    데이터 어레이, 물리적으로 태그된 태그 어레이 및 가상적으로 태그된 태그 어레이를 포함하는 데이터 캐시의 동작 방법.
  21. 제 20 항에 있어서,
    상기 데이터 어레이에서, 상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하면 상기 가상적으로 태그된 태그 어레이로부터, 또는 상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하지 않지만 상기 물리적으로 태그된 태그 어레이에 상기 물리 어드레스에 대한 매칭이 존재하면 상기 물리적으로 태그된 태그 어레이로부터, 상기 웨이를 수신하는 단계; 및
    상기 웨이의 수신에 응답하여, 상기 웨이에 기초하여 데이터 엘리먼트를 출력하는 단계를 더 포함하는,
    데이터 어레이, 물리적으로 태그된 태그 어레이 및 가상적으로 태그된 태그 어레이를 포함하는 데이터 캐시의 동작 방법.
  22. 제 21 항에 있어서,
    상기 데이터 어레이는 세트 연관형이고,
    상기 데이터 엘리먼트를 출력하는 단계는 상기 가상 어드레스로부터 획득된 인덱스 및 상기 웨이에 의해 어드레싱된 데이터 엘리먼트를 출력하는 단계를 포함하는,
    데이터 어레이, 물리적으로 태그된 태그 어레이 및 가상적으로 태그된 태그 어레이를 포함하는 데이터 캐시의 동작 방법.
  23. 데이터 캐시로서,
    가상적으로 태그된 태그 어레이에 가상 어드레스에 대한 매칭이 존재하는지 여부를 결정하기 위한 수단; 및
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하면,
    상기 가상 어드레스에 대하여 상기 가상적으로 태그된 태그 어레이에 의해 저장된 웨이를 상기 데이터 캐시의 데이터 어레이로 출력하기 위한 수단;
    상기 데이터 캐시의 물리적으로 태그된 태그 어레이를 디스에이블하기 위한 수단; 및
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하지 않으면,
    상기 가상 어드레스에 대응하는 물리 어드레스를 사용한 상기 물리적으로 태그된 태그 어레이의 탐색을 인에이블하기 위한 수단을 포함하는,
    데이터 캐시.
  24. 비-일시적 컴퓨터 판독가능한 매체로서,
    데이터 캐시의 가상적으로 태그된 태그 어레이에 가상 어드레스에 대한 매칭이 존재하는지 여부를 결정하고; 그리고
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하면,
    상기 가상 어드레스에 대하여 상기 가상적으로 태그된 태그 어레이에 의해 저장된 웨이를 상기 데이터 캐시의 데이터 어레이에 제공하고;
    상기 데이터 캐시의 물리적으로 태그된 태그 어레이를 디스에이블하고; 그리고
    상기 가상적으로 태그된 태그 어레이에 상기 가상 어드레스에 대한 매칭이 존재하지 않으면,
    상기 가상 어드레스에 대응하는 물리 어드레스를 사용한 상기 데이터 캐시의 물리적으로 태그된 태그 어레이의 탐색을 인에이블하도록, 프로세서에 명령하기 위한 소프트웨어를 저장하는,
    비-일시적 컴퓨터 판독가능한 매체.
  25. 삭제
  26. 삭제
  27. 삭제
KR1020147022849A 2012-01-17 2013-01-17 물리적으로 태그된 데이터 캐시로의 트래픽을 필터링하기 위한 방법 KR101458928B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261587140P 2012-01-17 2012-01-17
US61/587,140 2012-01-17
US13/426,647 2012-03-22
US13/426,647 US8612690B2 (en) 2012-01-17 2012-03-22 Method for filtering traffic to a physically-tagged data cache
PCT/US2013/021822 WO2013109679A1 (en) 2012-01-17 2013-01-17 Method for filtering traffic to a physically-tagged data cache

Publications (2)

Publication Number Publication Date
KR20140116506A KR20140116506A (ko) 2014-10-02
KR101458928B1 true KR101458928B1 (ko) 2014-11-07

Family

ID=48780804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147022849A KR101458928B1 (ko) 2012-01-17 2013-01-17 물리적으로 태그된 데이터 캐시로의 트래픽을 필터링하기 위한 방법

Country Status (7)

Country Link
US (1) US8612690B2 (ko)
EP (1) EP2805244B1 (ko)
JP (1) JP5752331B2 (ko)
KR (1) KR101458928B1 (ko)
CN (1) CN104025061B (ko)
IN (1) IN2014CN04535A (ko)
WO (1) WO2013109679A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061698B2 (en) * 2017-01-31 2018-08-28 Qualcomm Incorporated Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379396A (en) * 1991-10-11 1995-01-03 Intel Corporation Write ordering for microprocessor depending on cache hit and write buffer content

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970029072A (ko) * 1995-11-17 1997-06-26 김주용 이중 디렉토리 가상 캐쉬 및 그 제어 방법
US6253301B1 (en) 1998-04-16 2001-06-26 Compaq Computer Corporation Method and apparatus for a dedicated physically indexed copy of the data cache tag arrays
US6976117B2 (en) 2002-08-13 2005-12-13 Intel Corporation Snoopy virtual level 1 cache tag
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
US7451271B2 (en) 2004-04-05 2008-11-11 Marvell International Ltd. Physically-tagged cache with virtually-tagged fill buffers
US7657708B2 (en) 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7594079B2 (en) * 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US8631207B2 (en) 2009-12-26 2014-01-14 Intel Corporation Cache memory power reduction techniques

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379396A (en) * 1991-10-11 1995-01-03 Intel Corporation Write ordering for microprocessor depending on cache hit and write buffer content

Also Published As

Publication number Publication date
WO2013109679A1 (en) 2013-07-25
EP2805244B1 (en) 2018-11-21
JP5752331B2 (ja) 2015-07-22
CN104025061A (zh) 2014-09-03
US20130185473A1 (en) 2013-07-18
JP2015506517A (ja) 2015-03-02
US8612690B2 (en) 2013-12-17
EP2805244A1 (en) 2014-11-26
CN104025061B (zh) 2016-01-06
KR20140116506A (ko) 2014-10-02
IN2014CN04535A (ko) 2015-09-11

Similar Documents

Publication Publication Date Title
US10503661B2 (en) Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
AU2022203960B2 (en) Providing memory bandwidth compression using multiple last-level cache (llc) lines in a central processing unit (cpu)-based system
US20110145542A1 (en) Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups
US9823854B2 (en) Priority-based access of compressed memory lines in memory in a processor-based system
KR101845371B1 (ko) 오프-다이 캐시 메모리의 태그들의 세트들을 캐시하기 위한 방법, 장치, 및 시스템
US20160224241A1 (en) PROVIDING MEMORY BANDWIDTH COMPRESSION USING BACK-TO-BACK READ OPERATIONS BY COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM
KR101895852B1 (ko) Mmu(memory management unit) 파티셔닝된 변환 캐시들, 및 관련 장치들, 방법들, 및 컴퓨터-판독가능한 매체들의 제공
US9460018B2 (en) Method and apparatus for tracking extra data permissions in an instruction cache
JP2016522936A (ja) データアクセスの前のメモリ内の不完全データエントリから冗長データエントリへのデータのリダイレクトならびに関連するシステムおよび方法
KR101458928B1 (ko) 물리적으로 태그된 데이터 캐시로의 트래픽을 필터링하기 위한 방법
US20180217930A1 (en) Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur
US10152261B2 (en) Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system
WO2019045940A1 (en) INSERTING INSTRUCTION BLOCK HEADER DATA CACHING IN SYSTEMS BASED ON BLOCK ARCHITECTURE PROCESSOR
US9921962B2 (en) Maintaining cache coherency using conditional intervention among multiple master devices

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 5