KR20090108716A - 프로세서의 캐시 폴리시를 설정하기 위한 방법 및 장치 - Google Patents

프로세서의 캐시 폴리시를 설정하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20090108716A
KR20090108716A KR1020097017373A KR20097017373A KR20090108716A KR 20090108716 A KR20090108716 A KR 20090108716A KR 1020097017373 A KR1020097017373 A KR 1020097017373A KR 20097017373 A KR20097017373 A KR 20097017373A KR 20090108716 A KR20090108716 A KR 20090108716A
Authority
KR
South Korea
Prior art keywords
cache
memory
processor
policy information
cache policy
Prior art date
Application number
KR1020097017373A
Other languages
English (en)
Other versions
KR101079970B1 (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 policies)을 결정하는 것에 관한 것이다.
프로세서 성능은 빈번하게 액세스되는 또는 가장 최근에 사용된 정보를 저장하기 위해 하나 이상의 캐시 레벨들을 프로세서에 국부적으로 포함시킴으로써 개선된다. 프로세서 캐시는 DRAM 또는 하드디스크 드라이브와 같은 메인 메모리에 저장되는 선택 정보(select information)의 카피(copy)를 저장하는 작고 빠른 메모리이다. 명령이 메모리 위치를 액세스할 때, 프로세서는 메모리 위치가 로컬 캐시에 복사(replicate)되었는지를 먼저 검사한다. 특히, 메모리 액세스와 연관된 어드레스가 캐시의 모든 태그들과 비교된다. 목표된 메모리가 캐시에 위치된 경우, 캐시 히트(cache hit)가 발생된다. 그렇치 않으면, 캐시 미스(cache miss)가 발생된다.
캐시 히트가 발생될 때, 프로세서는 식별된 캐시 라인의 데이터 또는 명령들과 같은 정보를 즉시 판독 또는 기록한다. 캐시 미스의 발생시에는, 보다 상위-레벨 캐시 또는 메인 메모리로부터 목표된 정보가 검색된다. 또한, 새롭게 검색된 정보를 저장하기 위해 통상적으로 캐시에 새로운 엔트리(entry)가 할당된다. 새로 운 엔트리는 캐시 미스를 유발한 어드레스를 식별하는 태그, 및 메인 메모리로부터 검색되는 정보의 카피를 포함한다.
새로운 캐시 엔트리를 수용하기 위해, 존재하는 엔트리가 캐시로부터 추출(evict)된다. 캐시로부터 추출하기 위한 엔트리를 선택하는데 사용되는 발견적 방법(heuristic)은 가장 적게 최근에 사용되거나 선입(first-in) 또는 선출(first-out)과 같은 교체 폴리시(replacement policy)에 기초한다. 다른 캐시 폴리시들(캐시 속성들로도 지칭됨)은 또한 캐시가 액세스되고 사용되며 유지되는 방법을 결정하기 위해 이용된다. 다른 캐시 폴리시들은 기록 폴리시들(write policies), 할당 폴리시들(allocation policies), 캐시 레벨 폴리시들, 및 주문형 폴리시들(customized policies)을 포함한다.
기록 폴리시들은 캐시 블록에 기록된 정보가 메인 메모리에도 기록되는 시점을 결정한다. 예를 들어, 캐시 및 메인 메모리는 연속-기록 폴리시(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)된다. 물리적 페이지 번호는 매칭되는 페이지 테이블 엔트리로부터 검색(retrieve)된다. 물리적 페이지 번호 및 페이지 오프셋은 목표된 메모리 위치를 액세스하기 위해 사용되는 물리적 어드레스를 형성한다.
목표된 메모리 위치가 로컬 프로세서 캐시 내에 포함되지 않는 경우, 메인 메모리가 액세스된다. 매칭 페이지 테이블 엔트리에 저장된 캐시 폴리시 정보는 메모리 액세스의 일부로서 메인 메모리에 기록되거나 메인 메모리로부터 판독되는 정보가 캐시에 로컬로 저장되는지 여부를 결정하고, 저장된 경우, 어떻게 정보가 캐시 내에 유지되는지를 결정한다. 따라서, 캐시 폴리시들은 통상적으로 페이지 당(per-page)(또는 블록 당) 기반으로 설정되어 캐시에 적용된다. 또한, 캐시 폴리시들은 통상적으로 운영 체제에 의해 프로그래밍된다. 따라서, 캐시 폴리시들은 프로세서에서 실행되는 모든 프로세스들에 일반적으로 적용되며, 메인 메모리 디바이스의 특정 타입에 의해 사용될 때 비효율성들을 초래할 수 있다. 예를 들어, "리드 온리 할당" 캐시 할당 폴리시는 그래픽 애플리케이션들과 같은 몇몇 프로세스들에 대한 캐시 사용을 최적화할 수 있지만 그 외의 것들에 대해서는 그렇치 못하다.
본 명세서에서 제시되는 방법들 및 장치에 따라, 프로세서 캐싱 폴리시들은 특정 메모리 동작 동안 액세스되는 타겟 메모리 디바이스와 연관된 캐시 폴리시 정보를 이용하여 결정된다. 따라서, 캐싱 동작들은 일반적인 캐시 폴리시 설정들 대신에 특정한 메모리 디바이스 설정들로 조정(tailored)될 수 있다. 프로세서 성능은 메모리 동작 동안 액세스되는 타겟 메모리 디바이스와 연관된 캐시 폴리시 정보에 기초하여 현재의 메모리 동작을 위한 캐시 폴리시들을 결정함으로써 개선된다.
프로세서의 일 실시예에 따라, 프로세서는 적어도 하나의 캐시 및 메모리 관리 유닛을 포함한다. 적어도 하나의 캐시는 프로세서에 대한 로컬 정보를 저장하도록 구성(configured)된다. 메모리 관리 유닛은 적어도 하나의 캐시에 대한 하나 이상의 캐시 폴리시들을 설정하도록 구성된다. 메모리 관리 유닛은 프로세서에 의해 사용되는 정보를 저장하도록 구성된 하나 이상의 타겟 메모리 디바이스들과 연관된 캐시 폴리시 정보에 기초하여 하나 이상의 캐시 폴리시들을 설정한다.
시스템의 일 실시예에 따라, 시스템은 프로세서에 대한 로컬 정보를 저장하도록 구성된 적어도 하나의 캐시를 갖는 프로세서; 상기 프로세서에 결합된 하나 이상의 타겟 메모리 디바이스들; 및 상기 프로세서에 포함되는 메모리 관리 유닛을 포함한다. 상기 하나 이상의 타겟 메모리 디바이스들은 상기 프로세서에 의해 사용되는 정보를 저장하도록 구성된다. 상기 메모리 관리 유닛은 상기 하나 이상의 타겟 메모리 디바이스들과 연관된 캐시 폴리시 정보에 기초하여 적어도 하나의 캐시에 대한 하나 이상의 캐시 폴리시들을 설정하도록 구성된다.
물론, 본 발명은 상기한 특징들과 장점들로 제한되지 않는다. 통상의 당업자는 이하의 상세한 설명을 읽고 첨부된 도면들을 볼 때 부가적인 특징들과 장점들을 인식할 것이다.
도 1은 캐시 폴리시들을 결정하기 위한 회로를 갖는 프로세서를 포함하는 시스템의 일 실시예를 도시하는 블록도이다.
도 2는 메모리 디바이스와 연관된 캐시 폴리시 정보를 제공하기 위한 어드레스 디코더 회로의 일 실시예를 도시하는 블록도이다.
도 3은 캐시 폴리시들을 결정하기 위한 회로를 갖는 프로세서를 포함하는 시스템의 다른 실시예를 도시하는 블록도이다.
도 4는 프로세서의 캐시 폴리시들을 결정하기 위한 회로의 일 실시예를 도시하는 블록도이다.
도 5는 프로세서의 캐시 폴리시들을 결정하기 위한 프로그램 로직의 일 실시예를 도시하는 로직 흐름도이다.
도 6은 도 4의 회로가 예시적인 기록 동작에 응답하여 캐싱 폴리시들을 결정하는 방법을 도시하는 도면이다.
도 7은 도 4의 회로가 예시적인 판독 동작에 응답하여 캐싱 폴리시들을 결정하는 방법을 도시하는 도면이다.
도 1은 동기식 DRAM(SDRAM)(20)과 동기식 그래픽 RAM(SGRAM)(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)에서 실행되는 프로세스들에 대한 가상 메모리로서 나타낸다. 즉, 물리적 메모리의 페이지들은 프로그램 실행 동안 프로세스들에 사용하기 위한 가상 메모리로서 할당된다. 페이지 테이블(34)은 가상 및 물리적 어드레스 공간들 간의 맵핑을 인에이블하기 위해 예를 들어 도 1에 도시된 것처럼, 메인 메모리(18, 20, 22)에 유지된다. 프로세서(14)에 포함되는 메모리 관리 유닛(MMU)(36)은 페이지 테이블(34)에 액세스하고, 프로세서(14)에 의해 발생되는(issued) 메모리 액세스들을 처리하며, 메모리 액세스들은 가상 메모리 관리, 메모리 보호, 캐시 제어, 및 버스 중재(bus arbitration)를 포함한다. 가상 메모리 관리의 일부로서, MMU(36)는 빈번하게 또는 최근에 참조된, 프로세서(14)에 대한 로컬 페이지 테이블 엔트리들(PTEs)을 예를 들어 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)의 리셋시에 또는 시스템 부팅 동안 자동적으로, 요청 없이 프로세서(14)로 제공된다. 또한, 프로세서(14)는 수신시에 조정된(tailored) 캐시 폴리시 정보를 저장할 수 있으며, 이에 따라 대응하는 타겟 메모리 디바이스가 후속적으로 액세스될 때 동일한 정보를 요청할 필요가 없다. 대신에, 프로세서(14)는 조정된 캐시 폴리시 정보를 내부적으로 검색하여 사용한다. 그럼에도 불구하고, 캐시 폴리시 설정 회로(40)는 메모리 동작들 동안 캐시 폴리시들을 설정하기 위해 타겟 메모리 디바이스 캐시 폴리시 정보를 사용한다.
도 4는 MMU(36)와 연관된 또는 MMU(36)에 포함되는 캐시 폴리시 설정 회로(40)의 일 실시예를 도시한다. 이러한 실시예에 따라, 캐시 폴리시 설정 회로(40)는 현재의 메모리 동작에 관련된 캐시 폴리시들을 설정하기 위한 선택 회로(56)를 포함한다. 보다 상세하게는, 메모리 액세스의 부분으로서 제공되는 가상 어드레스와 매칭되는 페이지 테이블 엔트리(PTE)(58)는 TLB(38) 또는 페이지 테이블(34)로부터 검색된다(예, 도 1에서 페이지 테이블(34)로부터 MMU(36)로 진행하는 점선으로 도시된 바와 같이). 물리적 어드레스가 목표된 메모리 위치를 식별하는 매칭 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)에 대한 메모리 기록 요청을 발생(issue)시킨다. 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 (20)

  1. 캐시 폴리시들(cache policies)을 결정하는 방법으로서,
    프로세서에 의해 사용되는 정보를 저장하도록 구성된 하나 이상의 타겟 메모리 디바이스들과 연관된 캐시 폴리시 정보를 수신하는 단계; 및
    상기 캐시 폴리시 정보에 기초하여 하나 이상의 캐시 폴리시들을 설정하는 단계
    를 포함하는 캐시 폴리시들을 결정하는 방법.
  2. 제 1 항에 있어서,
    상기 캐시 폴리시 정보를 수신하는 단계는 요청하지 않은(unsolicited) 캐시 폴리시 정보를 수신하는 단계를 포함하는, 캐시 폴리시들을 결정하는 방법.
  3. 제 1 항에 있어서,
    상기 캐시 폴리시 정보를 수신하는 단계는,
    상기 타겟 메모리 디바이스들 중 하나에 대한 메모리 액세스를 지시(directing)하는 단계; 및
    상기 메모리 액세스에 응답하여 캐시 폴리시 정보를 수신하는 단계
    를 포함하는, 캐시 폴리시들을 결정하는 방법.
  4. 제 3 항에 있어서,
    상기 메모리 액세스에 응답하여 캐시 폴리시 정보를 수신하는 단계는 상기 메모리 액세스가 지시된 상기 타겟 메모리 디바이스에 의해 제공되는 캐시 폴리시 정보를 수신하는 단계를 포함하는, 캐시 폴리시들을 결정하는 방법.
  5. 제 3 항에 있어서,
    상기 메모리 액세스에 응답하여 캐시 폴리시 정보를 수신하는 단계는 상기 메모리 액세스와 연관된 어드레스에 기초하여 어드레스 디코더에 의해 제공되는 캐시 폴리시 정보를 수신하는 단계를 포함하는, 캐시 폴리시들을 결정하는 방법.
  6. 제 3 항에 있어서,
    상기 하나 이상의 캐시 폴리시들을 설정하는 단계는,
    상기 메모리 액세스와 연관된 페이지 테이블 엔트리(page table entry)에 액세스하는 단계; 및
    상기 페이지 테이블 엔트리에 의해 표시된 하나 이상의 캐시 폴리시들을 상기 메모리 액세스에 응답하여 수신된 상기 캐시 폴리시 정보로 오버라이딩(overriding)하는 단계
    를 포함하는, 캐시 폴리시들을 결정하는 방법.
  7. 프로세서로서,
    상기 프로세서에 대한 로컬(local) 정보를 저장하도록 구성된 적어도 하나의 캐시; 및
    상기 프로세서에 의해 사용되는 정보를 저장하도록 구성된 하나 이상의 타겟 메모리 디바이스들과 연관된 캐시 폴리시 정보에 기초하여, 상기 적어도 하나의 캐시에 대한 하나 이상의 캐시 폴리시들을 설정하도록 구성된 메모리 관리 유닛
    을 포함하는 프로세서.
  8. 제 7 항에 있어서,
    상기 메모리 관리 유닛은 요청하지 않은 캐시 폴리시 정보를 처리하도록 구성되는, 프로세서.
  9. 제 7 항에 있어서,
    상기 메모리 관리 유닛은 상기 타겟 메모리 디바이스들 중 하나에 대한 메모리 액세스를 지시하고 상기 메모리 액세스에 응답하여 수신되는 캐시 폴리시 정보를 처리하도록 구성되는, 프로세서.
  10. 제 9 항에 있어서,
    상기 메모리 관리 유닛은 상기 메모리 액세스가 지시된 상기 타겟 메모리 디바이스에 의해 제공되는 캐시 폴리시 정보를 처리하도록 구성되는, 프로세서.
  11. 제 9 항에 있어서,
    상기 메모리 관리 유닛은 상기 메모리 액세스와 연관된 어드레스에 기초하여 어드레스 디코더에 의해 제공되는 캐시 폴리시 정보를 처리하도록 구성되는, 프로세서.
  12. 제 11 항에 있어서,
    상기 어드레스 디코더는 상기 프로세서에 포함되는, 프로세서.
  13. 제 9 항에 있어서,
    상기 메모리 관리 유닛은 상기 메모리 액세스와 연관된 페이지 테이블 엔트리에 액세스하고 상기 페이지 테이블 엔트리에 의해 표시된 하나 이상의 캐시 폴리시들을 상기 메모리 액세스에 응답하여 수신된 상기 캐시 폴리시 정보로 오버라이드(override)하도록 구성되는, 프로세서.
  14. 시스템으로서,
    프로세서에 대한 로컬 정보를 저장하도록 구성된 적어도 하나의 캐시를 갖는 상기 프로세서;
    상기 프로세서에 결합되고 상기 프로세서에 의해 사용되는 정보를 저장하도록 구성된 하나 이상의 타겟 메모리 디바이스들; 및
    상기 하나 이상의 타겟 메모리 디바이스들과 연관된 캐시 폴리시 정보에 기 초하여 상기 적어도 하나의 캐시에 대한 하나 이상의 캐시 폴리시들을 설정하도록 구성되며, 상기 프로세서에 포함되는 메모리 관리 유닛
    을 포함하는 시스템.
  15. 제 14 항에 있어서,
    상기 메모리 관리 유닛은 요청하지 않은 캐시 폴리시 정보를 처리하도록 구성되는, 시스템.
  16. 제 14 항에 있어서,
    상기 메모리 관리 유닛은 상기 타겟 메모리 디바이스들 중 하나에 대한 메모리 액세스를 지시하고 상기 메모리 액세스에 응답하여 수신된 캐시 폴리시 정보를 처리하도록 구성되는, 시스템.
  17. 제 16 항에 있어서,
    상기 메모리 관리 유닛은 상기 메모리 액세스가 지시된 상기 타겟 메모리 디바이스에 의해 제공되는 캐시 폴리시 정보를 처리하도록 구성되는, 시스템.
  18. 제 16 항에 있어서,
    상기 메모리 액세스와 연관된 어드레스에 기초하여 상기 캐시 폴리시 정보를 제공하도록 구성된 어드레스 디코더를 더 포함하는, 시스템.
  19. 제 18 항에 있어서,
    상기 어드레스 디코더는 상기 프로세서에 포함되는, 시스템.
  20. 제 16 항에 있어서,
    상기 메모리 관리 유닛은 상기 메모리 액세스에 응답하여 액세스되는 페이지 테이블 엔트리에 액세스하고 상기 페이지 테이블 엔트리에 의해 표시되는 하나 이상의 캐시 폴리시들을 상기 메모리 액세스에 응답하여 수신된 상기 캐시 폴리시 정보로 오버라이드하도록 구성되는, 시스템.
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 true KR20090108716A (ko) 2009-10-16
KR101079970B1 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
US8239634B2 (en) * 2007-06-05 2012-08-07 Nec Corporation Input/output control based on information specifying input/output issuing source and input/output priority
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
US8516260B2 (en) * 2008-10-27 2013-08-20 Advanced Micro Devices, Inc. Method, apparatus, and device for providing security among a calling function and a target function
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

