KR101079970B1 - 프로세서에서 캐시 정책을 설정하기 위한 방법 및 장치 - Google Patents

프로세서에서 캐시 정책을 설정하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101079970B1
KR101079970B1 KR1020097017373A KR20097017373A KR101079970B1 KR 101079970 B1 KR101079970 B1 KR 101079970B1 KR 1020097017373 A KR1020097017373 A KR 1020097017373A KR 20097017373 A KR20097017373 A KR 20097017373A KR 101079970 B1 KR101079970 B1 KR 101079970B1
Authority
KR
South Korea
Prior art keywords
cache
cache policy
policy information
processor
memory device
Prior art date
Application number
KR1020097017373A
Other languages
English (en)
Other versions
KR20090108716A (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 KR20090108716A publication Critical patent/KR20090108716A/ko
Application granted granted Critical
Publication of KR101079970B1 publication Critical patent/KR101079970B1/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 명세서에서 제시되는 방법들 및 장치에 따라, 메모리 동작 동안 액세스되는 타깃 메모리 디바이스와 연관된 캐시 정책 정보를 이용하여 프로세서 캐시 정책들이 결정된다. 프로세서의 일 실시예에 따라, 프로세서는 적어도 하나의 캐시 및 메모리 관리 유닛을 포함한다. 적어도 하나의 캐시는 프로세서에 대해 로컬로 정보를 저장하도록 구성된다. 메모리 관리 유닛은 적어도 하나의 캐시에 대한 하나 이상의 캐시 정책들을 설정하도록 구성된다. 메모리 관리 유닛은 프로세서에 의해 사용되는 정보를 저장하도록 구성된 하나 이상의 타깃 메모리 디바이스들과 연관된 캐시 정책 정보에 기초하여 하나 이상의 캐시 정책들을 설정한다.

Description

프로세서에서 캐시 정책을 설정하기 위한 방법 및 장치{METHOD AND APPARATUS FOR SETTING CACHE POLICIES IN A PROCESSOR}
본 발명은 일반적으로 프로세서에서의 캐시(caching) 동작들에 관한 것으로서, 특히 캐시 정책(cache policy)들의 결정에 관한 것이다.
프로세서 성능은 빈번하게 액세스되는 또는 가장 최근에 사용된 정보를 저장하기 위해 하나 이상의 레벨의 캐시를 프로세서에 국부적으로 포함함으로써 개선된다. 프로세서 캐시는 DRAM 또는 하드디스크 드라이브와 같은 메인 메모리에 저장되는 선택 정보(select information)의 카피(copy)를 저장하는 작고 빠른 메모리이다. 명령이 메모리 위치에 액세스할 때, 프로세서는 우선 메모리 위치가 로컬 캐시에 복사(replicate)되었는지를 검사한다. 특히, 메모리 액세스와 연관된 어드레스가 캐시의 모든 태그들과 비교된다. 원하는 메모리가 캐시에 위치된 경우, 캐시 히트(cache hit)가 발생한다. 그렇지 않으면, 캐시 미스(cache miss)가 발생한다.
캐시 히트가 발생할 때, 프로세서는 식별된 캐시 라인에서 데이터 또는 명령들과 같은 정보를 즉시 판독 또는 기록한다. 캐시 미스의 발생시에는, 보다 상위-레벨 캐시 또는 메인 메모리로부터 원하는 정보가 리트리브(retrieve)된다. 또한, 새롭게 리트리브된 정보를 저장하기 위해 통상적으로 캐시에 새로운 엔트리(entry)가 할당된다. 새로운 엔트리는 캐시 미스를 유발한 어드레스를 식별하는 태그, 및 메인 메모리로부터 리트리브되는 정보의 카피를 포함한다.
새로운 캐시 엔트리를 수용하기 위해, 기존 엔트리가 캐시로부터 철회(evict)된다. 캐시로부터 철회할 엔트리를 선택하는데 사용되는 발견적 방법(heuristic)은 최근 최소 사용(least recently used) 또는 선입(first-in) 선출(first-out)과 같은 교체 정책(replacement policy)을 기반으로 한다. 캐시가 어떻게 액세스되고 사용되며 유지되는지를 결정하기 위해 다른 캐시 정책들(캐시 속성들로도 지칭됨) 또한 이용된다. 다른 캐시 정책들은 기록 정책(write policy)들, 할당 정책(allocation policy)들, 캐시 레벨 정책들 및 주문형 정책(customized policy)들을 포함한다.
기록 정책들은 캐시 블록에 기록된 정보가 언제 메인 메모리에도 기록되는지를 결정한다. 예를 들어, 바로 쓰기 정책(write-through policy)이 사용될 때 캐시 및 메인 메모리는 동시에 업데이트된다. 후기록 정책(write-back policy)이 사용될 때, 메인 메모리는 대응하는 캐시 블록이 교체될 때에만 업데이트된다. 1회-기록 정책(write-once policy)은 특정 캐시 블록으로의 최초 기록을 위해 바로 쓰기 정책을 그리고 동일한 블록으로의 후속적인 기록들을 위해 후기록 정책을 사용한다.
캐시 할당 정책은 캐시 블록이 언제 기록되는지를 결정한다. 예를 들어, 특정 캐시 블록과 연관된 할당 정책이 "판독 전용 할당(allocate on read only)"이라면, 기록 동안에는 블록이 분배되지 않는다. 대조적으로, 할당 정책이 "기록 및 판독 할당(allocate on read and write)"인 경우에는 기록들 및 판독들 동안 캐시 블록이 업데이트된다. 제 1 레벨 명령 및 데이터 캐시들과 같은 다수 레벨들의 캐시들, 및 적어도 하나의 보다 상위 레벨 캐시를 갖는 프로세서들에서, 캐시 레벨 정책은 정보를 저장하기 위해 어떤 레벨의 캐시가 사용되는지를 결정한다. 예를 들어, 명령들은 제 1 레벨 명령 캐시에 저장될 수 있는 반면에, 다른 정보는 제 2 레벨 캐시에만 저장될 수 있다.
캐시 정책들은 통상적으로 페이지 테이블(page table)에 저장된다. 페이지 테이블은 메인 메모리에 유지되며, 빈번하게 액세스되거나 가장 최근에 사용된 엔트리들이 프로세서에 국한적으로, 예를 들어 TLB(Translation Lookaside Buffer)에 저장된다. 각각의 페이지 테이블 엔트리는 가상 어드레스를 대응하는 물리적 어드레스에 맵핑한다. 특히, 페이지 테이블은 가상 페이지 번호들(numbers) 및 대응하는 물리적 페이지 번호들의 리스트를 저장한다. 가상 페이지 번호들은 프로세서에서 실행되는 프로세스들에 할당된 가상 메모리의 각각의 블록들을 식별하는 반면에, 물리적 페이지 번호들은 프로세스들에 의해 사용되는 실제 정보를 포함하는 물리적 메모리의 대응하는 블록들을 식별한다.
프로세서가 특정 메모리 위치에 액세스할 때, 페이지 테이블 엔트리들은 액세스의 일부로서 제공되는 가상 어드레스의 가상 페이지 번호 부분을 이용하여 검색(search)된다. 물리적 페이지 번호는 매칭하는 페이지 테이블 엔트리로부터 리트리브된다. 물리적 페이지 번호 및 페이지 오프셋은 원하는 메모리 위치에 액세스하기 위해 사용되는 물리적 어드레스를 형성한다.
원하는 메모리 위치가 로컬 프로세서 캐시 내에 포함되지 않는다면, 메인 메모리가 액세스된다. 매칭 페이지 테이블 엔트리에 저장된 캐시 정책 정보는 메모리 액세스의 일부로서 메인 메모리에 기록되거나 메인 메모리로부터 판독되는 정보가 캐시에 국한적으로 저장되는지 여부를 결정하고, 그러하다면 어떻게 정보가 캐시에 유지되는지를 결정한다. 따라서 캐시 정책들은 통상적으로 페이지별(per-page)(또는 블록별) 기준으로 설정되어 캐시에 적용된다. 또한, 캐시 정책들은 통상적으로 운영 체제에 의해 프로그래밍된다. 따라서 캐시 정책들은 일반적으로 프로세서에서 실행하는 모든 프로세스에 적용되며, 특정 타입의 메인 메모리 디바이스에 의해 사용될 때 비효율성들을 초래할 수 있다. 예를 들어, "판독 전용 할당" 캐시 할당 정책은 그래픽 애플리케이션들과 같은 어떤 프로세스들에 대한 캐시 사용은 최적화할 수 있지만 그 외의 것들에 대해서는 그렇지 않다.
본 명세서에서 제시되는 방법들 및 장치에 따라, 프로세서 캐시 정책들은 특정 메모리 동작 동안 액세스되는 타깃 메모리 디바이스와 연관된 캐시 정책 정보를 이용하여 결정된다. 따라서 캐시 동작들은 일반적인 캐시 정책 설정들 대신에 특정한 메모리 디바이스 설정들에 맞춰질 수 있다. 프로세서 성능은 메모리 동작 동안 액세스되는 타깃 메모리 디바이스와 연관된 캐시 정책 정보에 기초하여 현재의 메모리 동작에 대한 캐시 정책들을 결정함으로써 개선된다.
프로세서의 일 실시예에 따라, 프로세서는 적어도 하나의 캐시 및 메모리 관리 유닛을 포함한다. 적어도 하나의 캐시는 프로세서에 국한된 정보를 저장하도록 구성된다. 메모리 관리 유닛은 적어도 하나의 캐시에 대한 하나 이상의 캐시 정책들을 설정하도록 구성된다. 메모리 관리 유닛은 프로세서에 의해 사용되는 정보를 저장하도록 구성된 하나 이상의 타깃 메모리 디바이스들과 연관된 캐시 정책 정보에 기초하여 하나 이상의 캐시 정책들을 설정한다.
시스템의 일 실시예에 따라, 시스템은 프로세서에 국한된 정보를 저장하도록 구성된 적어도 하나의 캐시를 갖는 프로세서; 상기 프로세서에 연결된 하나 이상의 타깃 메모리 디바이스들; 및 상기 프로세서에 포함되는 메모리 관리 유닛을 포함한다. 상기 하나 이상의 타깃 메모리 디바이스들은 상기 프로세서에 의해 사용되는 정보를 저장하도록 구성된다. 상기 메모리 관리 유닛은 상기 하나 이상의 타깃 메모리 디바이스들과 연관된 캐시 정책 정보에 기초하여 적어도 하나의 캐시에 대한 하나 이상의 캐시 정책들을 설정하도록 구성된다.
물론, 본 발명은 상기한 특징들과 장점들로 제한되지 않는다. 통상의 당업자는 이하의 상세한 설명을 읽고 첨부된 도면들을 볼 때 부가적인 특징들과 장점들을 인식할 것이다.
도 1은 캐시 정책들을 결정하기 위한 회로를 갖는 프로세서를 포함하는 시스템의 일 실시예를 도시하는 블록도이다.
도 2는 메모리 디바이스와 연관된 캐시 정책 정보를 제공하기 위한 어드레스 디코더 회로의 일 실시예를 도시하는 블록도이다.
도 3은 캐시 정책들을 결정하기 위한 회로를 갖는 프로세서를 포함하는 시스템의 다른 실시예를 도시하는 블록도이다.
도 4는 프로세서의 캐시 정책들을 결정하기 위한 회로의 일 실시예를 도시하는 블록도이다.
도 5는 프로세서의 캐시 정책들을 결정하기 위한 프로그램 로직의 일 실시예를 도시하는 로직 흐름도이다.
도 6은 도 4의 회로가 예시적인 기록 동작에 응답하여 캐시 정책들을 결정하는 방법을 도시하는 도면이다.
도 7은 도 4의 회로가 예시적인 판독 동작에 응답하여 캐시 정책들을 결정하는 방법을 도시하는 도면이다.
도 1은 동기식 DRAM(SDRAM: Synchronous Dynamic Random Access Memory)(20)과 동기식 그래픽 RAM(SGRAM: Synchronous Graphics Random Access Memory)(22)과 같은 DRAM과 하드디스크 드라이브(HDD)(18)와 같은 메인 메모리 및 하나 이상의 주변장치들(16)에 프로세서(14)를 연결하는 버스(12)를 포함하는 시스템(10)의 일 실시예를 도시한다. 프로세서(14)는 프로세서 코어(24), 데이터 및 명령 캐시들(26, 28), 제 2 레벨 캐시(L2)(30), 및 버스 인터페이스 유닛(32)을 포함한다. 프로세서 코어(24)는 명령 플로우(flow) 및 명령 실행의 중앙 집중 제어를 제공한다. 데이터 및 명령 캐시들(26, 28)은 데이터 및 명령들을 각각 저장한다. L2 캐시(30)는 데이터 및 명령 캐시들(26, 28)과, HDD(18), SDRAM(20) 및 SGRAM(22)과 같은 프로세서(14) 외부의 메인 메모리 사이에 고속 메모리 버퍼를 제공한다. 버스 인터페이스 유닛(32)은 주변장치들(16) 및 메인 메모리(18, 20, 22)와 같은 프로세서(14) 외부의 디바이스들과 프로세서(14) 간에 데이터, 명령들, 어드레스들, 및 제어 신호들을 전송하기 위한 메커니즘을 제공한다.
메인 메모리(18, 20, 22)는 프로세서(14)에서 실행하는 프로세스들에 대한 가상 메모리로서 표현된다. 즉, 물리적 메모리의 페이지들은 프로그램 실행 동안 프로세스들에 의한 사용을 위한 가상 메모리로서 할당된다. 메인 메모리(18, 20, 22)에는 가상 어드레스 공간과 물리적 어드레스 공간 간의 맵핑을 인에이블하기 위해, 예를 들어 도 1에 도시된 것처럼 페이지 테이블(34)이 유지된다. 프로세서(14)에 포함되는 메모리 관리 유닛(MMU)(36)은 페이지 테이블(34)에 액세스하고, 프로세서(14)에 의해 발생하는 메모리 액세스들을 처리하며, 메모리 액세스들은 가상 메모리 관리, 메모리 보호, 캐시 제어 및 버스 중재(bus arbitration)를 포함한다. 가상 메모리 관리의 일부로서, MMU(36)는 빈번하게 또는 최근에 참조된, 프로세서(14)에 국한된 페이지 테이블 엔트리(PTE)들을 예를 들어 TLB(Translation Lookaside Buffer)(38)에 유지한다.
프로세서(14)가 가상 어드레스에 의해 식별되는 원하는 메모리 위치에 액세스할 때, MMU(36)는 TLB(38)에 액세스하여 TLB(38)가 매칭 엔트리를 포함하는지 여부를 결정한다. 포함한다면, 가상 어드레스는 매칭 TLB 엔트리에 저장된 어드레스 변환(translation) 정보를 이용하여 물리적 어드레스로 변환된다. 그렇지 않은 경우, 매칭 엔트리가 페이지 테이블(34)에서 검색된다. 어떤 방식에서든, MMU(36)는 결과적인 물리적 어드레스에 기초하여 물리적으로-태그화된(tagged) 캐시들(26, 28, 30) 중 하나에서 캐시 탐색(lookup) 동작을 개시한다. 캐시들(26, 28, 30) 중 하나가 원하는 메모리 위치를 포함한다면, 대응하는 캐시 라인이 액세스되고, 예를 들어 캐시 라인으로부터 판독하거나 캐시 라인에 기록함으로써, 메모리 액세스가 완료된다. 그렇지 않으면, MMU(36)는 원하는 메모리 위치에 액세스하기 위해 메인 메모리(18, 20, 22)에 대한 메모리 액세스를 개시한다.
메인 메모리(18, 20, 22)는 원하는 메모리 위치를 식별하는 물리적 어드레스를 제공함으로써 액세스된다. 원하는 메모리 위치를 포함하는 메모리 디바이스는 본 명세서에서 타깃 메모리 디바이스로 지칭된다. 본 명세서에 개시되는 다양한 실시예들에 따르면, 타깃 메모리 디바이스는 시스템에 포함되는 임의의 어드레스 가능한 메모리 모듈, 디바이스 또는 뱅크를 포함할 수 있다. 예를 들어, 타깃 메모리 디바이스는 프로세서(14)에 의해 실행되는 특정 프로세스에 따라 SDRAM들(20), SGRAM들(22) 또는 다른 메모리 디바이스(미도시됨) 중 하나일 수 있다.
외부 메모리 액세스에 응답하여, 대응하는 타깃 메모리 디바이스와 연관된 캐시 정책 정보가 MMU(36)와 연관되거나 MMU(36)에 포함되는 캐시 정책 설정 회로(40)에 제공된다. 캐시 정책 설정 회로(40)는 대응하는 타깃 메모리 디바이스와 연관된 캐시 정책 정보에 기초하여 현재의 메모리 동작에 대한 캐시 정책 설정들을 결정한다. 이러한 방식으로, 프로세서(14)가 특정 외부 메모리 위치에 액세스할 때, 캐시 정책들은 원하는 메모리 위치를 포함하는 대응하는 타깃 메모리 디바이스에 맞춰진다.
예를 들어, 메모리 동작이 SGRAM 디바이스들(22) 중 하나에 관한 것이라면, 타깃 SGRAM 디바이스와 연관된 캐시 할당 정책은 상기 타깃 디바이스가 멀티미디어 애플리케이션에 대한 비디오 프레임 버퍼로서 기능할 때, "판독 전용 할당"일 수 있다. 프로세서(14)는 멀티미디어 애플리케이션의 실행 동안 타깃 SGRAM 디바이스에 빈번하게 기록될 수 있지만, 상기 디바이스로부터 판독되지는 않을 수 있다. 따라서 타깃 SGRAM 디바이스의 캐시 할당 정책은 프로세서 성능을 개선하기 위해 "판독 전용 할당"을 나타낼 수 있다. 타깃 메모리 디바이스의 캐시 정책 정보는 또한 특정한 교체 정책, 기록 정책, 할당 정책, 캐시 레벨 정책, 및/또는 하나 이상의 주문형 정책들을 나타낼 수 있다.
일 실시예에서, 타깃 메모리 디바이스와 연관된 캐시 정책 정보는 도 1에 도시된 것처럼 다양한 DRAM 디바이스들(20, 22)과 버스(12) 간에 인터페이스를 제공하는 메모리 제어기(42)에 의해 제공된다. 이러한 실시예에 따르면, 메모리 제어기(42)는 메모리 액세스들(예를 들어, 판독 또는 기록)의 일부로서 프로세서(14)에 의해 제공되는 물리적 메모리 어드레스들을 디코딩하기 위한 어드레스 디코더 회로(44)를 포함한다. 어드레스 디코더 회로(44)에 의해 생성되는 캐시 정책 정보는 특정 메모리 액세스의 일부로서 제공되는 물리적 메모리 어드레스의 함수(function)이다. 물리적 어드레스는 현재의 메모리 동작의 타깃인 메모리 위치를 포함하는 메모리 디바이스를 식별한다.
도 2는 어드레스 디코더 회로(44)의 일 실시예를 도시한다. 이러한 실시예에 따르면, 디코더 회로(44)는 어드레스 디코더(46), 멀티플렉서(48), 및 메모리 제어기(42)에 의해 지원되는 각각의 메모리 디바이스들(20, 22)과 연관된 다양한 엔트리들(52)을 갖는 테이블(50)을 포함한다. 각각의 테이블 엔트리(52)는 대응하는 메모리 디바이스와 연관된 캐시 정책 정보를 포함한다.
프로세서(14)가 외부 메모리에 액세스할 때, 액세스의 일부로서 포함되는 물리적 어드레스는 메모리 제어기(42)에 의해 지원되는 메모리 디바이스들(20, 22) 중 하나를 식별한다. 어드레스 디코더(46)는 물리적 어드레스를 디코딩하여, 멀티플렉서(48)로 하여금, 물리적 어드레스에 의해 식별되는 타깃 메모리 디바이스와 연관된 캐시 정책 정보를 포함하는 엔트리(52)를 선택하게 한다. 메모리 제어기(42)는 선택된 캐시 정책 정보를 버스(12) 및 버스 인터페이스 유닛(32)을 통하여 MMU(36)에 (예를 들어, 도 1에서 어드레스 디코더 회로(44)로부터 MMU(36)로 진행하는 점선으로 도시된 바와 같이) 제공한다. 캐시 정책 설정 회로(40)는 수신된 캐시 정책 정보를 사용하여 현재의 메모리 동작을 위한 캐시 정책들을 설정한다. 이러한 방식으로, 캐시 정책들은 타깃 메모리 디바이스의 함수로서 캐시 라인별 기준으로 설정될 수 있다.
다른 실시예에서, 캐시 정책 정보는 도 3에 도시된 것처럼 프로세서(14)에 포함되는 어드레스 디코더 회로(54)에 의해 제공된다. 이러한 실시예에 따르면, 어드레스 디코더 회로(54)는 예를 들어 도 2에 따라 이전에 설명한 것처럼, 가상 어드레스들 또는 물리적 어드레스들에 기초하여 캐시 정책 정보를 제공한다. 또 다른 실시예에서, 메모리 제어기(42)에 의해 지원되는 메모리 디바이스들(20, 22) 중 하나 이상은 자신들의 캐시 정책 정보를 예를 들어 디바이스 ID 레지스터 또는 다른 레지스터(미도시됨)에 저장한다. 타깃 메모리 디바이스가 메모리 제어기(42)에 의해 액세스될 때, 캐시 정책 정보는 이전에 기술된 것처럼 제어기(42)에 제공되고 프로세서(14)로 전달된다. 대안적으로, 캐시 정책 정보는 예를 들어 프로세서(14)의 리셋시에 또는 시스템 부팅 동안 자동으로, 요청(solicitation) 없이 프로세서(14)로 제공된다. 또한, 프로세서(14)는 수신시에 맞춰진 캐시 정책 정보를 저장할 수 있으며, 이에 따라 대응하는 타깃 메모리 디바이스가 후속적으로 액세스될 때 동일한 정보를 요청할 필요가 없다. 대신에, 프로세서(14)는 맞춰진 캐시 정책 정보를 내부적으로 리트리브하여 사용한다. 그럼에도, 캐시 정책 설정 회로(40)는 메모리 동작들 동안 타깃 메모리 디바이스 캐시 정책 정보를 사용하여 캐시 정책들을 설정한다.
도 4는 MMU(36)와 연관된 또는 MMU(36)에 포함되는 캐시 정책 설정 회로(40)의 일 실시예를 도시한다. 이러한 실시예에 따르면, 캐시 정책 설정 회로(40)는 현재의 메모리 동작에 관련된 캐시 정책들을 설정하기 위한 선택 회로(56)를 포함한다. 보다 상세하게는, (예를 들어, 도 1에서 페이지 테이블(34)로부터 MMU(36)로 진행하는 점선으로 도시된 바와 같이) 메모리 액세스의 일부로서 제공되는 가상 어드레스와 매칭하는 페이지 테이블 엔트리(PTE)(58)가 TLB(38) 또는 페이지 테이블(34)로부터 리트리브된다. 물리적 어드레스가 원하는 메모리 위치를 식별하는 매칭 PTE(58)에 저장된 어드레스 변환 정보(60)에 기초하여, 가상 어드레스가 대응하는 물리적 어드레스로 변환된다.
원하는 메모리 위치가 프로세서 캐시들(26, 28, 30) 중 하나에 위치하지 않는다면, MMU(36)는 외부 메모리 액세스를 개시한다. 요청에 응답하여, 메모리 제어기(42)는 변환된 물리적 어드레스에 기초하여 원하는 메모리 위치를 포함하는 타깃 메모리 디바이스를 식별한다. 프로세서(14)는 메모리 제어기(42)를 통하여 타깃 메모리 디바이스에 대한 액세스를 획득한다. 타깃 메모리 디바이스는 원하는 메모리 동작(예, 판독 또는 기록)을 수행한다. 또한, 타깃 메모리 디바이스와 연관된 캐시 정책 정보가 예를 들어 도 5의 단계(100)에 예시된 것처럼, 메모리 동작의 일부로서 캐시 정책 설정 회로(40)에 제공되고 버퍼(62)에 저장된다.
선택 회로(56)는 예를 들어 도 5의 단계(102)에 도시된 것처럼, 매칭 PTE(58)로부터 리트리브된 캐시 정책 정보(64), 및 버퍼(62)에 저장된 타깃 메모리 디바이스의 캐시 정책 정보를 처리한다. 매칭 PTE(58)로부터 리트리브된 캐시 정책 정보(64)는 타깃 디바이스의 정보에 겹쳐 쓰기 (overwrite) 되고 현재의 캐시 정책 설정들로서 사용된다. 그러나 타깃 메모리 디바이스에 대한 캐시 정책 정보가 제공되지 않는다면, 매칭 PTE(58)로부터 리트리브된 캐시 정책 정보(64)가 대신 사용된다.
캐시 정책 설정 회로(40)가 어떻게 캐시 정책들을 결정하는지의 완전히 예시적인 일례가 도 6에 도시된다. 프로세서 코어(24)는 가상 어드레스(X)에 대한 메모리 기록 요청을 발생시킨다. MMU(36)는 TLB(38) 또는 페이지 테이블(34)로부터 매칭 PTE를 리트리브하고, 이를 사용하여 가상 어드레스(X)를 대응하는 물리적 어드레스(X')로 변환한다. 그 다음, MMU(36)는 물리적 어드레스(X')를 이용하여 물리적으로-태그화된 캐시들(26, 28, 30) 중 하나 이상을 탐지(probe)한다. 이러한 예에서, 캐시들(26, 28, 30) 중 어떠한 것도 캐시 미스(cache miss)로 표시된 바와 같은 원하는 메모리 위치를 포함하지 않는다. 따라서 MMU(36)는 물리적 어드레스(X')에 기초하여 메모리 제어기(42)에 대한 외부 메모리 기록 요청을 발생시킨다. 메모리 제어기(42)는 물리적 어드레스(X')에 의해 식별되는 메모리 위치를 포함하는 타깃 메모리 디바이스를 선택한다. 타깃 메모리 디바이스는 원하는 기록 동작을 수행하고, 기록이 완료됨을 제어기(42)에 통지한다.
부가적으로, 물리적 어드레스(X')가 디코딩되고, 예를 들어 어드레스 디코더 회로(44 또는 54)에 의해, 타깃 메모리 디바이스에 대응하는 캐시 정책 정보가 이전에 기술된 것처럼 리트리브된다. 대안적으로, 타깃 메모리 디바이스는 자신의 캐시 정책 정보를 메모리 제어기(42)에 제공한다. 그럼에도, 기록 동작이 완료되었음이 MMU(36)에 통지된다. 또한, 캐시 정책 설정 회로(40)에는 타깃 메모리 디바이스의 캐시 정책 정보가 제공된다. 이러한 예에서, 캐시 정책 정보는 "판독 전용 할당"을 나타낸다. 따라서 프로세서(14)에서 기록 동작이 완료되고, MMU(36)는 프로세서 캐시들(26, 28, 30) 중 하나에서 캐시 라인을 할당하지 않는다.
도 7은 동일한 가상 어드레스(X)에 대해 프로세서 코어(24)에 의해 발생한 후속적인 판독 요청을 나타냄으로써 예시적인 도시를 계속한다. 타깃 메모리 디바이스의 캐시 정책 정보는 물리적 어드레스(X')에 의해 식별되는 메모리 위치에 대해 "판독 전용 할당"을 나타낸다는 것을 상기한다. 따라서 물리적 어드레스(X')에 대해 캐시 라인들이 미리 할당되지 않았다. 따라서 현재의 판독 동작 동안 캐시 미스가 발생한다.
또한, 타깃 메모리 디바이스가 판독 동작을 완료하면, 타깃 디바이스의 캐시 정책 정보는 캐시 라인이 할당되어야 함을 나타내기 때문에, 판독 동작은 프로세서(14)에서 완료되지 않는다. 따라서 캐시 정책 설정 회로(40)는 MMU(36)가 프로세서 캐시들(26, 28, 30) 중 하나로 하여금 물리적 어드레스(X')에 대해 캐시 라인을 할당할 것을 지시하도록 현재의 캐시 할당 정책을 설정한다. 부가적으로, 타깃 메모리 디바이스와 연관된 캐시 레벨 정책은 예를 들어 제 1 레벨 캐시들(26, 28) 또는 제 2 레벨 캐시(30) 중 하나와 같이, 어떤 레벨의 캐시가 캐시 라인을 할당해야 하는지를 나타낼 수 있다. 또한, 다른 캐시 정책들은 타깃 디바이스의 캐시 정책 정보에 기초하여 설정될 수도 있다. 그럼에도, 대응하는 데이터는 또한 처리를 위해 프로세서 코어(24)에 제공된다.
상기한 범주의 변형예들 및 애플리케이션들에서, 본 발명은 전술한 설명에 의해 제한되지 않으며 첨부된 도면들로 제한되지 않음을 이해해야 한다. 대신에, 본 발명은 이하의 청구범위 및 그 법적 등가물들에 의해서만 제한된다.

Claims (37)

  1. 캐시 정책(cache policy)을 결정하는 방법으로서,
    프로세서 내의 메모리 관리 유닛에서 제 1 캐시 정책 정보를 수신하는 단계 ― 상기 제 1 캐시 정책 정보는 타깃 메모리 디바이스와 연관된 페이지 테이블 엔트리(page table entry)를 기반으로 어드레스 디코더로부터 수신되고, 상기 프로세서는 메모리 제어기를 통해 상기 타깃 메모리 디바이스에 연결됨 ―;
    상기 프로세서에서 상기 제 1 캐시 정책 정보를 저장하는 단계; 및
    상기 메모리 제어기에서의 상기 타깃 메모리 디바이스와 연관된 제 2 캐시 정책 정보의 수신시 상기 메모리 제어기로부터 수신되는 상기 제 2 캐시 정책 정보를 기초로 상기 캐시 정책을 설정하는 단계를 포함하며, 상기 제 1 캐시 정책 정보 및 상기 제 2 캐시 정책 정보는 상기 메모리 제어기에 존재하는 상기 어드레스 디코더에 의해 생성되는, 캐시 정책을 결정하는 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 프로세서로서,
    상기 프로세서에 국한된(local) 정보를 저장하도록 구성된 캐시; 및
    상기 프로세서 내의 메모리 관리 유닛을 포함하며, 상기 메모리 관리 유닛은 상기 프로세서 외부에 있으며 타깃 메모리 디바이스와 연결되는 메모리 제어기로부터의 상기 타깃 메모리 디바이스와 연관된 캐시 정책 정보의 수신에 응답하여 상기 캐시 정책 정보를 기초로 상기 캐시에 대한 캐시 정책을 설정하도록 구성되고, 상기 메모리 제어기는 물리적 어드레스들을 디코딩하여 멀티플렉서로 하여금 상기 타깃 메모리 디바이스와 연관된 상기 캐시 정책 정보를 선택하게 하는 어드레스 디코더를 포함하는, 프로세서.
  8. 삭제
  9. 제 7 항에 있어서,
    상기 메모리 제어기는 상기 타깃 메모리 디바이스에 지시된 메모리 동작에 응답하여 상기 타깃 메모리 디바이스로부터 상기 캐시 정책 정보를 수신하도록 구성되는, 프로세서.
  10. 삭제
  11. 삭제
  12. 제 7 항에 있어서,
    상기 메모리 관리 유닛은 또한,
    상기 어드레스 디코더로부터 다른 캐시 정책 정보를 수신하고 ― 상기 다른 캐시 정책 정보는 상기 타깃 메모리 디바이스와 연관된 페이지 테이블 엔트리로부터 리트리브(retrieve)됨 ―; 그리고
    상기 캐시 정책 정보가 상기 메모리 제어기로부터 이용 가능하지 않을 때 상기 다른 캐시 정책 정보를 기초로 상기 캐시 정책을 설정하도록 구성되는, 프로세서.
  13. 삭제
  14. 시스템으로서,
    프로세서;
    상기 프로세서에 의해 사용되는 정보를 저장하도록 구성된 타깃 메모리 디바이스 ― 상기 타깃 메모리 디바이스는 캐시가 아님 ―; 및
    상기 프로세서에 연결되며 상기 타깃 메모리 디바이스와 관련되고, 어드레스 디코더 회로를 포함하는 메모리 제어기를 포함하며,
    상기 프로세서는,
    상기 프로세서에 국한된 정보를 저장하도록 구성된 캐시; 및
    상기 타깃 메모리 디바이스와 연관된 캐시 정책 정보가 상기 어드레스 디코더 회로로부터 이용 가능할 때 상기 캐시 정책 정보를 기초로 상기 캐시에 대한 캐시 정책을 설정하도록 구성된 메모리 관리 유닛을 포함하고, 상기 어드레스 디코더 회로는 물리적 어드레스들을 디코딩하여 멀티플렉서로 하여금 상기 타깃 메모리 디바이스와 연관된 상기 캐시 정책 정보를 선택하게 하는, 시스템.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 제 14 항에 있어서,
    상기 메모리 제어기의 상기 어드레스 디코더 회로는 어드레스 디코더 및 상기 타깃 메모리 디바이스와 연관된 엔트리를 갖는 테이블을 포함하는, 시스템.
  20. 삭제
  21. 캐시 정책을 결정하는 방법으로서,
    타깃 메모리 디바이스와 연관된 제 1 캐시 정책 정보를 리트리브(retrieve)하는 단계;
    메모리 제어기를 통해 상기 타깃 메모리 디바이스에 연결되는 프로세서에서 상기 제 1 캐시 정책 정보를 저장하는 단계;
    상기 메모리 제어기로부터 제 2 캐시 정책 정보가 이용 가능할 때, 상기 저장된 제 1 캐시 정책 정보를 상기 제 2 캐시 정책 정보로 겹쳐 쓰기(overwrite) 하는 단계; 및
    상기 제 2 캐시 정책 정보를 기초로 캐시 정책을 설정하는 단계를 포함하며, 상기 메모리 제어기는 물리적 어드레스들을 디코딩하여 멀티플렉서로 하여금 상기 타깃 메모리 디바이스와 연관된 캐시 정책 정보를 선택하게 하는, 캐시 정책을 결정하는 방법.
  22. 제 21 항에 있어서,
    상기 메모리 제어기는 상기 타깃 메모리 디바이스의 디바이스 ID 레지스터로부터 상기 제 2 캐시 정책 정보를 수신하는, 캐시 정책을 결정하는 방법.
  23. 프로세서로서,
    상기 프로세서에 국한된 정보를 저장하도록 구성된 캐시; 및
    메모리 관리 유닛을 포함하며, 상기 메모리 관리 유닛은,
    상기 프로세서에서 제 1 캐시 정책 정보를 저장하고 ― 상기 제 1 캐시 정책 정보는 타깃 메모리 디바이스와 연관된 페이지 테이블 엔트리로부터 수신되고, 상기 타깃 메모리 디바이스는 캐시가 아니며, 상기 페이지 테이블 엔트리는 상기 프로세서에 의한 메모리 액세스와 관련된 어드레스에 의해 식별됨 ―;
    상기 제 1 캐시 정책 정보를 기초로 상기 캐시에 대한 캐시 정책을 설정하며;
    메모리 제어기로부터 제 2 캐시 정책 정보가 이용 가능할 때, 상기 저장된 제 1 캐시 정책 정보를 상기 제 2 캐시 정책 정보로 겹쳐 쓰기 하고; 그리고
    상기 제 2 캐시 정책 정보를 기초로 상기 캐시 정책을 다른 캐시 정책으로 교체하도록 구성되며, 상기 메모리 제어기는 물리적 어드레스들을 디코딩하고 멀티플렉서가 캐시 정책 정보를 선택할 수 있게 하는 제어 신호를 생성하는 어드레스 디코더를 포함하는, 프로세서.
  24. 제 23 항에 있어서,
    상기 캐시는 레벨 2(L2) 캐시를 포함하는, 프로세서.
  25. 시스템으로서,
    타깃 메모리 디바이스;
    상기 타깃 메모리 디바이스와 관련되며, 어드레스 디코더를 포함하는 메모리 제어기; 및
    상기 메모리 제어기에 연결되는 프로세서를 포함하며, 상기 프로세서는,
    상기 프로세서에 국한된 정보를 저장하도록 구성된 캐시; 및
    메모리 관리 유닛을 포함하며, 상기 메모리 관리 유닛은,
    상기 프로세서에서 제 1 캐시 정책 정보를 저장하고 ― 상기 제 1 캐시 정책 정보는 상기 타깃 메모리 디바이스와 연관된 페이지 테이블 엔트리로부터 수신되고, 상기 페이지 테이블 엔트리는 상기 프로세서에 의한 메모리 액세스와 관련된 어드레스에 의해 식별됨 ―;
    상기 제 1 캐시 정책 정보를 기초로 상기 캐시에 대한 캐시 정책을 설정하며;
    상기 메모리 제어기로부터 제 2 캐시 정책 정보가 이용 가능할 때, 상기 저장된 제 1 캐시 정책 정보를 상기 제 2 캐시 정책 정보로 겹쳐 쓰기 하고; 그리고
    상기 제 2 캐시 정책 정보를 기초로 상기 캐시 정책을 설정하도록 구성되며, 상기 제 2 캐시 정책 정보는 상기 메모리 제어기에 존재하는 상기 어드레스 디코더에 의해 생성된 제어 신호에 의해 인에이블되는 멀티플렉서에 의해 제공되는, 시스템.
  26. 제 25 항에 있어서,
    상기 캐시는 명령 캐시인, 시스템.
  27. 제 25 항에 있어서,
    상기 캐시는 데이터 캐시인, 시스템.
  28. 제 25 항에 있어서,
    상기 타깃 메모리 디바이스는 동기식 그래픽 랜덤 액세스 메모리(SGRAM: Synchronous Graphics Random Access Memory) 디바이스인, 시스템.
  29. 제 25 항에 있어서,
    상기 타깃 메모리 디바이스는 동기식 동적 랜덤 액세스 메모리(SDRAM: Synchronous Dynamic Random Access Memory) 디바이스인, 시스템.
  30. 제 1 항에 있어서,
    상기 제 2 캐시 정책 정보는 상기 타깃 메모리 디바이스의 디바이스 식별 레지스터에 저장되는, 캐시 정책을 결정하는 방법.
  31. 제 1 항에 있어서,
    상기 타깃 메모리 디바이스로부터 상기 제 2 캐시 정책 정보가 이용 가능할 때, 상기 제 1 캐시 정책 정보를 상기 제 2 캐시 정책 정보로 겹쳐 쓰기 하는 단계, 및 상기 제 2 캐시 정책 정보를 기초로 상기 캐시 정책을 설정하는 단계를 더 포함하는, 캐시 정책을 결정하는 방법.
  32. 제 1 항에 있어서,
    상기 캐시 정책은 상기 타깃 메모리 디바이스에 지시된 메모리 동작에 응답하여 캐시 라인에 어떤 레벨의 캐시를 할당할지에 관한 표시를 포함하는, 캐시 정책을 결정하는 방법.
  33. 제 1 항에 있어서,
    상기 타깃 메모리 디바이스로부터 상기 제 2 캐시 정책 정보가 이용 가능하지 않을 때 상기 제 1 캐시 정책 정보를 기초로 상기 캐시 정책을 설정하는 단계를 더 포함하는, 캐시 정책을 결정하는 방법.
  34. 제 21 항에 있어서,
    상기 캐시 정책은 상기 타깃 메모리 디바이스에 지시된 메모리 동작에 응답하여 캐시 라인에 어떤 레벨의 캐시를 할당할지에 관한 표시를 포함하는, 캐시 정책을 결정하는 방법.
  35. 제 21 항에 있어서,
    상기 캐시 정책은 판독 전용 할당(allocate on read only)을 나타내는, 캐시 정책을 결정하는 방법.
  36. 제 21 항에 있어서,
    상기 메모리 제어기는 어드레스 디코더 회로를 포함하며, 상기 어드레스 디코더 회로는 어드레스 디코더 및 상기 타깃 메모리 디바이스와 연관된 엔트리를 갖는 테이블을 포함하는, 캐시 정책을 결정하는 방법.
  37. 제 25 항에 있어서,
    상기 캐시 정책은 상기 타깃 메모리 디바이스에 지시된 메모리 동작에 응답하여 캐시 라인에 어떤 레벨의 캐시를 할당할지에 관한 표시를 포함하는, 시스템.
KR1020097017373A 2007-01-24 2008-01-24 프로세서에서 캐시 정책을 설정하기 위한 방법 및 장치 KR101079970B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/626,434 2007-01-24
US11/626,434 US7949834B2 (en) 2007-01-24 2007-01-24 Method and apparatus for setting cache policies in a processor
PCT/US2008/051953 WO2008092032A1 (en) 2007-01-24 2008-01-24 Method and apparatus for setting cache policies in a processor

Publications (2)

Publication Number Publication Date
KR20090108716A KR20090108716A (ko) 2009-10-16
KR101079970B1 true KR101079970B1 (ko) 2011-11-04

Family

ID=39456426

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097017373A KR101079970B1 (ko) 2007-01-24 2008-01-24 프로세서에서 캐시 정책을 설정하기 위한 방법 및 장치

Country Status (11)

Country Link
US (1) US7949834B2 (ko)
EP (1) EP2115599B1 (ko)
JP (1) JP5313168B2 (ko)
KR (1) KR101079970B1 (ko)
CN (1) CN101589374B (ko)
BR (1) BRPI0806756A2 (ko)
CA (1) CA2674868C (ko)
MX (1) MX2009007948A (ko)
RU (1) RU2427892C2 (ko)
TW (1) TWI446166B (ko)
WO (1) WO2008092032A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008149657A1 (ja) * 2007-06-05 2008-12-11 Nec Corporation 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
US8393008B2 (en) * 2008-05-21 2013-03-05 Microsoft Corporation Hardware-based output protection of multiple video streams
US8151077B1 (en) * 2008-06-30 2012-04-03 Emc Corporation Application aware cache management
US8504776B2 (en) * 2008-08-29 2013-08-06 Infineon Technologies Ag Device and method for controlling caches
US8504839B2 (en) * 2008-10-27 2013-08-06 Advanced Micro Devices, Inc. Method, apparatus, and device for protecting against programming attacks and/or data corruption
US8161246B2 (en) * 2009-03-30 2012-04-17 Via Technologies, Inc. Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
CN101866321B (zh) * 2010-06-13 2012-03-21 北京北大众志微系统科技有限责任公司 一种高速缓存管理策略的调整方法及系统
US9652560B1 (en) * 2011-07-18 2017-05-16 Apple Inc. Non-blocking memory management unit
US8954704B2 (en) 2011-08-12 2015-02-10 International Business Machines Corporation Dynamic network adapter memory resizing and bounding for virtual function translation entry storage
US20130042238A1 (en) * 2011-08-12 2013-02-14 International Business Machines Corporation Optimized Virtual Function Translation Entry Memory Caching
US10042750B2 (en) 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US10146437B2 (en) 2014-03-17 2018-12-04 Primaryio, Inc. Tier aware caching solution to increase application performance
US10133488B2 (en) * 2014-03-17 2018-11-20 Primaryio, Inc. Apparatus and method for cache provisioning, configuration for optimal application performance
US9715455B1 (en) * 2014-05-05 2017-07-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Hint selection of a cache policy
WO2016191569A1 (en) * 2015-05-27 2016-12-01 Google Inc. Memory system architecture
US10019404B2 (en) * 2016-04-20 2018-07-10 Allone Solution Co., Ltd. Accessing method for accessing hybrid hard-disk drive
US10402336B2 (en) * 2017-03-31 2019-09-03 Intel Corporation System, apparatus and method for overriding of non-locality-based instruction handling

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751996A (en) 1994-09-30 1998-05-12 Intel Corporation Method and apparatus for processing memory-type information within a microprocessor
US6434669B1 (en) 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
US20040215893A1 (en) * 2003-04-28 2004-10-28 Lsi Logic Corporation Method for use of ternary cam to implement software programmable cache policies

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340046A (ja) * 1989-07-06 1991-02-20 Hitachi Ltd キャッシュメモリ制御方式および情報処理装置
US5325504A (en) * 1991-08-30 1994-06-28 Compaq Computer Corporation Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
WO1996035995A1 (en) * 1995-05-10 1996-11-14 The 3Do Company Method and apparatus for managing snoop requests using snoop advisory cells
US5946713A (en) * 1997-08-18 1999-08-31 Intel Corporation Memory attribute palette
JPH1173368A (ja) * 1997-08-28 1999-03-16 Seiko Epson Corp メモリモジュール、情報処理装置の制御方法および記録媒体
US7328328B2 (en) * 2002-02-19 2008-02-05 Ip-First, Llc Non-temporal memory reference control mechanism
EP1495394B1 (en) * 2002-04-18 2008-07-23 Advanced Micro Devices, Inc. A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path
US6891543B2 (en) * 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
US7353334B2 (en) * 2002-08-19 2008-04-01 Aristos Logic Corporation Method of increasing performance and manageability of network storage systems using optimized cache setting and handling policies
JP4765249B2 (ja) * 2003-11-18 2011-09-07 セイコーエプソン株式会社 情報処理装置およびキャッシュメモリ制御方法
US7555610B2 (en) * 2003-11-18 2009-06-30 Panasonic Corporation Cache memory and control method thereof
JP2005267497A (ja) * 2004-03-22 2005-09-29 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置、その制御方法及び磁気ディスク記憶装置
JP2006185284A (ja) * 2004-12-28 2006-07-13 Renesas Technology Corp データ処理装置
GB2422926B (en) * 2005-02-04 2008-10-01 Advanced Risc Mach Ltd Data processing apparatus and method for controlling access to memory
US7472225B2 (en) * 2005-06-20 2008-12-30 Arm Limited Caching data
US7616218B1 (en) * 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751996A (en) 1994-09-30 1998-05-12 Intel Corporation Method and apparatus for processing memory-type information within a microprocessor
US6434669B1 (en) 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
US20040215893A1 (en) * 2003-04-28 2004-10-28 Lsi Logic Corporation Method for use of ternary cam to implement software programmable cache policies

Also Published As

Publication number Publication date
BRPI0806756A2 (pt) 2011-09-13
TW200842572A (en) 2008-11-01
US7949834B2 (en) 2011-05-24
EP2115599B1 (en) 2017-07-19
CN101589374A (zh) 2009-11-25
RU2427892C2 (ru) 2011-08-27
JP5313168B2 (ja) 2013-10-09
TWI446166B (zh) 2014-07-21
JP2010517179A (ja) 2010-05-20
WO2008092032A1 (en) 2008-07-31
MX2009007948A (es) 2009-08-07
CN101589374B (zh) 2012-07-04
EP2115599A1 (en) 2009-11-11
US20080177952A1 (en) 2008-07-24
CA2674868A1 (en) 2008-07-31
CA2674868C (en) 2015-02-03
KR20090108716A (ko) 2009-10-16
RU2009131695A (ru) 2011-02-27

Similar Documents

Publication Publication Date Title
KR101079970B1 (ko) 프로세서에서 캐시 정책을 설정하기 위한 방법 및 장치
JP5580894B2 (ja) Tlbプリフェッチング
US6069638A (en) System for accelerated graphics port address remapping interface to main memory
US8239657B2 (en) Address translation method and apparatus
JP2014078248A (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
KR100285533B1 (ko) 라이트 드루 가상 캐시메모리, 에일리어스 어드레싱 및 캐시플러시
US20070094476A1 (en) Updating multiple levels of translation lookaside buffers (TLBs) field
EP2416251B1 (en) A method of managing computer memory, corresponding computer program product, and data storage device therefor
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US6948032B2 (en) Method and apparatus for reducing the effects of hot spots in cache memories
EP2790107A1 (en) Processing unit and method for controlling processing unit
US20190034335A1 (en) Cache and method
US7949833B1 (en) Transparent level 2 cache controller
JP4664586B2 (ja) キャッシュ制御装置、キャッシュ制御方法、コンピュータシステム
US6931510B1 (en) Method and system for translation lookaside buffer coherence in multiprocessor systems
JP2000122929A (ja) 情報処理装置
US7519778B2 (en) System and method for cache coherence
JPH09231136A (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
FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 9