KR101165132B1 - 멀티-레벨 캐시 계층에서의 캐스트아웃들을 감소시키기 위한 장치 및 방법들 - Google Patents

멀티-레벨 캐시 계층에서의 캐스트아웃들을 감소시키기 위한 장치 및 방법들 Download PDF

Info

Publication number
KR101165132B1
KR101165132B1 KR1020097018158A KR20097018158A KR101165132B1 KR 101165132 B1 KR101165132 B1 KR 101165132B1 KR 1020097018158 A KR1020097018158 A KR 1020097018158A KR 20097018158 A KR20097018158 A KR 20097018158A KR 101165132 B1 KR101165132 B1 KR 101165132B1
Authority
KR
South Korea
Prior art keywords
cache
line
level
allocation
higher level
Prior art date
Application number
KR1020097018158A
Other languages
English (en)
Other versions
KR20090115799A (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 KR20090115799A publication Critical patent/KR20090115799A/ko
Application granted granted Critical
Publication of KR101165132B1 publication Critical patent/KR101165132B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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

멀티-레벨 캐시 계층에서의 캐스트아웃들을 감소시키기 위한 장치 및 방법들{APPARATUS AND METHODS TO REDUCE CASTOUTS IN A MULTI-LEVEL CACHE HIERARCHY}
본 발명은 일반적으로 캐시 메모리의 분야에 관한 것으로서, 보다 구체적으로 명령어, 데이터, 및 빅팀(victim) 캐시들을 구비한 메모리 시스템들에 관한 것이다.
휴대 전화들, 랩탑 컴퓨터들, 개인 휴대 단말기(PDA)들 등과 같은 많은 휴대용 제품들은, 통신 및 멀티미디어 프로그램들과 같은 프로세서 실행 프로그램들을 이용한다. 그러한 제품들을 위한 프로세싱 시스템은, 프로세서 및, 명령어들 및 데이터를 저장하기 위한 메모리 컴플렉스(memory complex)를 포함한다. 일반적으로, 대용량의 주 메모리는 프로세서의 사이클 시간과 비교하여 느린 액세스 시간들을 가진다. 그 결과, 상기 메모리 컴플렉스는 캐시 메모리들의 용량과 성능을 기초로 하여, 일반적으로 계층(hierarchy)에서 조직되고, 최상의 성능과 최소의 용량을 가지는 캐시가 상기 프로세서에 가장 근접하게 위치한다. 예컨대, 레벨 1의 명령어 캐시 및 레벨 1의 데이터 캐시는, 일반적으로 상기 프로세서에 직접적으로 부착될 것이다. 한편, 레벨 2의 단일화된 캐시는 상기 레벨 1(L1)의 명령어 및 데이터 캐시들에 접속된다. 게다가, 시스템 메모리는 상기 레벨 2(L2)의 단일화된 캐시에 접속된다. 일반적으로 레벨 1의 명령어 캐시가 프로세서 속도로 동작하고, 레벨 2의 단일화된 캐시가 상기 레벨 1의 캐시보다 느리게 동작하지만, 상기 시스템 메모리의 액세스 시간보다 더 빠른 액세스 시간을 가진다. 예컨대, 대안적인 메모리 조직들은, L1 및 L2의 캐시 이외에도 레벨 3의 캐시를 포함하는 메모리 계층들을 다수 구비하고 있다. 다른 메모리 조직은 오직 레벨 1의 캐시 및 메모리 시스템만을 이용할 수 있다.
메모리 조직은, 포함적인 캐시(inclusive cache)들, 철저히 포함적인 캐시(strictly inculsive cache)들, 배타적인 캐시(exclusive cache)들, 또는 이러한 캐시 타입들의 조합으로서 동작하는 캐시들의 계층으로 구성될 수 있다. 본 명세서에서의 정의에 의해서, 상호 간에 배타적인 임의의 두 레벨들의 캐시는 동일한 캐시 라인을 포함하지 않을 수 있다. 상호 간에 포함적인 임의의 두 레벨들의 캐시는 동일한 캐시 라인을 포함할 수 있다. 상호 간에 철저히 포함적인 임의의 두 레벨들의 캐시는, 더 큰 캐시, 일반적으로 더 높은 레벨의 캐시가 더 작은 캐시, 일반적으로 더 낮은 레벨의 캐시에 있는 모든 라인들을 포함해야만 하는 것을 의미한다. 3개 이상의 멀티-레벨 캐시 메모리 조직에서, 두 개 이상의 임의의 캐시 레벨들은 캐시의 타입 중 어느 하나의 타입, 예컨대 배타적인 타입으로서 동작할 수 있고, 나머지의 캐시 레벨들은 캐시의 대안적인 타입들 중 하나의 타입, 예컨대 포함적인 타입으로서 동작할 수 있다.
일반적으로, 명령어 캐시에서의 단일의 어드레스에 위치한 다수의 명령어들을 지원하도록, 명령어 캐시가 구성된다. 일반적으로, 상기 데이터 캐시에서의 단 일의 어드레스에 위치한 다수의 데이터를 지원하도록 데이터 캐시가 구성되고, 여기서 데이터 유닛은 상기 프로세서에 의존하는 바이트들의 변수일 수 있다. 이러한 다수의 명령어들 및 또는 데이터 유닛은 일반적으로 캐시 라인 또는 간단히 라인으로 불린다. 예컨대, 프로세서는 L1 레벨의 캐시로부터 명령어 또는 데이터 유닛을 페치(fetch)하고, 상기 명령어 또는 데이터 유닛이 상기 캐시에 존재하면 "히트(hit)"가 발생하며, 상기 명령어 또는 데이터 유닛이 상기 프로세서에 제공된다. 상기 명령어 또는 데이터 유닛이 상기 L1 캐시에 존재하지 않으면, "미스(miss)"가 발생한다. 캐시 라인의 임의의 명령어 또는 데이터 유닛 액세스 상에서, 미스가 발생할 수 있다. 미스가 발생할 때에, 캐시에서의 라인은 미스된(missed) 명령어를 포함하는 새로운 라인으로 대체된다. 어떠한 캐시 라인이 대체될지를 결정하는데에 대체 정책(replacement policy)이 이용된다. 예컨대, 최소로 이용된 캐시 라인을 선택 또는 희생시키는 것(victimize)은 최근 최소 사용된(LRU; least recently used) 방법을 나타낸다. 대체되기 위해 선택된 상기 캐시 라인이 빅팀(victim) 캐시 라인이다.
또한, 캐시 라인은, 유효 비트(valid bit) 및 더티 비트(dirty bit)와 같은 다수의 상태 비트들과 연관될 수 있다. 상기 유효 비트는, 명령어들 또는 데이터가 상기 캐시 라인에 존재하는 것을 나타낸다. 상기 더티 비트는, 상기 캐시 라인으로의 변형이 발생하였는지를 나타낸다. 라이트-백(write-back) 캐시에서, 상기 더티 비트는, 캐시 라인이 상기 메모리 시스템 계층에서의 다음의 더 높은 메모리 레벨로 다시 기록될 필요가 있는 변형들로 언제 대체될지를 나타낸다.
빅팀 캐시는 레벨 1의 캐시와 같은 캐시에 접속되는 별개의 버퍼일 수 있고, 또는 더 높은 레벨의 캐시에 인접하여 통합될 수 있다. 빅팀 라인이 축출(evict)된 이후에는 비교적 짧아질 필요가 있을 수 있고, 상기 메모리 계층의 더 높은 레벨로부터 상기 빅팀 라인에 액세스하는 것보다 빅팀 캐시로부터 필요로 할 때에 상기 빅팀 라인에 액세스하는 것이 더 빠르다는 가정들 하에서, 빅팀 캐시 라인들은 상기 빅팀 캐시에 할당될 수 있다. 인접한 더 높은 레벨의 캐시에 통합되는 빅팀 캐시를 이용하면, 라인이 더 낮은 레벨의 캐시로부터 변위되어(displace) 더 높은 레벨의 캐시로 할당될 때에 캐스트아웃(castout)이 발생하고, 따라서 더 낮은 레벨의 캐시들의 빅팀들을 캐싱(caching)한다. 상기 더 낮은 레벨의 캐시는 변위된 모든 라인들, 즉 더티한(dirty) 및 더티하지 않은(non-dirty) 라인들을 더 높은 레벨의 캐시로 보낸다. 몇몇 경우들에서, 상기 빅팀 라인이 상기 빅팀 캐시에 이미 존재할 수 있고, 이미 존재하는 라인들을 재기록하는 것은 전력을 소비할 수 있으며, 상기 빅팀 캐시의 대역폭을 감소시킬 수 있다.
본 발명은, 메모리 시스템에서의 전력 요구조건들을 감소시키는 것이, 휴대용 어플리케이션들, 및 일반적으로 프로세싱 시스템들에서의 전력 요구들을 감소시키는데에 중요하다는 것을 인식한다. 그러한 목적을 위해, 본 발명의 실시예는 변위된 캐시 라인들의 할당을 감소시키기 위한 추적 방법을 다룬다. 더 낮은 레벨의 캐시로 변위시키기 위해 라인이 선택된다. 선택된 라인과 관련된 정보가 식별되고, 상기 정보는 선택된 라인이 더 높은 레벨의 캐시에 존재하는지를 나타낸다. 상기 식별된 정보에 기초하여, 더 높은 레벨의 캐시로의 선택된 라인의 할당이 예방된다. 선택된 라인의 할당을 예방하는 것은, 상기 할당과 관련되는 전력을 줄인다.
본 발명의 다른 실시예는 캐스트아웃들을 감소시키는 방법을 다룬다. 레벨 X의 캐시에서의 미스(miss)에 응답하여, 상기 미스와 관련된 캐시 라인의 태그(tag)에서의 레벨 X의 캐시에, 할당 정보가 저장된다. 상기 할당 정보는 상기 캐시 라인이 레벨 X+1의 캐시에 할당되었는지를 나타낸다. 라인이 레벨 X의 캐시에서, 대체되도록 선택된다. 상기 캐시 라인이 상기 레벨 X+1의 캐시에 할당되었다는 것을 나타내는 선택된 라인의 상기 할당 정보에 응답하여, 상기 레벨 X의 캐시로부터 상기 레벨 X+1의 캐시까지의 선택된 라인의 캐스트아웃이 예방된다.
본 발명의 다른 실시예는 다수의 캐시 레벨들을 가지는 메모리 시스템을 다룬다. 더 낮은 레벨의 캐시는 각 할당 비트와 함께 다수의 제 1 캐시 라인들을 저장하도록 구성된다. 상기 다수의 제 1 캐시 라인들 중 어느 하나와 관련된 상기 할당 비트는, 상기 다수의 제 1 캐시 라인들 중 상기 어느 하나가 더 높은 레벨의 캐시에 할당되었는지를 나타낸다. 선택된 제 1 캐시 라인과 관련된 할당 비트에 기초하여, 상기 다수의 제 1 캐시 라인들로부터의 변위를 위해 선택된 제 1 캐시 라인이 더 높은 레벨의 캐시에 있는 캐시 라인과 중복(redundant)되는 캐시 라인인지를 결정하도록, 캐스트아웃 논리 회로가 구성된다. 더 높은 레벨의 캐시로의 선택된 제 1 캐시 라인의 캐스트아웃은, 상기 선택된 제 1 캐시 라인의 할당에 응답하여 방지된다.
본 발명의 다른 실시예들이 후술하는 상세한 설명으로부터 당업자에 의해 쉽게 명백해질 것이 이해되고, 여기서 본 발명의 다양한 실시예들이 예시적인 방법으로 도시되고 기술된다. 실현될 바와 같이, 본 발명의 범위를 벗어남이 없이도, 본 발명은 다른 실시예들을 실시할 수 있고, 몇몇 상세한 설명들은 다양한 다른 양상들에서의 변형들을 실시할 수 있다. 따라서, 도면들 및 상세한 설명은 사실상 설명적이며, 제한적이지 않은 것으로 간주된다.
도 1은 무선 통신 시스템을 설명한다.
도 2는, 캐스트아웃들이 감소되는 예시적인 프로세서 및 메모리 컴플렉스의 기능적 블록도이다.
도 3은, 캐스트아웃들을 감소시키기 위한 프로세스를 설명하는 순서도이다.
첨부된 도면들과 관련하여 기술되는 상세한 설명은 본 발명의 다양한 예시적인 실시예들을 설명할 의도이고, 본 발명에서 실행될 수 있는 유일한 실시예들을 나타내고자 하는 의도가 아니다. 상세한 설명은, 본 발명의 완전한 이해를 제공할 목적의 특정한 상세한 설명들을 포함한다. 하지만, 당업자에게는 이러한 특정한 상세한 설명들이 없이도 본 발명이 실행될 수 있음이 명백할 것이다. 몇몇 예들에서는, 본 발명의 개념들이 모호하게 되는 것을 방지하기 위해서, 잘 알려진 구조들 및 컴포넌트들이 블록도 형태로서 도시된다.
도 1은, 본 발명의 실시예가 유리하게 이용될 수 있는 예시적 무선 통신 시스템(100)을 설명한다. 설명의 목적을 위해서, 도 1은 3개의 원격 유닛들(120, 130 및 150), 및 두 개의 기지국들(140)을 도시한다. 일반적인 통신 시스템들은 더 많은 원격 유닛들 및 기지국들을 포함할 수 있음이 이해될 것이다. 원격 유닛들(120, 130 및 150)은, 컴포넌트들(125A, 125C 및 125B)에 의해 표현되는 바와 같이, 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들, 또는 양자를 포함할 수 있고, 이하 기술될 바와 같은 본 발명을 구체화하기 위해 개조될 수 있다. 도 1은, 상기 기지국들(140)로부터 상기 원격 유닛들(120, 130 및 150)로의 순방향 링크 신호들(180), 및 원격 유닛들(120, 130 및 150)로부터 상기 기지국들(140)로의 역방향 링크 신호들(190)을 도시한다.
도 1에서, 원격 유닛(120)은 이동 전화기로서 도시되고, 원격 유닛(130)은 휴대용 컴퓨터로서 도시되며, 원격 유닛(150)은 무선 로컬 루프 시스템에서의 고정 위치 원격 유닛으로서 도시된다. 일 예로서, 상기 원격 유닛들은 대안적으로 휴대 전화들, 페이저(pager)들, 워키 토키(walkie talkie)들, 소형 개인 통신 시스템(PCS) 유닛들, 개인휴대단말과 같은 휴대용 데이터 유닛들, 또는 미터 측정 장비와 같은 고정 위치 데이터 유닛들일 수 있다. 도 1은 본 발명의 가르침들에 따른 원격 유닛들을 설명하지만, 본 발명은 이러한 예시적인 유닛들에 제한되지 않는다. 본 발명의 실시예들은 적어도 두 개의 레벨의 메모리 계층, 예컨대 레벨 1의 캐시 및 레벨 2의 캐시를 가지는 프로세서를 포함하는 임의의 장치에서 적합하게 이용될 수 있다.
도 2는, 캐스트아웃들이 감소되는 예시적인 프로세서 및 메모리 컴플렉스(200)의 기능적 블록도이다. 상기 예시적인 프로세서 및 메모리 컴플렉스(200) 는, 프로세서(202), L1 캐시 라인 어레이(204) 및 L1 캐시 제어 유닛(206)을 포함하는 레벨 1의 캐시(L1 캐시)(203), 포함적인 레벨 2의 캐시(L2 캐시)(208), 및 시스템 메모리(210)를 포함한다. 세트 연관 캐시(set associated cache) 또는 완전 연관 캐시(fully associated cache)와 같은 다양한 타입의 캐시들에 이용될 수 있을 때에, 상기 L1 캐시 제어 유닛(206)은, 캐스트아웃 논리 회로(212), 및 태그 매칭(tag matching)을 위한 레벨 1의 컨텐츠 어드레싱가능한 메모리(L1 CAM)(214)를 포함한다. 상기 프로세서 컴플렉스에 접속될 수 있는 주변 장치들은 설명의 명확성을 위해 도시하지 않는다. 상기 예시적인 프로세서 및 메모리 컴플렉스(200)는, 본 발명의 다양한 실시예들에서 캐시들(203 및 208) 및 시스템 메모리(210)에 저장된 프로그램 코드들을 실행시키기 위한 컴포넌트들(125A 내지 125C)에 적합하게 이용될 수 있다.
상기 L1 캐시 라인 어레이(204)는, 캐시 라인들(215-217)과 같은 다수의 라인들을 포함할 수 있다. 일 실시예에서, 상기 L1 캐시(203)는 다수의 데이터 유닛들로 구성된 각 라인을 구비한 데이터 캐시이다. 다른 실시예에서, 상기 L1 캐시(203)는 다수의 명령어들로 구성된 각 라인을 구비한 명령어 캐시이다. 추가적인 실시예에서, 상기 L1 캐시(203)는 다수의 명령어들 또는 데이터 유닛들로 구성된 각 라인을 구비한 단일화된 캐시이다. 예컨대, 각 라인은 다수의 엘리먼트들(U0, U1, ... U7)(218-225) 각각으로 구성되고, 상기 다수의 엘리먼트들은 예시된 캐시 실시예들에 대해 적합하다. 이하에서 좀더 상세하게 기술될 바와 같이, 각 라인들과 관련되는 것은 태그(226), 더티 비트(D)(228), 및 강제 대체 캐스트아 웃 비트(force replacement castout bit)(FRC)(230)이다. 상기 캐시 라인들(215-217)은 라인 어드레스들(231-233) 각각에서의 상기 L1 캐시 라인 어레이(204)에 존재한다. 상기 L1 캐시 제어 유닛(206)은, 캐시 라인들에 액세스하기 위해서, I/DA 인터페이스(235)를 통하여 수신되는 명령어 어드레스 또는 데이터 어드레스(I/DA)(234)에 응답하는 어드레스 제어 논리를 포함한다. 상기 I/DA(234)는 태그(236), 라인 어드레스 필드(238), 명령어/데이터 "U" 필드(240), 및 바이트 "B" 필드(242)로 구성될 수 있다.
상기 예시적인 프로세서 및 메모리 컴플렉스(200)에서의 명령어 또는 데이터 유닛을 페치하기 위해서, 상기 프로세서(202)는 페치될 원하는 명령어/데이터의 명령어/데이터 어드레스(I/DA)(234)를 생성하고, 페치 어드레스를 상기 L1 캐시 제어 유닛(206)으로 보낸다. 상기 수신된 I/DA(234)에 기초하여, 상기 L1 캐시 제어 유닛(206)은, 상기 명령어 또는 데이터가 상기 L1 캐시 라인 어레이(204)에 존재하는지를 체크한다. 예컨대, 상기 I/DA(234)에 의해 선택되었던 라인(215)과 관련된 매칭 태그(244)를 체크하는 비교 논리의 이용을 통해서, 이러한 체크가 성취된다. 상기 명령어 또는 데이터가 존재하면 매치(match) 또는 히트(hit)가 발생하고, 상기 L1 캐시 제어 유닛(206)은 상기 명령어 또는 데이터가 상기 L1 캐시(203)에 존재함을 나타낸다. 상기 명령어 또는 데이터가 존재하지 않으면 노 매치(no match) 또는 미스(miss)가 발견될 것이고, 상기 L1 캐시 제어 유닛(206)은 상기 명령어 또는 데이터가 상기 L1 캐시(203)에 존재하지 않는다는 미스 표시(miss indication)를 제공한다.
상기 명령어 또는 데이터가 존재하면, 상기 명령어/데이터 페치 어드레스에서의 상기 명령어 또는 데이터가 상기 L1 캐시 라인 어레이(204)로부터 선택된다. 그러면, 상기 명령어 또는 데이터가 명령어/데이터 아웃 버스(246) 상에서 상기 프로세서(202)로 보내진다.
상기 명령어/데이터가 상기 캐시에 존재하지 않으면, 미스가 발생하였다는 것을 나타내는 미스 신호(248)에 의해서 미스 정보가 상기 L2 캐시(208)로 제공된다. 상기 L1 캐시(203)에서의 미스가 검출되자마자, 상기 L2 캐시(208)로부터 원하는 명령어/데이터를 페치하기 위한 시도가 이루어진다. 원하는 명령어/데이터가 상기 L2 캐시(208)에 존재하면, 그것은 메모리 버스 인터페이스(250) 상에서 제공된다. 원하는 명령어/데이터가 상기 L2 캐시(208)에 존재하지 않으면, 그것은 상기 시스템 메모리(210)로부터 페치된다.
상기 L2 캐시(208)로부터의 강제 대체 캐스트아웃(FRC; force replacement castout) 신호(254)는 상기 메모리 버스 인터페이스(250) 상에 보내진, 원하는 명령어/데이터와 함께 상기 더 낮은 L1 캐시(203)로 보내진다. FRC 신호(254)는, 공급된 명령어/데이터가 더 높은 레벨의 L2 캐시(208)에서의 히트에 기인하여 획득되었는지 여부를 나타낸다. 예컨대, "0" 상태에 있는 상기 FRC 신호(254)는 원하는 명령어/데이터가 상기 L2 캐시(208)로부터 공급되었다는 것을 나타낸다. "1" 상태에 있는 상기 FRC 신호(254)는, 원하는 명령어/데이터가 상기 L2 캐시(208) 이상의 다른 레벨의 메모리, 예컨대 상기 시스템 메모리(210)로부터 공급되었다는 것을 나타낸다. 예컨대, 상기 FRC 신호(254)는, 적절한 캐시 라인, 예컨대, 라인들(215- 217)과 관련된 태그와 함께 FRC 비트들(256-258)로서 상기 L1 캐시(203)에 저장된다. 요청된 라인이 상기 L2 캐시(208) 및 상기 L1 캐시(203)에서 미스일 때에, 상기 L2 캐시(208)가 미스의 시간에 라인을 할당하지 않음에 반하여, 상기 L1 캐시(203)는 상기 L2 캐시(208) 이상의 다음 레벨의 메모리에 의해 공급받는다.
더 낮은 레벨의 캐시가 라인을 변위시켜야 할 때에, 더 낮은 레벨의 캐시에서의 라인으로 저장된 정보에 응답하여, 라인이 다음 레벨의 캐시에 할당될 수 있다. 예컨대, 더 낮은 레벨의 캐시, 예컨대 상기 L1 캐시(203)가 더티 표시 ― "1" 상태에서의 더티 비트(259)에 의해 나타내어지는 바와 같이 ― 를 이용하여 변이될 라인, 예컨대 캐시 라인(215)을 선택할 때에, 상기 캐스트아웃 논리 회로(212)는 캐시 라인(215)이 다음 레벨의 메모리 계층으로 할당되어야 한다는 결정을 한다. 더티하지 않은 캐시 라인, 예컨대 "0" 상태에서의 더티 비트(260)를 가지는 캐시 라인(216)이 변위되기 위해 선택되고 그것의 관련된 FRC 비트(256)가 "1" 상태로 액티브하게 설정되면, 상기 캐시 라인(216)이 또한 다음 레벨의 메모리 계층으로 할당된다. 라인이 파일 목록에서 발견되지 않는 다음 레벨의 메모리 계층에 의해 제공되는 FRC 신호(254) 표시에 응답하여, 상기 FRC 비트(256)가 설정된다. 변위시키기 위해 선택된 캐시 라인, 예컨대 "0" 상태에서의 더티 비트(261)를 가지는 캐시 라인(217)이 더티하지 않고 관련된 FRC 비트(258)가 "0" 상태로 액티브하지 않게 설정되면, 상기 캐시 라인(217)은 다음 레벨의 메모리 계층으로 할당되지 않는다. 더티하지 않은 라인, 및 액티브하지 않은 상태에 의하여 이 캐시 라인(217)이 다음 레벨의 메모리 계층에 존재한다는 것을 나타내는 상기 FRC 비트(258) 때문에, 캐스트아웃이 필요하지 않다. 즉, 상기 더티 비트가 설정되거나 또는 상기 FRC 비트가 설정될 때에, 더 낮은 레벨에서의 변위된 캐시 라인에 응답하여 더 높은 레벨의 캐시가 캐시 라인을 할당한다. 상기 FRC 비트의 그러한 이용을 통하여, 중복적인 캐스트아웃들이 억제되고, 그 결과 상위 레벨의 메모리 계층으로의 불필요한 액세스들을 방지함으로써 전력 및 액세스 사이클들을 줄인다.
도 3은, 캐스트아웃들을 감소시키기 위한 프로세스(300)를 설명하는 순서도이다. 프로세스(300)에서, 메모리 레벨은 인덱스들((X), (X+1), 또는 (X+2))로 나타내고, 예컨대 여기서 X=1이면 L1, L2 및 L3의 메모리 레벨이 표시될 수 있다. 또한, 프로세스(300)의 블록들의 설명들은, 도 2에서의 기능적 엘리먼트들로의 참조 번호들을 포함한다.
블록 302에서, 상기 프로세스(300)는 명령어 또는 데이터 유닛을 페치하는 프로세서, 예컨대 프로세서(202)로 개시된다. 판단 블록(304)에서, 요청된 상기 명령어/데이터가 L(X) 캐시, 예컨대 상기 L1 캐시(203)에서 찾을 수 있는지가 결정된다. 상기 명령어/데이터가 위치할 수 있으면, 블록 306에서 상기 요청된 명령어/데이터가 상기 L(X) 캐시로부터 페치되고, 블록 308에서 상기 명령어/데이터가 상기 프로세서로 리턴된다.
상기 명령어/데이터가 상기 L(X) 캐시에서 찾아낼 수 없으면 미스 표시가 생성되고, 블록 310에서 상기 요청된 명령어/데이터가 L(X+1) 캐시, 예컨대 상기 L2 캐시(208)에서 찾을 수 있는지가 결정된다. 상기 명령어/데이터를 찾을 수 있으면, 블록 316에서, 요청된 명령어/데이터가 상기 L(X+1) 캐시로부터 페치된다. 블록 318에서, 상기 L1 캐시(203)가 명령어/데이터가 상기 L2 캐시(208)로 보내지는 것을 방지하기 위해서, 상기 강제 대체 캐스트아웃(FRC) 비트, 예컨대 FRC 비트(258)는, 상기 L1 캐시(203)의 태그 라인, 예컨대 캐시 라인(217)과 관련된 태그라인에서 "0" 상태로 설정된다. 그러면, 상기 프로세스(300)는 판단 블록(320)으로 진행한다.
블록 310으로 돌아와서, 명령어/데이터가 상기 L(X+1)에서 찾을 수 없으면, 미스 표시가 생성된다. 블록 312에서, L(X+2) 레벨과 동일하거나 더 큰 레벨, 예컨대 상기 프로세서 및 메모리 컴플렉스(200)의 상기 L3 캐시 또는 상기 시스템 메모리(210)의 메모리 계층으로부터 요청된 명령어/데이터가 페치된다. 예컨대, 블록 314에서, 상기 FRC 비트, 예컨대 FRC 비트(256)는 "1" 상태로 설정되고, 선택된 라인, 예컨대 캐시 라인(216)과 관련된 태그와 함께 저장된다.
판단 블록 320에서, L(X) 라인, 예컨대 상기 L1 캐시(203)에서 라인이 대체되어야 하는지가 결정된다. 상기 L(X) 라인에서 라인이 대체되어야 하는 것으로 결정되면, 블록 322에서 선택된 라인, 즉 빅팀 라인이 "1" 상태의 더티 비트(259)에 의해 표시되는 바와 같이 더티한지가 더 결정된다. 상기 선택된 빅팀 라인이 더티하면, 블록 324에서 상기 빅팀 라인이 상기 L(X+1) 캐시, 예컨대 상기 L2 캐시(208)에 할당된다. 더티 비트들(260 및 261)에 의해 표시되는 바와 같이, 상기 선택된 빅팀 라인이 더티하지 않으면, 판단 블록 326에서 상기 FRC 비트가 액티브하게 설정되었는지를 결정하기 위해 상기 FRC 비트가 체크된다. 블록 326에서, 상기 FRC 비트가 FRC 비트(256)의 경우처럼 액티브하게 설정된 것으로 결정되면, 블 록 324에서 상기 빅팀 라인은 상기 L(X+1) 캐시, 예컨대 상기 L2 캐시(208)에 할당된다.
블록 320에서 라인이 대체되어야 하지 않는 것으로 결정되거나 또는 블록 326에서 FRC 비트(258)의 경우와 같이 FRC 비트가 액티브하지 않은 것, 예컨대 "0" 상태로 결정되면, 블록 328에서 상기 명령어/데이터가 상기 L(X) 캐시, 예컨대 상기 L1 캐시(203)에 할당된다. 또한, 블록 330에서, 상기 요청된 명령어/데이터는 상기 요청 프로세서, 예컨대 프로세서(202)로 리턴된다. 이러한 방법으로, 상기 L(X+1) 캐시로의 중복된 캐스트아웃이 방지되고, 그 결과 전력을 감소시키고 메모리 계층에서의 캐시 액세스 대역폭을 향상시킨다.
본 명세서에서의 개시와 관련하여 기술되는 다양한 예시적인 논리 블록들, 모듈들, 및 회로들이, 설계된 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 다른 프로그래머블 논리 장치, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 컴포넌트들, 또는 이러한 기능들을 구현하도록 설계된 것들의 조합을 통해 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서 일 수 있지만, 대안적 실시예에서, 상기 프로세서는 기존 프로세서, 컨트롤러, 마이크로컨트롤러, 또는 상태 머신일 수 있다. 예컨대, 프로세서는 DSP 및 마이크로프로세서, 다수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서, 또는 이러한 구성들의 조합과 같은 계산 장치들의 조합으로서 구현될 수 있다.
상술한 방법의 단계들은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨 어 모듈에서, 또는 이들의 조합에 의해 직접 구현될 수 있다. 소프트웨어 모듈들은 랜덤 액세스 메모리(RAM), 플래쉬 메모리, 판독 전용 메모리(ROM), 전기적 프로그래머블 ROM(EPROM), 전기적 소거가능한 프로그래머블 ROM(EEPROM), 레지스터, 하드디스크, 휴대용 디스크, 콤팩트 디스크 ROM(CD-ROM), 또는 공지된 저장 매체의 임의의 형태에 존재한다. 저장매체는 프로세서와 결합되어, 프로세서는 저장 매체로부터 정보를 판독하여 저장 매체에 정보를 기록한다. 대안적으로, 저장 매체는 프로세서의 구성요소일 수 있다.
본 발명이 명령어 캐시들, 데이터 캐시들 및 다른 타입의 캐시들에 대한 예시적 실시예들의 상황에서 기술되었지만, 상기한 설명들 이하의 청구항들과 일관된 광범위하고 다양한 구현들이 당업자들에 의해서 채택될 수 있음이 이해될 것이다.

Claims (20)

  1. 변위된 캐시 라인들의 할당을 감소시키기 위한 추적 방법으로서,
    다음의 더 높은 레벨의 캐시(L(X+1))에서의 페치 어드레스 히트(hit)를 가지는 메모리 액세스에 응답하여 더 낮은 레벨의 캐시(L(X))에서 변위될 선택된 라인에 액세스하는 단계;
    상기 선택된 라인과 관련되고, 상기 선택된 라인이 상기 다음의 더 높은 레벨의 캐시(L(X+1))에 존재하지 않는다는 것을 나타내는 정보를 식별하는 단계; 및
    상기 다음의 더 높은 레벨의 캐시(L(X+1))에서의 상기 페치 어드레스 히트를 가지는 상기 메모리 액세스에 대하여, 상기 식별된 정보 및 상기 더 낮은 레벨의 캐시(L(X))에서의 캐시 라인과 관련된 할당 표시에 응답하여 상기 다음의 더 높은 레벨의 캐시(L(X+1))에 상기 선택된 라인을 할당하는 단계 ― 상기 할당 표시는 상기 다음의 더 높은 레벨의 캐시(L(X+1))에 상기 캐시 라인이 존재한다는 것을 의미함 ― 를 포함하는,
    변위된 캐시 라인들의 할당을 감소시키기 위한 추적 방법.
  2. 제1항에 있어서,
    상기 더 낮은 레벨의 캐시(L(X))에서의 미스(miss)에 응답하여, 상기 미스에 기인하는 상기 더 낮은 레벨의 캐시(L(X))에 할당되는 상기 캐시 라인의 태그를 가지는 할당 표시를 세이브하는 단계를 더 포함하는,
    변위된 캐시 라인들의 할당을 감소시키기 위한 추적 방법.
  3. 제1항에 있어서,
    상기 선택된 라인을 더티(dirty)한 것으로서 식별하는 단계를 더 포함하는,
    변위된 캐시 라인들의 할당을 감소시키기 위한 추적 방법.
  4. 제1항에 있어서,
    상기 식별된 정보가 상기 선택된 라인이 상기 다음의 더 높은 레벨의 캐시(L(X+1))에 존재하지 않는다는 것을 의미하는, 상기 선택된 라인과 관련된 어서트(assert)된 강제 대체 캐스트아웃(force replacement castout bit : FRC) 비트를 포함함을 결정하는 단계를 더 포함하는,
    변위된 캐시 라인들의 할당을 감소시키기 위한 추적 방법.
  5. 제1항에 있어서,
    상기 선택된 라인을 더티하지 않은 것으로서 식별하는 단계를 더 포함하는,
    변위된 캐시 라인들의 할당을 감소시키기 위한 추적 방법.
  6. 제1항에 있어서,
    상기 다음의 더 높은 레벨의 캐시(L(X+1))로부터 데이터 유닛을 페치하는 단계; 및
    상기 데이터 유닛이 상기 다음의 더 높은 레벨의 캐시(L(X+1))에 존재한다는 것을 의미하는 상태로 상기 할당 표시를 설정하는 단계를 더 포함하는,
    변위된 캐시 라인들의 할당을 감소시키기 위한 추적 방법.
  7. 제1항에 있어서,
    상기 다음의 더 높은 레벨의 캐시(L(X+1)) 이상의 메모리 계층의 레벨로부터 데이터 유닛을 페치하는 단계; 및
    상기 데이터 유닛이 상기 다음의 더 높은 레벨의 캐시(L(X+1))에 존재하지 않는다는 것을 의미하는 상태로 상기 할당 표시를 설정하는 단계를 더 포함하는,
    변위된 캐시 라인들의 할당을 감소시키기 위한 추적 방법.
  8. 제1항에 있어서,
    상기 다음의 더 높은 레벨의 캐시(L(X+1))는 빅팀 캐시로서 동작하는,
    변위된 캐시 라인들의 할당을 감소시키기 위한 추적 방법.
  9. 캐스트아웃들을 감소시키기 위한 방법으로서,
    레벨 X+1의 캐시에서의 페치 어드레스 히트를 가지는 메모리 액세스에 응답하여 레벨 X의 캐시에서 변위될 선택된 라인에 액세스하는 단계;
    상기 레벨 X+1의 캐시에서 상기 페치 어드레스 히트를 가지는 상기 메모리 액세스에 대하여, 상기 선택된 라인이 상기 레벨 X+1의 캐시 및 캐시 라인에 존재하지 않음을 나타내는 상기 선택된 라인의 할당 비트 및 상기 레벨 X의 캐시에서의 캐시 라인과 관련된 할당 비트에 응답하여 상기 레벨 X+1의 캐시에 상기 선택된 라인을 할당하는 단계 ― 상기 레벨 X의 캐시에서의 캐시 라인과 관련된 할당 비트는 상기 레벨 X의 캐시에서의 캐시 라인이 상기 레벨 X+1의 캐시에 존재한다는 것을 의미함 ― 를 포함하는,
    캐스트아웃들을 감소시키기 위한 방법.
  10. 제9항에 있어서,
    상기 선택된 라인을 더티한 것으로서 식별하는 단계를 더 포함하는,
    캐스트아웃들을 감소시키기 위한 방법.
  11. 제9항에 있어서,
    상기 선택된 라인의 할당 비트가 상기 선택된 라인이 상기 레벨 X+1의 캐시에 존재하지 않는다는 것을 나타내고, 더티 비트가 상기 선택된 라인이 더티하지 않다는 것을 나타냄을 결정하는 단계를 더 포함하는,
    캐스트아웃들을 감소시키기 위한 방법.
  12. 제9항에 있어서,
    상기 선택된 라인을 더티하지 않은 것으로서 식별하는 단계를 더 포함하는,
    캐스트아웃들을 감소시키기 위한 방법.
  13. 제9항에 있어서,
    상기 레벨 X+1의 캐시로부터 데이터 유닛을 페치하는 단계; 및
    상기 데이터 유닛이 상기 레벨 X+1의 캐시에 존재한다는 것을 의미하는 상태로 상기 레벨 X의 캐시에서의 캐시 라인과 관련된 할당 비트를 설정하는 단계를 더 포함하는,
    캐스트아웃들을 감소시키기 위한 방법.
  14. 제9항에 있어서,
    상기 레벨 X+1의 캐시 이상의 메모리 계층의 레벨로부터 데이터 유닛을 페치하는 단계; 및
    상기 데이터 유닛이 상기 레벨 X+1의 캐시에 존재하지 않는다는 것을 의미하는 상태로 상기 레벨 X의 캐시에서의 상기 캐시 라인과 관련된 상기 할당 비트를 설정하는 단계를 더 포함하는,
    캐스트아웃들을 감소시키기 위한 방법.
  15. 제9항에 있어서,
    상기 선택된 라인은
    상기 레벨 X+1의 캐시의 최근에 사용된 대체 정책(replacement policy)에 의해 결정되는 상기 레벨 X+1의 캐시 내의 어드레스에 할당되는,
    캐스트아웃들을 감소시키기 위한 방법.
  16. 다수의 캐시 레벨들을 가지는 메모리 시스템으로서,
    각각이 할당 비트를 가지는 다수의 제 1 캐시 라인들을 저장하도록 구성되는 더 낮은 레벨의 캐시(L(X)) ― 각각의 할당 비트는 상기 할당 비트와 관련된 상기 제 1 캐시 라인들 중 하나가 다음의 더 높은 레벨의 캐시(L(X+1))에 할당되었는지 여부를 나타냄 ― ; 및
    상기 다음의 더 높은 레벨의 캐시(L(X+1))에서의 페치 어드레스 히트를 가지는 메모리 액세스에 응답하여 선택된 제 1 캐시 라인과 관련된 상기 할당 비트에 기초하여, 상기 다수의 제 1 캐시 라인들로부터 변위를 위해 선택된 제 1 캐시 라인이 상기 다음의 더 높은 레벨의 캐시(L(X+1))에서의 캐시 라인과 중복되는 캐시 라인인지의 여부를 결정하고, 상기 선택된 제 1 캐시 라인이 상기 다음의 더 높은 레벨의 캐시(L(X+1))에서의 캐시 라인과 중복됨을 나타내는 상기 선택된 제 1 캐시 라인의 상기 할당 비트에 응답하여 상기 다음의 더 높은 레벨의 캐시(L(X+1))로의 상기 선택된 제 1 캐시 라인의 캐스트아웃을 방지하며, 상기 다음의 더 높은 레벨의 캐시(L(X+1))에서의 상기 페치 어드레스 히트를 가지는 상기 메모리 액세스에 대하여 상기 선택된 제 1 캐시 라인이 상기 다음의 더 높은 레벨의 캐시(L(X+1))에 존재하지 않는다는 것을 나타내는 할당 비트에 기초하여, 상기 선택된 제 1 캐시 라인을 상기 다음의 더 높은 레벨의 캐시(L(X+1))로 캐스트아웃하도록 ― 캐시 라인 및 관련된 할당 비트는 상기 다음의 더 높은 레벨의 캐시(L(X+1))에서의 상기 페치 어드레스 히트를 가지는 상기 메모리 액세스에 대하여 상기 더 낮은 레벨 캐시에 저장되고, 상기 관련된 할당 비트는 상기 선택된 제 1 캐시 라인이 상기 다음의 더 높은 레벨의 캐시(L(X+1))에 존재한다는 것을 의미함 ― 구성되는 캐스트아웃 논리 회로를 포함하는,
    메모리 시스템.
  17. 제16항에 있어서,
    상기 다음의 더 높은 레벨의 캐시(L(X+1))는,
    다수의 제 2 캐시 라인들; 및
    상기 더 낮은 레벨의 캐시(L(X))에서의 미스에 응답하여, 상기 미스와 관련된 캐시 라인이 상기 다음의 더 높은 레벨의 캐시(L(X+1))에 할당되었는지 여부에 기초하여 할당 신호를 생성하도록 구성되는 논리 회로 ― 상기 할당 신호는 상기 미스와 관련된 캐시 라인에서의 상기 할당 비트로서 저장을 위해 상기 더 낮은 레벨의 캐시(L(X))로 전달됨 ― 를 포함하는,
    메모리 시스템.
  18. 제17항에 있어서,
    상기 캐스트아웃 논리 회로는, 상기 할당 신호의 상태로 상기 할당 비트를 설정하는 것을 더 포함하는,
    메모리 시스템.
  19. 제16항에 있어서,
    상기 더 낮은 레벨의 캐시(L(X))는 데이터 캐시인,
    메모리 시스템.
  20. 제17항에 있어서,
    상기 다음의 더 높은 레벨의 캐시(L(X+1))는 포괄적인 캐시(inclusive cache)인,
    메모리 시스템.
KR1020097018158A 2007-01-31 2008-01-30 멀티-레벨 캐시 계층에서의 캐스트아웃들을 감소시키기 위한 장치 및 방법들 KR101165132B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/669,245 2007-01-31
PCT/US2008/052507 WO2008095025A1 (en) 2007-01-31 2008-01-30 Apparatus and methods to reduce castouts in a multi-level cache hierarchy
US11/669,245 US8078803B2 (en) 2008-01-30 2008-01-30 Apparatus and methods to reduce castouts in a multi-level cache hierarchy

Publications (2)

Publication Number Publication Date
KR20090115799A KR20090115799A (ko) 2009-11-06
KR101165132B1 true KR101165132B1 (ko) 2012-07-12

Family

ID=39512778

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018158A KR101165132B1 (ko) 2007-01-31 2008-01-30 멀티-레벨 캐시 계층에서의 캐스트아웃들을 감소시키기 위한 장치 및 방법들

Country Status (10)

Country Link
US (2) US8078803B2 (ko)
EP (2) EP2118754B1 (ko)
JP (4) JP2010518487A (ko)
KR (1) KR101165132B1 (ko)
CN (2) CN101595462B (ko)
BR (1) BRPI0806865A2 (ko)
CA (1) CA2675046C (ko)
MX (1) MX2009008092A (ko)
RU (1) RU2438165C2 (ko)
WO (1) WO2008095025A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010518487A (ja) 2008-01-30 2010-05-27 クゥアルコム・インコーポレイテッド マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
JP2010113593A (ja) 2008-11-07 2010-05-20 Sony Corp 情報処理装置、情報処理方法及び情報処理プログラム
WO2010052799A1 (ja) * 2008-11-10 2010-05-14 富士通株式会社 情報処理装置及びメモリ制御装置
US20110202727A1 (en) * 2010-02-18 2011-08-18 Qualcomm Incorporated Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache
US9201794B2 (en) * 2011-05-20 2015-12-01 International Business Machines Corporation Dynamic hierarchical memory cache awareness within a storage system
US9021206B2 (en) 2011-08-25 2015-04-28 International Business Machines Corporation Use of cache statistics to ration cache hierarchy access
KR101862785B1 (ko) * 2011-10-17 2018-07-06 삼성전자주식회사 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법
WO2014111984A1 (ja) 2013-01-17 2014-07-24 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびファイル管理方法
KR20150132099A (ko) * 2013-03-20 2015-11-25 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 서로 다른 계층 레벨의 메모리 노드를 가진 메모리 시스템에서의 데이터 캐싱
US9854052B2 (en) * 2013-09-27 2017-12-26 Sap Se Business object attachments and expiring URLs
JP2015088146A (ja) * 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
JP2015176245A (ja) 2014-03-13 2015-10-05 株式会社東芝 情報処理装置及びデータ構造
US10216640B2 (en) 2014-03-21 2019-02-26 Samsung Electronics Co., Ltd. Opportunistic cache injection of data into lower latency levels of the cache hierarchy
CN104932989B (zh) * 2014-03-21 2020-05-19 三星电子株式会社 数据到高速缓冲层次低延迟层级中的机会性高速缓冲注入
JP2016057763A (ja) 2014-09-08 2016-04-21 株式会社東芝 キャッシュ装置、及びプロセッサ
US9684602B2 (en) 2015-03-11 2017-06-20 Kabushiki Kaisha Toshiba Memory access control device, cache memory and semiconductor device
KR101697515B1 (ko) * 2015-12-15 2017-01-18 전남대학교산학협력단 캐시 라인의 태그 거리 상관관계를 이용한 캐시 교체 방법 및 임베디드 시스템
CN109074320B (zh) * 2017-03-08 2023-11-17 华为技术有限公司 一种缓存替换方法,装置和系统
JP7139719B2 (ja) * 2018-06-26 2022-09-21 富士通株式会社 情報処理装置、演算処理装置及び情報処理装置の制御方法
US11782919B2 (en) * 2021-08-19 2023-10-10 International Business Machines Corporation Using metadata presence information to determine when to access a higher-level metadata table

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein
US5737751A (en) 1996-03-26 1998-04-07 Intellectual Business Machines Corporation Cache memory management system having reduced reloads to a second level cache for enhanced memory performance in a data processing system
US5787478A (en) * 1997-03-05 1998-07-28 International Business Machines Corporation Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy
US6374330B1 (en) 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US6202129B1 (en) 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
TW451132B (en) * 1998-12-15 2001-08-21 Nippon Electric Co System and method for cache processing
US6564301B1 (en) * 1999-07-06 2003-05-13 Arm Limited Management of caches in a data processing apparatus
US6282615B1 (en) * 1999-11-09 2001-08-28 International Business Machines Corporation Multiprocessor system bus with a data-less castout mechanism
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
US6941421B2 (en) * 2002-10-29 2005-09-06 International Business Machines Corporation Zero delay data cache effective address generation
JP2006155080A (ja) * 2004-11-26 2006-06-15 Fujitsu Ltd メモリ制御装置およびメモリ制御方法
US20060155934A1 (en) * 2005-01-11 2006-07-13 Ramakrishnan Rajamony System and method for reducing unnecessary cache operations
US7330941B2 (en) 2005-03-23 2008-02-12 Qualcomm Incorporated Global modified indicator to reduce power consumption on cache miss
DE102005015116A1 (de) 2005-04-01 2006-10-05 Webasto Ag Kraftfahrzeugheizung
JP2010518487A (ja) 2008-01-30 2010-05-27 クゥアルコム・インコーポレイテッド マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
US20110202727A1 (en) 2010-02-18 2011-08-18 Qualcomm Incorporated Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache

Also Published As

Publication number Publication date
BRPI0806865A2 (pt) 2014-04-29
EP2527987A1 (en) 2012-11-28
JP2010518487A (ja) 2010-05-27
WO2008095025A1 (en) 2008-08-07
RU2009132554A (ru) 2011-03-10
JP2017033584A (ja) 2017-02-09
US20120059995A1 (en) 2012-03-08
CN101595462A (zh) 2009-12-02
CA2675046A1 (en) 2008-08-07
US8386716B2 (en) 2013-02-26
EP2118754A1 (en) 2009-11-18
CN102693187A (zh) 2012-09-26
US20080183967A1 (en) 2008-07-31
JP2013069322A (ja) 2013-04-18
CN102693187B (zh) 2016-03-30
CA2675046C (en) 2013-07-30
JP2015111435A (ja) 2015-06-18
CN101595462B (zh) 2012-04-25
US8078803B2 (en) 2011-12-13
EP2118754B1 (en) 2013-07-03
KR20090115799A (ko) 2009-11-06
JP6392286B2 (ja) 2018-09-19
RU2438165C2 (ru) 2011-12-27
MX2009008092A (es) 2009-08-12
JP6009589B2 (ja) 2016-10-19

Similar Documents

Publication Publication Date Title
KR101165132B1 (ko) 멀티-레벨 캐시 계층에서의 캐스트아웃들을 감소시키기 위한 장치 및 방법들
US10019368B2 (en) Placement policy for memory hierarchies
US8930625B2 (en) Weighted history allocation predictor algorithm in a hybrid cache
US7552288B2 (en) Selectively inclusive cache architecture
US8788757B2 (en) Dynamic inclusive policy in a hybrid cache hierarchy using hit rate
US8473689B2 (en) Predictive sequential prefetching for data caching
US8843707B2 (en) Dynamic inclusive policy in a hybrid cache hierarchy using bandwidth
US8095734B2 (en) Managing cache line allocations for multiple issue processors
US20140181402A1 (en) Selective cache memory write-back and replacement policies
US20080059707A1 (en) Selective storage of data in levels of a cache memory
US7809889B2 (en) High performance multilevel cache hierarchy
US7380068B2 (en) System and method for contention-based cache performance optimization
US20110202727A1 (en) Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache
US20110055482A1 (en) Shared cache reservation
US20180052778A1 (en) Increase cache associativity using hot set detection
CN117971731A (zh) Lru近似算法的硬件实现装置、lru值的更新方法及装置

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
FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 6