Family Cites Families (19)

* 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
ZA954460B (en) * 1994-09-30 1996-02-05 Intel Corp Method and apparatus for processing memory-type information within a microprocessor
AU5854796A (en) * 1995-05-10 1996-11-29 3Do Company, The 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 メモリモジュール、情報処理装置の制御方法および記録媒体
US6434669B1 (en) 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
US7328328B2 (en) * 2002-02-19 2008-02-05 Ip-First, Llc Non-temporal memory reference control mechanism
WO2003090052A2 (en) * 2002-04-18 2003-10-30 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
US7039756B2 (en) 2003-04-28 2006-05-02 Lsi Logic Corporation Method for use of ternary CAM to implement software programmable cache policies
JP4765249B2 (ja) * 2003-11-18 2011-09-07 セイコーエプソン株式会社 情報処理装置およびキャッシュメモリ制御方法
WO2005050454A1 (ja) * 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびその制御方法
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

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101079970B1 (ko) 프로세서에서 캐시 정책을 설정하기 위한 방법 및 장치
US7805588B2 (en) Caching memory attribute indicators with cached memory data field
US8239657B2 (en) Address translation method and apparatus
JP5583274B2 (ja) コンピュータ・メモリを管理する方法、対応するコンピュータ・プログラム製品、およびそのためのデータ・ストレージ・デバイス
KR100285533B1 (ko) 라이트 드루 가상 캐시메모리, 에일리어스 어드레싱 및 캐시플러시
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JP2009020881A (ja) 可変のページサイズのメモリ編成を実装する処理システム
US20070094476A1 (en) Updating multiple levels of translation lookaside buffers (TLBs) field
KR20130040952A (ko) 메모리 액세스를 정확하게 예측하기 위한 영역 기반 기술
US6948032B2 (en) Method and apparatus for reducing the effects of hot spots in cache memories
US7472225B2 (en) Caching data
US7949833B1 (en) Transparent level 2 cache controller
GB2307319A (en) Dual-directory virtual cache
JP2000122929A (ja) 情報処理装置
US20080147984A1 (en) Method and apparatus for faster execution path
US20040117583A1 (en) Apparatus for influencing process scheduling in a data processing system capable of utilizing a virtual memory processing scheme
JP2000347941A (ja) キャッシュメモリ装置
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