KR20180103907A - 태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(dram) 캐시 관리의 제공 - Google Patents

태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(dram) 캐시 관리의 제공 Download PDF

Info

Publication number
KR20180103907A
KR20180103907A KR1020187020561A KR20187020561A KR20180103907A KR 20180103907 A KR20180103907 A KR 20180103907A KR 1020187020561 A KR1020187020561 A KR 1020187020561A KR 20187020561 A KR20187020561 A KR 20187020561A KR 20180103907 A KR20180103907 A KR 20180103907A
Authority
KR
South Korea
Prior art keywords
cache
dram
directory
tag
tag directory
Prior art date
Application number
KR1020187020561A
Other languages
English (en)
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 KR20180103907A publication Critical patent/KR20180103907A/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/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/305Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy

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)
  • Dram (AREA)

Abstract

태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리의 제공이 제공된다. 한 양상에서, 고대역폭 메모리 내의 DRAM 캐시에 대한 액세스를 관리하기 위해 DRAM 캐시 관리 회로가 제공된다. DRAM 캐시 관리 회로는 태그 디렉터리 캐시 및 태그 디렉터리 캐시 디렉터리를 포함한다. 태그 디렉터리 캐시는 빈번하게 액세스되는 캐시 라인들의 태그들을 DRAM 캐시에 저장하는 한편, 태그 디렉터리 캐시 디렉터리는 태그 디렉터리 캐시에 대한 태그들을 저장한다. DRAM 캐시 관리 회로는 태그 디렉터리 캐시 및 태그 디렉터리 캐시 디렉터리를 사용하여, 메모리 어드레스와 연관된 데이터가 고대역폭 메모리의 DRAM 캐시에 캐시되는지 여부를 결정한다. 태그 디렉터리 캐시 및 태그 디렉터리 캐시 디렉터리를 기초로, DRAM 캐시 관리 회로는 메모리 연산이 DRAM 캐시를 사용하여 수행될 수 있는지 그리고/또는 시스템 메모리 DRAM을 사용하여 수행될 수 있는지를 결정할 수 있다.

Description

태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리의 제공
[0001] 본 출원은 "PROVIDING SCALABLE DYNAMIC RANDOM ACCESS MEMORY (DRAM) CACHE MANAGEMENT USING TAG DIRECTORY CACHES"라는 명칭으로 2016년 1월 21일자 출원된 미국 가특허출원 일련번호 제62/281,234호에 대한 우선권을 주장하며, 이 출원의 내용은 그 전체가 인용에 의해 본 명세서에 포함된다.
[0002] 본 출원은 또한 "PROVIDING SCALABLE DYNAMIC RANDOM ACCESS MEMORY (DRAM) CACHE MANAGEMENT USING TAG DIRECTORY CACHES"라는 명칭으로 2016년 6월 24일자 출원된 미국 특허출원 일련번호 제15/192,019호에 대한 우선권을 주장하며, 이 출원의 내용은 그 전체가 인용에 의해 본 명세서에 포함된다.
[0003] 본 개시내용의 기술은 일반적으로 동적 랜덤 액세스 메모리(DRAM: dynamic random access memory) 관리에 관한 것으로, 특히 DRAM 캐시들의 관리에 관한 것이다.
[0004] 수직으로 상호 접속되는 다수의 적층된 다이들로 이루어진 다이 적층형(die-stacked) 집적 회로(IC: integrated circuit)들의 출현은 다이 적층형 동적 랜덤 액세스 메모리(DRAM)의 개발을 가능하게 했다. 다이 적층형 DRAM들은 본 명세서에서 "고대역폭 메모리"로 지칭되는 것을 구현하는 데 사용될 수 있는데, 고대역폭 메모리는 유사한 액세스 레이턴시를 제공하면서 종래의 시스템 메모리 DRAM보다 더 넓은 대역폭을 제공한다. 고대역폭 메모리는 시스템 메모리 DRAM으로부터 이전에 판독되어 한정이 아닌 예로서 레벨 3(L3: Level 3) 캐시와 같은 더 상위 레벨 시스템 캐시로부터 축출(evict)된 자주 액세스되는 데이터를 저장하도록 DRAM 캐시를 구현하는 데 사용될 수 있다. 고대역폭 메모리의 DRAM 캐시를 제공하는 것은 시스템 메모리 DRAM에 대한 메모리 경합을 감소시키고, 따라서 사실상 전체 메모리 대역폭을 증가시킬 수 있다.
[0005] 그러나 고대역폭 메모리의 DRAM 캐시의 관리는 문제들을 제기할 수 있다. DRAM 캐시는 시스템 메모리 DRAM보다 크기가 수십 배 더 작을 수 있다. 따라서 DRAM 캐시는 시스템 메모리 DRAM에 데이터의 서브세트만을 저장할 수 있기 때문에, DRAM 캐시의 효율적인 사용은 저장될 메모리 어드레스들의 지능적 선택에 의존한다. 이에 따라, DRAM 캐시 관리 메커니즘은 DRAM 캐시에 어떤 메모리 어드레스들이 선택적으로 설치되어야 하는지를 결정할 수 있어야 하고, 추가로 메모리 어드레스들이 언제 DRAM 캐시에 설치되어야 하고 그리고/또는 언제 DRAM 캐시로부터 축출되어야 하는지를 결정할 수 있어야 한다. DRAM 캐시 관리 메커니즘은 DRAM 캐시에 대한 액세스 레이턴시의 영향을 최소화하고, DRAM 캐시 크기 및/또는 시스템 메모리 DRAM 크기에 대해 확장 가능(scalable)한 것이 또한 바람직할 수 있다.
[0006] DRAM 캐시 관리에 대한 일부 접근 방식들은 캐시된 메모리 어드레스들에 대응하는 태그들을 저장하기 위해 캐시를 이용한다. 이러한 하나의 접근 방식 하에서는, 고대역폭 메모리와는 별개인 컴퓨트 다이(compute die) 상의 정적 랜덤 액세스 메모리(SRAM: static random access memory)에 태그 캐시가 저장된다. 그러나 더 큰 DRAM 캐시 크기들은 원하지 않는 그리고/또는 너무 커서 SRAM에 저장할 수 없는 큰 태그 캐시들을 필요로 할 수 있기 때문에, 이러한 접근 방식은 DRAM 캐시 크기까지 충분히 확장 가능하지는 않을 수 있다. 다른 접근 방식은 사용되는 SRAM의 양을 줄이는 것, 그리고 주어진 메모리 어드레스가 DRAM 캐시 내에 저장되는지 여부를 결정하기 위해 히트/미스(hit/miss) 예측자를 사용하는 것을 수반한다. 이러한 후자의 접근 방식은 SRAM의 사용을 최소화하지만, 임의의 부정확한 예측들이 시스템 메모리 DRAM으로부터 데이터가 판독되는 결과를 초래할 것이다. 시스템 메모리 DRAM에 대한 판독들은 추가 액세스 레이턴시를 초래하며, 이는 DRAM 캐시의 사용으로부터 야기되는 어떠한 성능 개선들도 무효화할 수 있다. 또 다른 접근 방식들은 캐시된 데이터를 추적하기 위해 시스템 메모리 DRAM에 저장된 엄청나게 큰 데이터 구조들을 필요로 할 수 있다.
[0007] 따라서 레이턴시 패널티들 및 시스템 메모리 DRAM 소비를 최소화하면서 메모리 대역폭을 개선하도록 확장 가능 DRAM 캐시 관리를 제공하는 것이 바람직하다.
[0008] 상세한 설명에서 개시되는 양상들은 태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하는 것을 포함한다. 일부 양상들에서, 고대역폭 메모리에 위치된 DRAM 캐시에 대한 액세스를 관리하기 위해 DRAM 캐시 관리 회로가 제공된다. DRAM 캐시 관리 회로는 태그 디렉터리 캐시 및 태그 디렉터리 캐시에 대한 연관된 태그 디렉터리 캐시 디렉터리를 포함한다. 태그 디렉터리 캐시는 고대역폭 메모리의 DRAM 캐시에 저장되는 태그들(예컨대, 캐시된 메모리 어드레스들을 기초로 생성된 태그들)을 캐시하도록 DRAM 캐시 관리 회로에 의해 사용된다. 태그 디렉터리 캐시 디렉터리는 태그 디렉터리 캐시 내에 저장된 태그들의 리스트를 DRAM 캐시 관리 회로에 제공한다. 태그 디렉터리 캐시 및 태그 디렉터리 캐시 디렉터리에 저장된 태그들은 요청된 메모리 어드레스에 대응하는 태그가 고대역폭 메모리의 DRAM 캐시에 캐시되는지 여부를 DRAM 캐시 관리 회로가 결정할 수 있게 한다. 태그 디렉터리 캐시 및 태그 디렉터리 캐시 디렉터리를 기초로, DRAM 캐시 관리 회로는 DRAM 캐시에 액세스하여 메모리 연산이 DRAM 캐시를 사용하여 수행될 수 있는지 그리고/또는 시스템 메모리 DRAM을 사용하여 수행될 수 있는지를 결정할 수 있다. DRAM 캐시 관리 회로의 일부 양상들은 로드 밸런싱 회로를 추가로 제공할 수 있다. 데이터가 DRAM 캐시 또는 시스템 메모리 DRAM으로부터 판독되는 상황들에서, DRAM 캐시 관리 회로는 로드 밸런싱 회로를 사용하여 데이터를 판독할 적절한 소스를 선택할 수 있다.
[0009] DRAM 캐시 관리 회로의 추가 양상들은 동시 기록(write-through) 모드 또는 후기록(write-back) 모드로 동작하도록 구성될 수 있다. 후자의 양상에서, 태그 디렉터리 캐시 디렉터리는 태그 디렉터리 캐시에 저장된 각각의 캐시 라인에 대한 더티(dirty) 비트를 추가로 제공할 수 있다. 일부 양상들은 태그 디렉터리 캐시 디렉터리가 더티 비트들을 추적하도록 구성되는 경우에만 후기록 모드에서 DRAM 캐시 내에 더티 데이터를 허용함으로써 메모리 판독 액세스들에 대한 레이턴시 패널티들을 최소화할 수 있다. 따라서 태그 디렉터리 캐시 상에서 놓친 메모리 판독 액세스는 시스템 메모리 DRAM으로 진행하는 것이 허용될 수 있는데, 이는 대응하는 캐시 라인이 DRAM 캐시 내에 있다면, 그 캐시 라인이 시스템 메모리 DRAM 내의 데이터와 일치하기 때문이다. 일부 양상들에서, 태그 디렉터리 캐시 및 태그 디렉터리 캐시 디렉터리는 DRAM 캐시 관리 회로에 의한 확률적 결정을 기초로 보충될 수 있다.
[0010] 다른 양상에서는, DRAM 캐시 관리 회로가 제공된다. DRAM 캐시 관리 회로는 고대역폭 메모리의 일부인 DRAM 캐시에 통신 가능하게 연결되고, 시스템 메모리 DRAM에 추가로 통신 가능하게 연결된다. DRAM 캐시 관리 회로는 DRAM 캐시의 태그 디렉터리의 복수의 태그들을 캐시하도록 구성된 태그 디렉터리 캐시를 포함한다. DRAM 캐시 관리 회로는 또한 태그 디렉터리 캐시의 복수의 태그들을 저장하도록 구성되는 태그 디렉터리 캐시 디렉터리를 포함한다. DRAM 캐시 관리 회로는 판독 어드레스를 포함하는 메모리 판독 요청을 수신하고, 태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견되는지 여부를 결정하도록 구성된다. DRAM 캐시 관리 회로는 태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 시스템 메모리 DRAM에서 판독 어드레스의 데이터를 판독하도록 추가로 구성된다. DRAM 캐시 관리 회로는 또한, 태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견된다는 결정에 대한 응답으로, 태그 디렉터리 캐시를 기초로 DRAM 캐시에서 판독 어드레스가 발견되는지 여부를 결정하도록 구성된다. DRAM 캐시 관리 회로는 DRAM 캐시에서 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 시스템 메모리 DRAM에서 판독 어드레스의 데이터를 판독하도록 추가로 구성된다. DRAM 캐시 관리 회로는 DRAM 캐시에서 판독 어드레스가 발견된다는 결정에 대한 응답으로, DRAM 캐시로부터 판독 어드레스에 대한 데이터를 판독하도록 추가로 구성된다.
[0011] 다른 양상에서는, 확장 가능 DRAM 캐시 관리를 제공하기 위한 방법이 제공된다. 이 방법은 DRAM 캐시 관리 회로에 의해, 판독 어드레스를 포함하는 메모리 판독 요청을 수신하는 단계를 포함한다. 이 방법은 DRAM 캐시 관리 회로의 태그 디렉터리 캐시의 태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견되는지 여부를 결정하는 단계를 더 포함한다. 이 방법은 또한, 태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 시스템 메모리 DRAM에서 판독 어드레스의 데이터를 판독하는 단계를 포함한다. 이 방법은 추가로, 태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견된다는 결정에 대한 응답으로, 태그 디렉터리 캐시를 기초로, 고대역폭 메모리의 일부인 DRAM 캐시에서 판독 어드레스가 발견되는지 여부를 결정하는 단계를 포함한다. 이 방법은 DRAM 캐시에서 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 시스템 메모리 DRAM에서 판독 어드레스의 데이터를 판독하는 단계를 더 포함한다. 이 방법은 또한, DRAM 캐시에서 판독 어드레스가 발견된다는 결정에 대한 응답으로, DRAM 캐시로부터 판독 어드레스에 대한 데이터를 판독하는 단계를 포함한다.
[0012] 다른 양상에서는, DRAM 캐시 관리 회로가 제공된다. DRAM 캐시 관리 회로는 판독 어드레스를 포함하는 메모리 판독 요청을 수신하기 위한 수단을 포함한다. DRAM 캐시 관리 회로는 DRAM 캐시 관리 회로의 태그 디렉터리 캐시의 태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견되는지 여부를 결정하기 위한 수단을 더 포함한다. DRAM 캐시 관리 회로는 또한, 태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 시스템 메모리 DRAM에서 판독 어드레스의 데이터를 판독하기 위한 수단을 포함한다. DRAM 캐시 관리 회로는 추가로, 태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견된다는 결정에 대한 응답으로, 태그 디렉터리 캐시를 기초로, 고대역폭 메모리의 일부인 DRAM 캐시에서 판독 어드레스가 발견되는지 여부를 결정하기 위한 수단을 포함한다. DRAM 캐시 관리 회로는 DRAM 캐시에서 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 시스템 메모리 DRAM에서 판독 어드레스의 데이터를 판독하기 위한 수단을 더 포함한다. DRAM 캐시 관리 회로는 또한, DRAM 캐시에서 판독 어드레스가 발견된다는 결정에 대한 응답으로, DRAM 캐시로부터 판독 어드레스에 대한 데이터를 판독하기 위한 수단을 포함한다.
[0013] 도 1은 동적 랜덤 액세스 메모리(DRAM) 캐시를 제공하는 고대역폭 메모리, 및 태그 디렉터리 캐시 및 태그 디렉터리 캐시 디렉터리를 이용한 확장 가능 DRAM 캐시 관리를 제공하기 위한 DRAM 캐시 관리 회로를 포함하는 예시적인 프로세서 기반 시스템의 블록도이다.
[0014] 도 2a - 도 2b는 도 1의 DRAM 캐시 관리 회로에 의해 관리될 수 있는 DRAM 캐시의 예시적인 구현들의 비교를 예시하는 블록도들이며, 여기서 구현들은 서로 다른 DRAM 캐시 라인 크기들을 제공한다.
[0015] 도 3a 및 도 3b는 도 1의 태그 디렉터리 캐시 및 태그 디렉터리 캐시 디렉터리를 사용하여 판독 연산을 수행하기 위한 도 1의 DRAM 캐시 관리 회로의 예시적인 동작들을 예시하는 흐름도들이다.
[0016] 도 4a - 도 4e는 시스템 캐시로부터의 데이터(예컨대, 후기록 모드 또는 동시 기록 모드에서 축출된 "클린(clean)"(즉, 수정되지 않은) 또는 "더티"(즉, 수정된) 축출 데이터)의 축출로부터 야기되는 기록 연산을 수행하기 위한 도 1의 DRAM 캐시 관리 회로의 예시적인 동작들을 예시하는 흐름도들이다.
[0017] 도 5a - 도 5d는 태그 디렉터리 캐시 설치 동작을 수행하기 위한 도 1의 DRAM 캐시 관리 회로의 예시적인 동작들을 예시하는 흐름도들이다.
[0018] 도 6은 도 1의 DRAM 캐시 관리 회로를 포함할 수 있는 예시적인 프로세서 기반 시스템의 블록도이다.
[0019] 이제 도면들을 참조하여, 본 개시내용의 여러 예시적인 양상들이 설명된다. 본 명세서에서 "예시적인"이라는 단어는 "일례, 실례 또는 예시로서의 역할"을 의미하는 데 사용된다. 본 명세서에서 "예시적인" 것으로서 설명된 어떠한 양상도 반드시 다른 양상들에 비해 선호되거나 유리한 것으로 해석되는 것은 아니다.
[0020] 상세한 설명에서 개시되는 양상들은 태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하는 것을 포함한다. 본 명세서에서 설명되는 바와 같이, DRAM 캐시 관리 방식은 DRAM 캐시 관리 방식에 의해 이용되는 자원들의 크기가 관리되고 있는 DRAM 캐시의 용량과 상대적으로 독립적이라는 의미에서 "확장 가능"하다. 이에 따라, 이와 관련하여, 도 1은 DRAM 캐시(104) 및 DRAM 캐시(104)에 대한 연관된 태그 디렉터리(106)를 관리하기 위한 DRAM 캐시 관리 회로(102)를 제공하는 예시적인 프로세서 기반 시스템(100)의 블록도이며, DRAM 캐시(104)와 태그 디렉터리(106)는 둘 다 고대역폭 메모리(108)의 일부이다. 프로세서 기반 시스템(100)은 시스템 메모리 DRAM(110)을 포함하는데, 시스템 메모리 DRAM(110)은 일부 양상들에서, 하나 또는 그보다 많은 듀얼 인라인 메모리 모듈(DIMM: dual in-line memory module)들을 포함할 수 있다. 프로세서 기반 시스템(100)은 추가로 컴퓨트 다이(112)를 제공하는데, 그 위에 시스템 캐시(114)(예컨대, 한정이 아닌 예로서, 레벨 3(L3) 캐시)가 위치된다. 일부 양상들에서, 태그 디렉터리(106)의 크기는 DRAM 캐시(104)의 크기에 비례하며, 따라서 DRAM 캐시(104)와 함께 고대역폭 메모리(108)에 맞기에 충분히 작을 수 있다. 그 결과, DRAM 캐시(104)에 대한 태그 디렉터리(106) 정보를 리트리브하기 위해 시스템 메모리 DRAM(110)이 액세스될 필요가 없다.
[0021] 프로세서 기반 시스템(100)은 다른 엘리먼트들 중에서도 공지된 디지털 로직 엘리먼트들, 반도체 회로들, 프로세싱 코어들 및/또는 메모리 구조들 중 임의의 것, 또는 이들의 결합들을 포괄할 수 있다. 본 명세서에서 설명되는 양상들은 엘리먼트들의 임의의 특정 배열로 제한되지 않으며, 개시되는 기술들은 반도체 다이들 또는 패키지들에 대한 다양한 구조들 및 레이아웃들로 용이하게 확장될 수 있다. 프로세서 기반 시스템(100)의 일부 양상들은 도 1에 예시된 것들 외에도 엘리먼트들을 포함할 수 있다고 이해되어야 한다.
[0022] 메모리 대역폭을 개선하기 위해, 프로세서 기반 시스템(100)의 고대역폭 메모리(108) 내의 DRAM 캐시(104)가 이전에 시스템 메모리 DRAM(110) 내의 메모리 라인들(116(0)-116(X))로부터 판독된 그리고/또는 시스템 캐시(114)로부터 축출된 (도시되지 않은) 메모리 어드레스들 및 (도시되지 않은) 데이터를 캐시하는 데 사용될 수 있다. 한정이 아닌 예들로서, 일부 양상들은 시스템 메모리 DRAM(110)으로부터 데이터의 판독시에만 DRAM 캐시(104)에 데이터가 캐시될 수 있는 한편, 일부 양상들에서는 데이터가 시스템 캐시(114)로부터 축출되는 경우에만 DRAM 캐시(104)에 캐시될 수 있다고 규정할 수 있다. 일부 양상들에 따르면, 시스템 캐시(114)로부터의 프로세서 로드들 및 더티 축출들에 의해 트리거되는 판독들을 위해 시스템 메모리 DRAM(110)으로부터의 데이터 판독시 DRAM 캐시(104)에 데이터가 캐시될 수 있다.
[0023] DRAM 캐시(104)는 이전에 판독된 메모리 어드레스들 및 데이터를 저장하도록 웨이(way)들(120(0)-120(C))로 조직화된 DRAM 캐시 라인들(118(0)-118(B), 118'(0)-118'(B))을 제공한다. DRAM 캐시(104) 내의 DRAM 캐시 라인들(118(0)-118(B), 118'(0)-118'(B)) 각각에 대해, DRAM 캐시(104)에 대한 태그 디렉터리(106)는 대응하는 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))의 메모리 어드레스로부터 생성된 태그(122(0)-122(I))를 저장한다. 일례로, 시스템 메모리 DRAM(110)이 크기가 4 테라바이트인 예시적인 프로세서 기반 시스템(100)에서, DRAM 캐시 라인들(118(0)-118(B), 118'(0)-118'(B))에 대한 메모리 어드레스들은 각각 42 비트를 포함할 수 있다. 메모리 어드레스들의 12개의 최상위 비트들(즉, 비트 41에서부터 비트 30까지)이 태그 디렉터리(106) 내의 메모리 어드레스들에 대한 태그들(122(0)-122(I))("T")로서 사용될 수 있다. 태그 디렉터리(106)는 또한, 대응하는 태그들(122(0)-122(I))이 유효한지 여부를 표시하는 유효 비트들(124(0)-124(I))("V"), 및 태그들(122(0)-122(I))에 대응하는 DRAM 캐시 라인들(118(0)-118(B), 118'(0)-118'(B))이 수정되었는지 여부를 표시하는 더티 비트들(126(0)-126(I))("D")을 저장한다. 일부 양상들에서는, DRAM 캐시 관리 회로(102)가 (예컨대, 후기록 모드를 지원함으로써) 더티 데이터를 추적하도록 구성되는 경우에만 DRAM 캐시(104)에서 더티 데이터가 허용될 수 있다.
[0024] 고대역폭 메모리(108) 내의 DRAM 캐시(104)는 시스템 메모리 DRAM(110)과 독립적으로 그리고 이와 병렬로 액세스될 수 있다. 그 결과, DRAM 캐시(104)와 시스템 메모리 DRAM(110) 모두로부터 동시에 판독함으로써 메모리 대역폭이 효과적으로 증가될 수 있다. 일부 양상들에서, DRAM 캐시(104)는 DRAM 캐시(104) 내에서 축출할 후보들을 결정하기 위한 랜덤 교체 정책을 구현할 수 있는 한편, 일부 양상들은 DRAM 캐시(104)의 특정 구현들에 대해 최적화된 다른 교체 정책들을 구현할 수 있다.
[0025] 각각의 메모리 연산을 위해 DRAM 캐시(104)의 태그 디렉터리(106)에 액세스하는 것은 DRAM 캐시(104)를 사용하는 성능 이익들을 상쇄시킬 수 있는 레이턴시 패널티들을 초래할 수 있다. 따라서 레이턴시 패널티들을 최소화하면서 메모리 대역폭을 개선하도록 DRAM 캐시(104)에 대한 액세스를 관리하기 위한 확장 가능한 메커니즘을 제공하는 것이 바람직하다. 이와 관련하여, DRAM 캐시(104)에 대한 액세스를 관리하기 위해 DRAM 캐시 관리 회로(102)가 제공된다. DRAM 캐시 관리 회로(102)는 컴퓨트 다이(112) 상에 위치되며, 고대역폭 메모리(108) 및 시스템 메모리 DRAM(110)에 통신 가능하게 연결된다. DRAM 캐시 관리 회로(102)는 또한, 시스템 캐시(114)에 의해 그리고/또는 프로세서 기반 시스템(100) 내의 (도시되지 않은) 다른 마스터 디바이스들(예컨대, 한정이 아닌 예들로서, 중앙 처리 유닛(CPU: central processing unit), 입력/출력(I/O: input/output) 인터페이스들 및/또는 그래픽 처리 유닛(GPU: graphics processing unit))에 의해 판독되고 기록될 수 있다. 아래에서 보다 상세히 논의되는 바와 같이, DRAM 캐시 관리 회로(102)는 데이터를 리트리브할 메모리 어드레스를 특정하는 판독 어드레스(130)를 포함하는 메모리 판독 요청(128)의 수신에 대한 응답으로 메모리 판독 연산을 수행할 수 있다. 일부 양상들은 시스템 캐시(114) 상에서의 미스에 대한 응답으로 메모리 판독 요청(128)이 수신된다고 규정할 수 있다. 일부 양상들에서, DRAM 캐시 관리 회로(102)는 기록 데이터(136)가 기록될 기록 어드레스(134)를 포함하는 메모리 기록 요청(132)의 수신에 대한 응답으로 메모리 기록 연산을 추가로 수행할 수 있다.
[0026] 태그 디렉터리(106)에 대한 액세스들로부터 발생할 수 있는 액세스 레이턴시를 감소시키기 위해, DRAM 캐시 관리 회로(102)는 태그 디렉터리 캐시(138) 및 태그 디렉터리 캐시(138)에 대한 태그 디렉터리 캐시 디렉터리(140)를 제공한다. DRAM 캐시(104) 내에서 빈번하게 액세스되는 DRAM 캐시 라인들(118(0)-118(B), 118'(0)-118'(B))에 대응하는 태그 디렉터리(106)로부터의 태그들(122(0)-122(I))을 캐시하기 위해, 태그 디렉터리 캐시(138)는 웨이들(144(0)-144(C))로 조직화된 태그 디렉터리 캐시 라인들(142(0)-142(A), 142'(0)-142'(A))을 제공한다. 태그 디렉터리 캐시(138) 내의 태그 디렉터리 캐시 라인들(142(0)-142(A), 142'(0)-142'(A)) 각각은 DRAM 캐시(104)의 다수의 DRAM 캐시 라인들(118(0)-118(B), 118'(0)-118'(B))에 대한 태그들(122(0)-122(I))을 포함하는 태그 디렉터리(106)로부터의 메모리의 블록을 저장할 수 있다. 한정이 아닌 예로서, 일부 양상들에서, DRAM 캐시(104)에 대한 태그 디렉터리(106)에 저장된 태그들(122(0)-122(I))은 각각 16 비트일 수 있는 한편, 태그 디렉터리 캐시(138) 내의 태그 디렉터리 캐시 라인들(142(0)-142(A), 142'(0)-142'(A))은 각각 64 바이트일 수 있다. 따라서 태그 디렉터리 캐시(138) 내의 태그 디렉터리 캐시 라인들(142(0)-142(A), 142'(0)-142'(A)) 각각은 태그 디렉터리(106)로부터의 32개의 태그들(122(0)-122(31))을 저장할 수 있다.
[0027] 태그 디렉터리 캐시(138) 내의 각각의 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))에 대해, 태그 디렉터리 캐시(138)에 대한 태그 디렉터리 캐시 디렉터리(140)는 DRAM 캐시(104)의 대응하는 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))의 메모리 어드레스로부터 생성된 태그(146(0)-146(J))("T")를 저장한다. 예를 들어, 메모리 어드레스들이 42 비트를 포함하는 예시적인 프로세서 기반 시스템(100)에서는, (메모리 어드레스에 대한 데이터가 저장될 한 세트의 DRAM 캐시(104)를 결정하는 데 사용되는 메모리 어드레스의 일부를 표현할 수 있는) 비트 29에서부터 비트 17까지가 태그 디렉터리 캐시 디렉터리(140) 내의 메모리 어드레스에 대한 태그(146(0)-146(J))로서 사용될 수 있다. 태그 디렉터리 캐시(138)에 대한 태그 디렉터리 캐시 디렉터리(140)는 또한, 대응하는 태그들(146(0)-146(J))이 유효한지 여부를 표시하는 유효 비트들(148(0)-148(J))("V"), 및 태그들(146(0)-146(J))에 대응하는 태그 디렉터리 캐시 라인들(142(0)-142(A), 142'(0)-142'(A))이 수정되었는지 여부를 표시하는 더티 비트들(150(0)-150(J))("D")을 저장한다.
[0028] 일부 양상들에서, DRAM 캐시 관리 회로(102)는 메모리 대역폭을 개선하고 메모리 액세스 경합을 줄이기 위한 로드 밸런싱 회로(152)를 추가로 제공한다. 요청된 메모리 어드레스가 시스템 메모리 DRAM(110)이나 DRAM 캐시(104)로부터 판독될 수 있는 상황들에서, 로드 밸런싱 회로(152)는 한정이 아닌 예들로서, 대역폭 및 레이턴시와 같은 로드 밸런싱 기준들을 기초로 메모리 어드레스를 판독할 가장 적절한 소스를 결정한다. 이런 식으로, 로드 밸런싱 회로(152)는 시스템 자원들의 사용을 최적화하도록 시스템 메모리 DRAM(110)과 DRAM 캐시(104) 사이에 메모리 액세스들을 분배할 수 있다.
[0029] 일부 양상들에서, DRAM 캐시 관리 회로(102)는 "동시 기록" 캐시 관리 시스템으로서 구현될 수 있다. 동시 기록 구현에서, 시스템 캐시(114)로부터 축출된 더티(즉, 수정된) 데이터가 DRAM 캐시 관리 회로(102)에 의해 고대역폭 메모리(108)의 DRAM 캐시(104)와 시스템 메모리 DRAM(110) 모두에 기록된다. 그 결과, DRAM 캐시(104) 내의 데이터와 시스템 메모리 DRAM(110) 내의 데이터가 항상 동기화된다. 동시 기록 구현에서의 DRAM 캐시(104)와 시스템 메모리 DRAM(110)은 둘 다 정확한 데이터를 포함하는 것이 보장되기 때문에, DRAM 캐시 관리 회로(102)의 로드 밸런싱 회로(152)는 DRAM 캐시(104)와 시스템 메모리 DRAM(110) 간의 메모리 판독 연산들을 자유롭게 로드 밸런싱할 수 있다. 그러나 DRAM 캐시(104)로의 각각의 기록이 시스템 메모리 DRAM(110)으로의 기록에 대응할 것이므로, DRAM 캐시 관리 회로(102)의 동시 기록 구현은 시스템 메모리 DRAM(110)으로의 감소된 기록 대역폭을 야기하지 않을 수 있다.
[0030] DRAM 캐시 관리 회로(102)의 일부 양상들은 "후기록" 캐시 관리 시스템으로서 구현될 수 있는데, 태그 디렉터리 캐시(138)의 태그 디렉터리 캐시 라인들(142(0)-142(A), 142'(0)-142'(A))은 DRAM 캐시(104)의 태그 디렉터리(106)로부터의 태그들(122(0)-122(I))과 함께 더티 비트들(126(0)-126(I))을 캐시한다. 더티 비트들(126(0)-126(I))은 태그 디렉터리 캐시(138) 내에 캐시된 태그들(122(0)-122(I))에 대응하는 DRAM 캐시(104)에 저장된 데이터가 더티인지 여부(즉, 데이터가 시스템 메모리 DRAM(110)이 아니라 DRAM 캐시(104)에 기록되었는지 여부)를 표시한다. 데이터가 더티가 아니라면, 데이터는 DRAM 캐시 관리 회로(102)의 로드 밸런싱 회로(152)에 의해 결정된 대로, DRAM 캐시(104) 또는 시스템 메모리 DRAM(110)으로부터 판독될 수 있다. 그러나 태그 디렉터리(106)에 캐시된 더티 비트들(126(0)-126(I))이 DRAM 캐시(104)에 저장된 데이터가 더티임을 표시한다면, 로드 밸런싱이 가능하지 않은데, 이는 DRAM 캐시(104)가 단지 수정된 데이터에 대한 소스이기 때문이다. 이에 따라, DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)로부터 더티 데이터를 판독한다. DRAM 캐시 관리 회로(102)의 후기록 구현은 시스템 메모리 DRAM(110)에 대한 메모리 기록 대역폭을 감소시킬 수 있지만, DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)로부터 축출된 더티 데이터를 결국 시스템 메모리 DRAM(110)으로 후기록해야 한다. DRAM 캐시 관리 회로(102)의 후기록 구현의 일부 양상들에서는, 태그 디렉터리 캐시(138)로부터 태그 디렉터리 캐시 라인들(142(0)-142(A), 142'(0)-142'(A)) 중 하나가 축출될 때, DRAM 캐시 관리 회로(102)는 축출된 태그 디렉터리 캐시 라인들(142(0)-142(A), 142'(0)-142'(A))에 대응하는 DRAM 캐시(104) 내의 모든 더티 데이터를 시스템 메모리 DRAM(110)에 복사하도록 구성된다.
[0031] DRAM 캐시 관리 회로(102)의 일부 양상들은 DRAM 캐시 관리 회로(102)에 의해 이루어진 대응하는 확률적 결정들에 따라 일부 연산들(예컨대, 한정이 아닌 예들로서, 시스템 메모리 DRAM(110) 및/또는 DRAM 캐시(104)로의 메모리 액세스들, 및/또는 태그 디렉터리 캐시(138) 및 태그 디렉터리 캐시 디렉터리(140)에 대한 업데이트들을 수반하는 연산들)을 수행함으로써 메모리 대역폭을 더 개선할 수 있다. 각각의 확률적 결정은 대응하는 연산의 주파수를 튜닝하는 데 사용될 수 있으며, 무상태(stateless)(즉, 이전 확률적 결정들의 결과와 관련되지 않음)일 수 있다. 예를 들어, DRAM 캐시 관리 회로(102)의 일부 양상들에 따르면, 시스템 캐시(114)에 의해 축출된 랜덤하게 선택된 데이터의 일부만이 DRAM 캐시(104)에 기록되도록, 시스템 캐시(114)에 의해 축출된 데이터는 확률적 결정을 기초로 DRAM 캐시(104)에 기록될 수 있다. 마찬가지로, DRAM 캐시 관리 회로(102)의 일부 양상들은 확률적 결정을 기초로 태그 디렉터리 캐시(138)를 보충하도록 구성될 수 있다. 따라서 "확률적으로" 발생하는 것으로 본 명세서에서 설명되는 각각의 연산은 주어진 경우에 수행될 수도 또는 수행되지 않을 수도 있으며, 추가로 주어진 확률적 연산의 발생 또는 그의 결여는 DRAM 캐시 관리 회로(102)에 의한 추가 연산들을 추가로 트리거할 수 있다고 이해되어야 한다.
[0032] 일부 양상들에서는, DRAM 캐시(104)의 DRAM 캐시 라인들(118(0)-118(B), 118'(0)-118'(B))의 캐시 라인 크기를 시스템 캐시 라인 크기의 배수가 되게 함으로써 태그 디렉터리 캐시(138)에 의해 추적될 수 있는 메모리의 양이 증가될 수 있다. "세그먼트화된 캐시 라인들로 섹터화된 DRAM 캐시들"로 지칭되는 그러한 양상들에서, 시스템 메모리 DRAM(110)의 다수의 메모리 라인들(116(0)-116(X))은 DRAM 캐시(104)의 단일 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))의 (도시되지 않은) 대응하는 데이터 세그먼트들에 저장될 수 있다. DRAM 캐시(104)의 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B)) 내의 각각의 데이터 세그먼트는 독립적으로 관리, 액세스 및 업데이트될 수 있으며, 더티 데이터 세그먼트들만이 시스템 메모리 DRAM(110)에 후기록될 필요가 있다. 그러나 DRAM 캐시(104)로부터의 캐시 라인 할당, 축출 및 교체는 DRAM 캐시(104)의 캐시 라인 크기의 입도(granularity)로 이루어져야 한다.
[0033] 도 1의 DRAM 캐시 관리 회로(102)에 의해 관리될 수 있는 DRAM 캐시(104)의 예시적인 구현들의 비교를 예시하기 위해, 도 2a - 도 2b가 제공된다. 도 2a는 시스템 캐시 라인 크기와 같은 캐시 라인 크기를 제공하는 DRAM 캐시(104)를 예시하는 한편, 도 2b는 시스템 캐시 라인 크기의 4배와 같은 캐시 라인 크기를 제공하는 DRAM 캐시(104)를 예시한다. 명확하게 하기 위해, 도 2a 및 도 2b의 설명에서는 도 1의 엘리먼트들이 참조된다.
[0034] 도 2a에서는, DRAM 캐시 라인(200)이 도시된다. 일부 양상들에서, DRAM 캐시 라인(200)은 도 1의 DRAM 캐시 라인들(118(0)-118(B), 118'(0)-118'(B)) 중 하나에 대응할 수 있다. 도 2a의 예에서, DRAM 캐시 라인(200)은 시스템 캐시 라인 크기와 동일한 크기이다. 따라서 DRAM 캐시 라인(200)은 시스템 메모리 DRAM(110)으로부터의 (도 1의 메모리 라인들(116(0)-116(X)) 중 하나에 대응하는) 단일의 캐시된 메모리 라인(202)을 저장할 수 있다. 캐시된 메모리 라인(202)의 상태를 식별하고 추적하기 위해, DRAM 캐시(104)에 대한 태그 디렉터리(106)의 태그 디렉터리 항목(204)은 어드레스 태그(206)("T"), 유효 비트(208)("V") 및 더티 비트(210)("D")를 포함한다. 반면, 도 2b는 시스템 캐시 라인 크기의 4배인 DRAM 캐시 라인(212)을 예시한다. 이에 따라, 도 1의 DRAM 캐시 라인들(118(0)-118(B), 118'(0)-118'(B)) 중 하나에 대응하는 DRAM 캐시 라인(212)은 4개의 데이터 세그먼트들(214(0)-214(3))을 포함한다. 데이터 세그먼트들(214(0)-214(3)) 각각은 시스템 메모리 DRAM(110)으로부터의 (도시되지 않은) 캐시된 메모리 라인(116(0)-116(X))을 저장할 수 있다. 태그 디렉터리 항목(216)은 DRAM 캐시 라인(212)에 대한 어드레스 태그(218)("T")를 포함하며, 데이터 세그먼트들(214(0)-214(3))에 대응하는 4개의 유효 비트들(220(0)-220(3))("V0-V3") 및 4개의 더티 비트들(222(0)-222(3))("D0-D3")을 더 포함한다. 유효 비트들(220(0)-220(3)) 및 더티 비트들(222(0)-222(3))은 데이터 세그먼트들(214(0)-214(3)) 각각이 다른 데이터 세그먼트들(214(0)-214(3))과 관계없이 관리될 수 있게 한다.
[0035] 도 3a - 도 3b는 도 1의 태그 디렉터리 캐시(138) 및 DRAM 캐시(104)를 사용하여 판독 연산을 수행하기 위한 도 1의 DRAM 캐시 관리 회로(102)의 예시적인 동작들을 예시하는 흐름도들이다. 명확하게 하기 위해, 도 3a - 도 3b의 설명에서는 도 1의 엘리먼트들이 참조된다. 도 3a에서, DRAM 캐시 관리 회로(102)가 판독 어드레스(130)를 포함하는 메모리 판독 요청(128)을 수신하는 것(블록(300))으로 동작들이 시작된다. 이와 관련하여, DRAM 캐시 관리 회로(102)는 본 명세서에서 "판독 어드레스를 포함하는 메모리 판독 요청을 수신하기 위한 수단"으로 지칭될 수 있다. DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)의 태그 디렉터리 캐시(138)의 태그 디렉터리 캐시 디렉터리(140)에서 판독 어드레스(130)가 발견되는지 여부를 결정한다(블록(302)). 이에 따라, DRAM 캐시 관리 회로(102)는 본 명세서에서 “DRAM 캐시 관리 회로의 태그 디렉터리 캐시의 태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견되는지 여부를 결정하기 위한 수단”으로 지칭될 수 있다. 일부 양상들에서, 태그 디렉터리 캐시 디렉터리(140)에서 판독 어드레스(130)가 발견되는지 여부를 결정하는 것은 태그들(146(0)-146(J)) 중 하나가 판독 어드레스(130)에 대응하는지 여부를 결정하는 것을 포함할 수 있다. 한정이 아닌 예로서, 42-비트 판독 어드레스(130)의 경우, 태그 디렉터리 캐시(138)에 대한 태그 디렉터리 캐시 디렉터리(140) 내의 대응하는 태그(146(0)-146(J))는 판독 어드레스(130) 중 비트 29 내지 비트 17을 포함할 수 있는데, 이는 판독 어드레스(130)에 대한 데이터가 저장될 DRAM 캐시(104)의 세트를 나타낼 수 있다.
[0036] DRAM 캐시 관리 회로(102)가 결정 블록(302)에서, 태그 디렉터리 캐시 디렉터리(140)에서 판독 어드레스(130)가 발견되지 않는다고 결정한다면, 도 3b의 블록(304)에서 처리가 재개된다. 그러나 태그 디렉터리 캐시 디렉터리(140)에서 판독 어드레스(130)가 발견된다면, DRAM 캐시 관리 회로(102)는 다음에 태그 디렉터리 캐시(138)를 기초로, 고대역폭 메모리(108)의 일부인 DRAM 캐시(104)에서 판독 어드레스(130)가 발견되는지 여부를 결정한다(블록(306)). 따라서 DRAM 캐시 관리 회로(102)는 본 명세서에서 “태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견된다는 결정에 대한 응답으로, 태그 디렉터리 캐시를 기초로, 고대역폭 메모리의 일부인 DRAM 캐시에서 판독 어드레스가 발견되는지 여부를 결정하기 위한 수단"으로 지칭될 수 있다. 앞서 설명한 바와 같이, 태그 디렉터리 캐시(138)는 DRAM 캐시(104)에 대한 태그 디렉터리(106)로부터의 태그들(122(0)-122(I))의 서브세트를 캐시한다. 42-비트 판독 어드레스(130)의 경우, 태그 디렉터리(106) 내의(그리고 이에 따라 태그 디렉터리 캐시(138)에 캐시된) 태그들(122(0)-122(I)) 각각은 한정이 아닌 예로서, 판독 어드레스(130)의 12개의 최상위 비트들(즉, 비트 41 내지 비트 30)을 포함할 수 있다. 태그 디렉터리 캐시(138)에 대한 태그 디렉터리 캐시 디렉터리(140)는 판독 어드레스(130) 내의 서로 다른 세트의 비트들을 태그들(146(0)-146(J))에 사용할 수 있기 때문에, 주어진 판독 어드레스(130)가 블록(302)에서 태그 디렉터리 캐시(138)에 대한 태그 디렉터리 캐시 디렉터리(140)에서 히트를 야기하고, DRAM 캐시(104)에는 아직 실제로 캐시되지 않는 것이 가능하다.
[0037] 이에 따라, DRAM 캐시 관리 회로(102)가 결정 블록(306)에서, DRAM 캐시(104)에서 판독 어드레스(130)가 발견되지 않는다고 결정한다면, DRAM 캐시 관리 회로(102)는 시스템 메모리 DRAM(110)에서 판독 어드레스(130)의 데이터를 판독한다(블록(308)). 이와 관련하여, DRAM 캐시 관리 회로(102)는 본 명세서에서 “DRAM 캐시에서 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 시스템 메모리 DRAM에서 판독 어드레스의 데이터를 판독하기 위한 수단”으로 지칭될 수 있다. DRAM 캐시(104)에서 판독 어드레스(130)가 발견된다면, DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)의 판독 어드레스(130)에 대한 데이터가 클린인지 여부(또는 DRAM 캐시 관리 회로(102)가 동시 기록 모드로 작동하고 있는지 여부)를 결정할 수 있다(블록(310)). 클린이 아니라면, 요청된 데이터는 DRAM 캐시(104)로부터만 안전하게 판독될 수 있고, 따라서 DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)로부터 판독 어드레스(130)에 대한 데이터를 판독한다(블록(312)). 따라서 DRAM 캐시 관리 회로(102)는 본 명세서에서 “DRAM 캐시에서 판독 어드레스가 발견된다는 결정에 대한 응답으로, DRAM 캐시로부터 판독 어드레스에 대한 데이터를 판독하기 위한 수단"으로 지칭될 수 있다.
[0038] 다른 한편으로는, DRAM 캐시 관리 회로(102)가 결정 블록(310)에서, DRAM 캐시(104) 내의 판독 어드레스(130)에 대한 데이터가 클린이라고(또는 DRAM 캐시 관리 회로(102)가 동시 기록 모드로 동작하고 있다고) 결정한다면, DRAM 캐시(104)와 시스템 메모리 DRAM(110)은 둘 다 요청된 데이터의 동일한 사본을 포함한다. 따라서 DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)와 시스템 메모리 DRAM(110) 중에서 선호되는 데이터 소스를 (예컨대, 로드 밸런싱 회로(152)를 사용하여) 식별한다(블록(314)). 시스템 메모리 DRAM(110)이 선호되는 데이터 소스로서 식별된다면, DRAM 캐시 관리 회로(102)는 시스템 메모리 DRAM(110)에서 판독 어드레스(130)의 데이터를 판독한다(블록(316)). 그렇지 않으면, DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)로부터 판독 어드레스(130)에 대한 데이터를 판독한다(블록(318)).
[0039] 이제 도 3b를 참조하면, DRAM 캐시 관리 회로(102)가 도 3a의 결정 블록(302)에서, 태그 디렉터리 캐시 디렉터리(140)에서 판독 어드레스(130)가 발견되지 않는다고 결정한다면, DRAM 캐시 관리 회로(102)는 시스템 메모리 DRAM(110)에서 판독 어드레스(130)의 데이터를 판독한다(블록(304)). 이에 따라, DRAM 캐시 관리 회로(102)는 본 명세서에서 “태그 디렉터리 캐시 디렉터리에서 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 시스템 메모리 DRAM에서 판독 어드레스의 데이터를 판독하기 위한 수단”으로 지칭될 수 있다. 일부 양상들에서, DRAM 캐시 관리 회로(102)는 또한 시스템 메모리 DRAM(110)에서 판독 어드레스(130)의 데이터를 판독하는 것과 병행하여 태그 디렉터리 캐시(138)를 확률적으로 보충할 수 있다(블록(320)). 일부 양상들에 따르면, 태그 디렉터리 캐시(138)를 확률적으로 보충하기 위한 동작들은 DRAM 캐시(104)의 태그 디렉터리(106)로부터 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))에 대한 데이터를 먼저 판독하는 것(블록(322))을 포함할 수 있다. 그 다음, 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))이 태그 디렉터리 캐시(138)에 설치된다(블록(324)). 태그 디렉터리 캐시 라인들(142(0)-142(A), 142'(0)-142'(A))을 태그 디렉터리 캐시(138)에 설치하기 위한 추가 동작들이 도 5a - 도 5d와 관련하여 아래에서 보다 상세히 논의된다.
[0040] 동시 기록 또는 후기록 모드에서 시스템 캐시(114)로부터의 데이터(클린 또는 더티)의 축출로부터 야기되는 기록 연산을 수행하기 위한 도 1의 DRAM 캐시 관리 회로(102)의 예시적인 동작들을 예시하기 위해, 도 4a - 도 4e가 제공된다. 명확하게 하기 위해, 도 4a - 도 4e의 설명에서는 도 1의 엘리먼트들이 참조된다. 추가로, 클린 축출 데이터 또는 더티 축출 데이터의 기록에만 관련된 동작들 및/또는 일부 양상들에서는 동시 기록 모드 또는 후기록 모드에만 관련되는 동작들이 도 4a - 도 4e의 설명에서 그와 같이 지정된다.
[0041] 도 4a의 동작들은 DRAM 캐시 관리 회로(102)가 시스템 캐시(114)(예컨대, 한정이 아닌 예로서 L3 캐시)로부터, 기록 어드레스(134) 및 (본 명세서에서는 "축출 데이터(136)"로 지칭되는) 기록 데이터(136)를 포함하는 메모리 기록 요청(132)을 수신하는 것(블록(400))으로 시작된다. 축출 데이터(136)는 클린 축출 데이터 또는 더티 축출 데이터를 포함할 수 있으며, 따라서 본 명세서에서는 추가로 "클린 축출 데이터(136)" 또는 "더티 축출 데이터(136)"로 적절히 지칭될 수 있다. 아래에서 언급되는 바와 같이, 클린 축출 데이터(136) 및 더티 축출 데이터(136)의 처리는 DRAM 캐시 관리 회로(102)가 동시 기록 모드로 동작하도록 구성되는지 아니면 후기록 모드로 동작하도록 구성되는지에 따라 달라질 수 있다. 이러한 임의의 동작 차이들은 아래 도 4a - 도 4e의 설명에서 언급된다.
[0042] DRAM 캐시 관리 회로(102)는 다음에 태그 디렉터리 캐시 디렉터리(140)에서 기록 어드레스(134)가 발견되는지 여부를 결정한다(블록(402)). 일부 양상들은 태그 디렉터리 캐시 디렉터리(140)에서 기록 어드레스(134)가 발견되는지 여부를 결정하는 것은 태그들(146(0)-146(J)) 중 하나가 기록 어드레스(134)에 대응하는지 여부를 결정하는 것을 포함할 수 있다고 규정할 수 있다. 태그 디렉터리 캐시 디렉터리(140)에서 기록 어드레스(134)가 발견되지 않는다면, DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)의 태그 디렉터리(106)에서 기록 어드레스(134)에 대한 태그(122(0)-122(I))가 저장될 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))에 대한 데이터를 DRAM 캐시(104)의 태그 디렉터리(106)로부터 리트리브한다(블록(404)). 그 다음, DRAM 캐시 관리 회로(102)는 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))을 태그 디렉터리 캐시(138)에 설치한다(블록(406)). 일부 양상들에 따라 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))을 태그 디렉터리 캐시(138)에 설치하기 위한 블록(406)의 예시적인 동작들은 도 5a - 도 5d와 관련하여 보다 상세히 논의된다.
[0043] DRAM 캐시 관리 회로(102)가 결정 블록(402)에서, 태그 디렉터리 캐시 디렉터리(140)에서 기록 어드레스(134)가 발견된다고 결정한다면, DRAM 캐시 관리 회로(102)는 태그 디렉터리 캐시(138)를 기초로, DRAM 캐시(104)에서 기록 어드레스(134)가 발견되는지 여부를 추가로 결정한다(블록(408)). 앞서 지적한 바와 같이, 태그 디렉터리 캐시(138)에 대한 태그 디렉터리 캐시 디렉터리(140)가 기록 어드레스(134) 내의 서로 다른 세트의 비트들을 태그들(146(0)-146(J))에 사용할 수 있기 때문에 이 동작이 필요하다. 그 결과, 기록 어드레스(134)가 블록(402)에서 태그 디렉터리 캐시(138)에 대한 태그 디렉터리 캐시 디렉터리(140)에서 히트를 야기하고, DRAM 캐시(104)에는 아직 실제로 캐시되지 않는 것이 가능하다. DRAM 캐시(104)에서 기록 어드레스(134)가 발견되지 않는다면, 처리는 도 4b의 블록(410)에서 재개된다. 그러나 DRAM 캐시 관리 회로(102)가 결정 블록(408)에서, DRAM 캐시(104)에서 기록 어드레스(134)가 발견된다고 결정한다면, DRAM 캐시 관리 회로(102)는 축출 데이터(136)가 클린인지 아니면 더티인지, 그리고 DRAM 캐시 관리 회로(102)가 후기록 모드로 동작하도록 구성되는지 아니면 동시 기록 모드로 동작하도록 구성되는지에 따라 서로 다른 동작들을 수행한다. 후기록 모드에서 더티 축출 데이터(136)를 기록할 때, DRAM 캐시 관리 회로(102)는 태그 디렉터리 캐시 디렉터리(140)에서 기록 어드레스(134)에 대한 더티 비트(150(0)-150(J))를 설정한다(블록(412)). 그 다음, DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)에서 기록 어드레스(134)에 대한 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))에 축출 데이터(136)를 기록한다(블록(414)). 그 다음, 처리가 완료된다(블록(416)). 반면, 축출 데이터(136)가 클린 축출 데이터(136)이거나 DRAM 캐시 관리 회로(102)가 동시 기록 모드로 동작한다면, 그리고 결정 블록(408)에서 기록 어드레스(134)가 DRAM 캐시(104)에서 발견된다면, 처리가 완료된다(블록(416)).
[0044] 이제 도 4b를 참조하면, DRAM 캐시 관리 회로(102)가 도 4a의 결정 블록(408)에서, DRAM 캐시(104)에서 기록 어드레스(134)가 발견되지 않는다고 결정한다면, DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)에 축출 데이터(136)를 기록한다(블록(410)). 일부 양상들에서, DRAM 캐시(104)에 축출 데이터(136)를 기록하기 위한 블록(410)의 예시적인 동작들은 먼저 DRAM 캐시(104) 내에 무효 웨이(120(0)-120(C))가 존재하는지 여부를 결정하는 것(블록(418))을 포함할 수 있다. 존재한다면, 처리는 도 4c의 블록(420)에서 재개된다. DRAM 캐시 관리 회로(102)가 결정 블록(418)에서, DRAM 캐시(104) 내에 무효 웨이(120(0)-120(C))가 존재하지 않는다고 결정한다면, DRAM 캐시 관리 회로(102)는 다음에, DRAM 캐시(104) 내에 클린 웨이(120(0)-120(C))가 존재하는지 여부를 결정한다(블록(422)). DRAM 캐시(104) 내에 클린 웨이(120(0)-120(C))가 존재한다면, 처리는 도 4d의 블록(424)에서 재개된다. 존재하지 않는다면, 처리는 도 4e의 블록(426)에서 재개된다.
[0045] 도 4c에서는, DRAM 캐시(104)에 축출 데이터(136)를 기록하기 위한 도 4b의 블록(410)의 동작들이 계속된다. DRAM 캐시 관리 회로(102)는 우선, 새로운 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))에 대한 타깃 웨이(120(0)-120(C))로서 무효 웨이(120(0)-120(C))를 할당한다(블록(420)). 타깃 웨이(120(0)-120(C))의 새로운 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))에 축출 데이터(136)가 기록된다(블록(428)). 그 다음, DRAM 캐시 관리 회로(102)는 새로운 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))이 유효함을 나타내도록 새로운 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))에 대한 태그 디렉터리 캐시 디렉터리(140) 내의 하나 또는 그보다 많은 유효 비트들(148(0)-148(J))을 업데이트한다(블록(430)). 마지막으로, DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)의 태그 디렉터리(106)에서 새로운 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))에 대한 태그(122(0)-122(I))를 업데이트한다(블록(432)).
[0046] DRAM 캐시(104)에 축출 데이터(136)를 기록하기 위한 도 4b의 블록(410)의 동작들이 도 4d에서 계속된다. 도 4d에서, DRAM 캐시 관리 회로(102)는 새로운 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))에 대한 타깃 웨이(120(0)-120(C))로서 클린 웨이(120(0)-120(C))를 할당한다(블록(424)). DRAM 캐시 관리 회로(102)는 다음에, 타깃 웨이(120(0)-120(C))의 새로운 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))에 축출 데이터(136)를 기록한다(블록(434)). 그 다음, DRAM 캐시(104)의 태그 디렉터리(106) 내의 하나 또는 그보다 많은 유효 비트들(124(0)-124(I))이 업데이트된다(블록(436)). DRAM 캐시 관리 회로(102)는 또한, 태그 디렉터리 캐시 디렉터리(140)에서 타깃 웨이(120(0)-120(C))의 하나 또는 그보다 많은 태그들(146(0)-146(J))에 대한 하나 또는 그보다 많은 유효 비트들(148(0)-148(J))을 업데이트한다(블록(438)). DRAM 캐시 관리 회로(102)는 새로운 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))에 대한 태그(146(0)-146(J))를 태그 디렉터리 캐시 디렉터리(140)에 기록한다(블록(440)). 마지막으로, DRAM 캐시 관리 회로(102)는 DRAM 캐시(104)의 태그 디렉터리(106)에서 새로운 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))에 대한 태그(122(0)-122(I))를 업데이트한다(블록(442)).
[0047] 도 4e를 참조하여, DRAM 캐시(104)에 축출 데이터(136)를 기록하기 위한 도 4b의 블록(410)의 동작들이 계속된다. 도 4e에서, DRAM 캐시 관리 회로(102)는 DRAM 캐시(104) 내에서 더티 웨이(120(0)-120(C))를 선택한다(블록(426)). 그 다음, 더티 웨이(120(0)-120(C))가 새로운 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))에 대한 타깃 웨이(120(0)-120(C))로서 할당된다(블록(444)). DRAM 캐시 관리 회로(102)는 타깃 웨이(120(0)-120(C)) 내의 각각의 더티 DRAM 캐시 라인(118(0)-118(B), 118'(0)-118'(B))을 시스템 메모리 DRAM(110)에 기록한다(블록(446)). 그 다음, 처리는 도 4d의 블록(434)에서 재개된다.
[0048] 도 5a - 도 5d는 태그 디렉터리 캐시 라인들(142(0)-142(A), 142'(0)-142'(A))을 태그 디렉터리 캐시(138)에 설치하기 위한 예시적인 동작들을 예시하기 위해 제공된다. 명확하게 하기 위해, 도 5a - 도 5d의 설명에서는 도 1의 엘리먼트들이 참조된다. 도 5a에서, DRAM 캐시 관리 회로(102)가 태그 디렉터리 캐시(138) 내에 무효 웨이(144(0)-144(C))가 존재하는지 여부를 결정하는 것으로 동작들이 시작된다(블록(500)). 존재한다면, 처리는 도 5b의 블록(502)에서 재개된다. 그러나 태그 디렉터리 캐시(138) 내에 무효 웨이(144(0)-144(C))가 존재하지 않는다면, DRAM 캐시 관리 회로(102)는 다음에, 태그 디렉터리 캐시(138) 내에 클린 웨이(144(0)-144(C))가 존재하는지 여부를 결정한다(블록(504)). 존재한다면, 처리는 도 5c의 블록(506)에서 재개된다. 태그 디렉터리 캐시(138) 내에 클린 웨이(144(0)-144(C))가 존재하지 않는다면, 처리는 도 5d의 블록(508)에서 재개된다.
[0049] 이제 도 5b를 참조하면, DRAM 캐시 관리 회로(102)는 우선, 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))에 대한 타깃 웨이(144(0)-144(C))로서 무효 웨이(144(0)-144(C))를 할당한다(블록(502)). DRAM 캐시 관리 회로(102)는 다음에, 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))을 타깃 웨이(144(0)-144(C))에 기록한다(블록(510)). DRAM 캐시 관리 회로(102)는 태그 디렉터리 캐시 디렉터리(140)에서 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))에 대한 하나 또는 그보다 많은 유효 비트들(148(0)-148(J))을 업데이트한다(블록(512)). DRAM 캐시 관리 회로(102)는 다음에, 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))에 대한 태그(146(0)-146(J))를 태그 디렉터리 캐시 디렉터리(140)에 기록한다(블록(514)).
[0050] 도 5c를 참조하면, DRAM 캐시 관리 회로(102)는 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))에 대한 타깃 웨이(144(0)-144(C))로서 클린 웨이(144(0)-144(C))를 할당한다(블록(506)). DRAM 캐시 관리 회로(102)는 다음에, 타깃 웨이(144(0)-144(C))의 하나 또는 그보다 많은 태그들(146(0)-146(J))에 대해 DRAM 캐시(104)의 태그 디렉터리(106) 내의 하나 또는 그보다 많은 유효 비트들(124(0)-124(I))을 업데이트한다(블록(516)). DRAM 캐시 관리 회로(102)는 또한 DRAM 캐시(104)의 태그 디렉터리(106)에서 타깃 웨이(144(0)-144(C))의 하나 또는 그보다 많은 태그들(122(0)-122(I))을 업데이트한다(블록(518)). 그 다음, 처리는 도 5b의 블록(510)에서 재개된다.
[0051] 도 5d에서, DRAM 캐시 관리 회로(102)는 태그 디렉터리 캐시(138) 내에서 더티 웨이(144(0)-144(C))를 선택한다(블록(508)). 더티 웨이(144(0)-144(C))는 DRAM 캐시 관리 회로(102)에 의해 새로운 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))에 대한 타깃 웨이(144(0)-144(C))로서 할당된다(블록(520)). DRAM 캐시 관리 회로(102)는 다음에, 타깃 웨이(144(0)-144(C)) 내의 각각의 더티 태그 디렉터리 캐시 라인(142(0)-142(A), 142'(0)-142'(A))을 시스템 메모리 DRAM(110)에 기록한다(블록(522)). 그 다음, 처리는 도 5c의 블록(516)에서 재개된다.
[0052] 본 명세서에 개시된 양상들에 따라 태그 디렉터리 캐시들을 이용한 확장 가능 DRAM 캐시 관리의 제공은 임의의 프로세서 기반 디바이스에서 제공되거나 임의의 프로세서 기반 디바이스로 통합될 수 있다. 예들은 제한 없이, 셋톱 박스, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 휴대 전화, 셀룰러폰, 스마트폰, 태블릿, 패블릿(phablet), 서버, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, 개인용 디지털 보조기기(PDA: personal digital assistant), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 휴대용 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크(DVD: digital video disc) 플레이어, 휴대용 디지털 비디오 플레이어 및 자동차를 포함한다.
[0053] 이와 관련하여, 도 6은 고대역폭 메모리(HBM: high-bandwidth memory)(108)의 일부인 DRAM 캐시(104)를 관리하기 위해 도 1에 예시된 DRAM 캐시 관리 회로(DCMC: DRAM cache management circuit)(102)를 이용할 수 있는 프로세서 기반 시스템(600)의 일례를 예시한다. 프로세서 기반 시스템(600)은 도 1의 컴퓨트 다이(112)를 포함하며, 컴퓨트 다이(112) 상에는 하나 또는 그보다 많은 프로세서들(604)을 각각 포함하는 하나 또는 그보다 많은 CPU들(602)이 제공된다. CPU(들)(602)는 일시적으로 저장된 데이터에 대한 신속한 액세스를 위해 프로세서(들)(604)에 연결되는 캐시 메모리(606)를 가질 수 있다. CPU(들)(602)는 시스템 버스(608)에 연결되고, 프로세서 기반 시스템(600)에 포함된 마스터 및 슬레이브 디바이스들을 상호 연결할 수 있다. 주지된 바와 같이, CPU(들)(602)는 시스템 버스(608)를 통해 어드레스, 제어 및 데이터 정보를 교환함으로써 이러한 다른 디바이스들과 통신한다. 예를 들어, CPU(들)(602)는 슬레이브 디바이스의 일례인 메모리 제어기(610)에 버스 트랜잭션 요청들을 전달할 수 있다.
[0054] 다른 마스터 및 슬레이브 디바이스들이 시스템 버스(608)에 접속될 수 있다. 도 6에 예시된 바와 같이, 이러한 디바이스들은 메모리 시스템(612), 하나 또는 그보다 많은 입력 디바이스들(614), 하나 또는 그보다 많은 출력 디바이스들(616), 하나 또는 그보다 많은 네트워크 인터페이스 디바이스들(618) 및 하나 또는 그보다 많은 디스플레이 제어기들(620)을 예들로서 포함할 수 있다. 입력 디바이스(들)(614)는 입력 키들, 스위치들, 음성 프로세서들 등을 포함하는(그러나 이에 제한되는 것은 아님) 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(616)는 오디오, 비디오, 다른 시각적 표시자들 등을 포함하는(그러나 이에 제한되는 것은 아님) 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들)(618)는 네트워크(622)로 그리고 네트워크(622)로부터의 데이터의 교환을 가능하게 하도록 구성된 임의의 디바이스들일 수 있다. 네트워크(622)는 유선 또는 무선 네트워크, 사설 또는 공공 네트워크, 근거리 네트워크(LAN: local area network), 무선 근거리 네트워크(WLAN: wireless local area network), 광역 네트워크(WAN: wide area network), BLUETOOTH™ 네트워크 및 인터넷을 포함하는(그러나 이에 제한되는 것은 아님) 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(618)는 원하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다. 메모리 시스템(612)은 하나 또는 그보다 많은 메모리 유닛들(624(0)-624(N))을 포함할 수 있다.
[0055] CPU(들)(602)는 또한 하나 또는 그보다 많은 디스플레이들(626)에 전송되는 정보를 제어하기 위해 시스템 버스(608)를 통해 디스플레이 제어기(들)(620)에 액세스하도록 구성될 수 있다. 디스플레이 제어기(들)(620)는 하나 또는 그보다 많은 비디오 프로세서들(628)을 통해 디스플레이될 정보를 디스플레이(들)(626)에 전송하고, 비디오 프로세서들(628)은 디스플레이될 정보를 디스플레이(들)(626)에 적합한 포맷으로 처리한다. 디스플레이(들)(626)는 음극선관(CRT: cathode ray tube), 액정 디스플레이(LCD: liquid crystal display), 플라즈마 디스플레이 등을 포함하는(그러나 이에 제한되는 것은 아님) 임의의 타입의 디스플레이를 포함할 수 있다.
[0056] 당해 기술분야에서 통상의 지식을 가진 자들은 추가로, 본 명세서에 개시된 양상들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들 및 알고리즘들이 메모리에 또는 다른 컴퓨터 판독 가능 매체에 저장되어 프로세서 또는 다른 처리 디바이스에 의해 실행되는 명령들, 전자 하드웨어, 또는 이 둘의 결합들로서 구현될 수 있다고 인식할 것이다. 본 명세서에서 설명된 마스터 디바이스들 및 슬레이브 디바이스들은 예들로서 임의의 회로, 하드웨어 컴포넌트, 집적 회로(IC) 또는 IC 칩에 이용될 수 있다. 본 명세서에 개시된 메모리는 임의의 타입 및 크기의 메모리일 수 있고, 원하는 임의의 타입의 정보를 저장하도록 구성될 수 있다. 이러한 상호 호환성을 명확히 설명하기 위해, 각종 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들은 일반적으로 이들의 기능과 관련하여 위에서 설명되었다. 이러한 기능이 어떻게 구현되는지는 전체 시스템에 부과된 설계 제약들, 특정 애플리케이션 및/또는 설계 선택들에 좌우된다. 당해 기술분야에서 통상의 지식을 가진 자들은 설명된 기능을 특정 애플리케이션마다 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들이 본 개시내용의 범위를 벗어나게 하는 것으로 해석되지는 않아야 한다.
[0057] 본 명세서에 개시된 양상들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들 및 회로들은 프로세서, 디지털 신호 프로세서(DSP: Digital Signal Processor), 주문형 집적 회로(ASIC: Application Specific Integrated Circuit), 필드 프로그래밍 가능 게이트 어레이(FPGA: Field Programmable Gate Array) 또는 다른 프로그래밍 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합으로 구현되거나 이들에 의해 수행될 수 있다. 프로세서는 마이크로프로세서일 수 있지만, 대안으로 프로세서는 임의의 종래 프로세서, 제어기, 마이크로컨트롤러 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 결합(예컨대, DSP와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 또는 그보다 많은 마이크로프로세서들, 또는 임의의 다른 이러한 구성)으로서 구현될 수 있다.
[0058] 본 명세서에 개시된 양상들은 하드웨어로 그리고 하드웨어에 저장되는 명령들로 구현될 수 있으며, 예를 들어, 랜덤 액세스 메모리(RAM: Random Access Memory), 플래시 메모리, 판독 전용 메모리(ROM: Read Only Memory), 전기적으로 프로그래밍 가능한 ROM(EPROM: Electrically Programmable ROM), 전기적으로 소거 가능한 프로그래밍 가능 ROM(EEPROM: Electrically Erasable Programmable ROM), 레지스터들, 하드디스크, 착탈식 디스크, CD-ROM, 또는 당해 기술분야에 공지된 임의의 다른 형태의 컴퓨터 판독 가능 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 읽고 저장 매체에 정보를 기록할 수 있도록 프로세서에 연결된다. 대안으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 원격국에 상주할 수 있다. 대안으로, 프로세서 및 저장 매체는 원격국, 기지국 또는 서버에 개별 컴포넌트들로서 상주할 수 있다.
[0059] 본 명세서의 예시적인 양상들 중 임의의 양상에서 설명된 동작 단계들은 예들 및 논의를 제공하기 위해 설명된다는 점이 또한 주목된다. 설명된 동작들은 예시된 순서들과는 다른 다수의 상이한 순서들로 수행될 수 있다. 게다가, 단일 동작 단계로 설명된 동작들은 실제로 다수의 서로 다른 단계들에서 수행될 수 있다. 추가로, 예시적인 양상들에서 논의된 하나 또는 그보다 많은 동작 단계들이 결합될 수 있다. 흐름도 도면들에 예시된 동작 단계들은 당해 기술분야에서 통상의 지식을 가진 자에게 쉽게 명백해지듯이 다수의 서로 다른 변형들이 가해질 수 있다고 이해되어야 한다. 당해 기술분야에서 통상의 지식을 가진 자들은 또한 정보 및 신호들이 다양한 다른 기술들 및 기법들 중 임의의 것을 이용하여 표현될 수 있다고 이해할 것이다. 예컨대, 상기 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심벌들 및 칩들은 전압들, 전류들, 전자기파들, 자기 필드들 또는 자기 입자들, 광 필드들 또는 광 입자들, 또는 이들의 임의의 결합들로 표현될 수 있다.
[0060] 본 개시내용의 상기의 설명은 당해 기술분야에서 통상의 지식을 가진 임의의 자가 본 개시내용을 이용하거나 실시할 수 있게 하도록 제공된다. 본 개시내용에 대한 다양한 변형들이 당해 기술분야에서 통상의 지식을 가진 자들에게 쉽게 명백할 것이며, 본 명세서에 정의된 일반 원리들은 본 개시내용의 사상 또는 범위를 벗어나지 않으면서 다른 변형들에 적용될 수 있다. 그러므로 본 개시내용은 본 명세서에서 설명된 예시들 및 설계들로 한정되는 것으로 의도되는 것이 아니라, 본 명세서에 개시된 원리들 및 신규한 특징들에 부합하는 가장 넓은 범위에 따르는 것이다.

Claims (39)

  1. 고대역폭 메모리의 일부인 동적 랜덤 액세스 메모리(DRAM: dynamic random access memory) 캐시에 통신 가능하게 연결되고 시스템 메모리 DRAM에 추가로 통신 가능하게 연결되는 DRAM 캐시 관리 회로로서,
    상기 DRAM 캐시 관리 회로는,
    상기 DRAM 캐시의 태그 디렉터리의 복수의 태그들을 캐시하도록 구성된 태그 디렉터리 캐시; 및
    상기 태그 디렉터리 캐시의 복수의 태그들을 저장하도록 구성된 태그 디렉터리 캐시 디렉터리를 포함하며,
    상기 DRAM 캐시 관리 회로는,
    판독 어드레스를 포함하는 메모리 판독 요청을 수신하고;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 판독 어드레스가 발견되는지 여부를 결정하고;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 시스템 메모리 DRAM에서 상기 판독 어드레스의 데이터를 판독하고; 그리고
    상기 태그 디렉터리 캐시 디렉터리에서 상기 판독 어드레스가 발견된다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시를 기초로, 상기 DRAM 캐시에서 상기 판독 어드레스가 발견되는지 여부를 결정하고;
    상기 DRAM 캐시에서 상기 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 시스템 메모리 DRAM에서 상기 판독 어드레스의 데이터를 판독하고; 그리고
    상기 DRAM 캐시에서 상기 판독 어드레스가 발견된다는 결정에 대한 응답으로, 상기 DRAM 캐시로부터 상기 판독 어드레스에 대한 데이터를 판독하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  2. 제1 항에 있어서,
    상기 DRAM 캐시에서 상기 판독 어드레스가 발견된다는 결정에 대한 응답으로, 상기 DRAM 캐시 내의 상기 판독 어드레스에 대한 데이터가 클린(clean)인지 여부를 결정하도록 추가로 구성되고,
    상기 DRAM 캐시 관리 회로는 상기 DRAM 캐시 내의 상기 판독 어드레스에 대한 데이터가 클린이 아니라는 결정에 대한 추가 응답으로, 상기 DRAM 캐시로부터 상기 판독 어드레스에 대한 데이터를 판독하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  3. 제2 항에 있어서,
    상기 DRAM 캐시 내의 상기 판독 어드레스에 대한 데이터가 클린이라는 결정에 대한 응답으로:
    상기 DRAM 캐시 관리 회로의 로드 밸런싱 회로를 기초로, 상기 DRAM 캐시와 상기 시스템 메모리 DRAM 중에서 선호되는 데이터 소스를 식별하고;
    상기 선호되는 데이터 소스로서 상기 DRAM 캐시를 식별하는 것에 대한 응답으로, 상기 DRAM 캐시로부터 데이터를 판독하고; 그리고
    상기 선호되는 데이터 소스로서 상기 시스템 메모리 DRAM을 식별하는 것에 대한 응답으로, 상기 시스템 메모리 DRAM으로부터 데이터를 판독하도록 추가로 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  4. 제1 항에 있어서,
    동시 기록(write-through) 모드로 동작하도록 구성되며, 상기 DRAM 캐시에서 상기 판독 어드레스가 발견된다는 결정에 대한 응답으로:
    상기 DRAM 캐시 관리 회로의 로드 밸런싱 회로를 기초로, 상기 DRAM 캐시와 상기 시스템 메모리 DRAM 중에서 선호되는 데이터 소스를 식별하고; 그리고
    상기 선호되는 데이터 소스로서 상기 시스템 메모리 DRAM을 식별하는 것에 대한 응답으로, 상기 시스템 메모리 DRAM으로부터 데이터를 판독하도록 추가로 구성되고,
    상기 DRAM 캐시 관리 회로는 상기 DRAM 캐시 내의 상기 판독 어드레스에 대한 데이터가 클린이라는 결정, 그리고 상기 선호되는 데이터 소스로서 상기 DRAM 캐시를 식별하는 것에 대한 추가 응답으로, 상기 DRAM 캐시로부터 상기 판독 어드레스에 대한 데이터를 판독하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  5. 제1 항에 있어서,
    상기 DRAM 캐시 관리 회로는 시스템 캐시에 추가로 연결되고; 그리고
    상기 DRAM 캐시 관리 회로는 상기 시스템 캐시 상에서의 미스(miss)에 대한 응답으로, 상기 판독 어드레스를 포함하는 메모리 판독 요청을 수신하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  6. 제1 항에 있어서,
    상기 시스템 메모리 DRAM에서 상기 판독 어드레스의 데이터를 판독하는 것과 병행하여 상기 태그 디렉터리 캐시를 확률적으로 보충하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  7. 제6 항에 있어서,
    상기 DRAM 캐시의 태그 디렉터리로부터 새로운 태그 디렉터리 캐시 라인에 대한 데이터를 판독하고; 그리고
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하도록 구성됨으로써,
    상기 태그 디렉터리 캐시를 확률적으로 보충하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  8. 제7 항에 있어서,
    상기 태그 디렉터리 캐시 내에 무효 웨이(way)가 존재하는지 여부를 결정하고; 그리고
    상기 태그 디렉터리 캐시 내에 무효 웨이가 존재한다는 결정에 대한 응답으로:
    상기 새로운 태그 디렉터리 캐시 라인에 대한 타깃 웨이로서 상기 무효 웨이를 할당하고;
    상기 새로운 태그 디렉터리 캐시 라인을 상기 타깃 웨이에 기록하고;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 새로운 태그 디렉터리 캐시 라인에 대한 하나 또는 그보다 많은 유효 비트들을 업데이트하고; 그리고
    상기 새로운 태그 디렉터리 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하도록 구성됨으로써,
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  9. 제8 항에 있어서,
    상기 태그 디렉터리 캐시 내에 무효 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시 내에 클린 웨이가 존재하는지 여부를 결정하고; 그리고
    상기 태그 디렉터리 캐시 내에 클린 웨이가 존재한다는 결정에 대한 응답으로:
    상기 새로운 태그 디렉터리 캐시 라인에 대한 타깃 웨이로서 상기 클린 웨이를 할당하고;
    상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대해 상기 DRAM 캐시의 태그 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하고;
    상기 DRAM 캐시의 태그 디렉터리에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들을 업데이트하고;
    상기 새로운 태그 디렉터리 캐시 라인을 상기 타깃 웨이에 기록하고;
    상기 새로운 태그 디렉터리 캐시 라인에 대한 상기 태그 디렉터리 캐시 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하고; 그리고
    상기 새로운 태그 디렉터리 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하도록 추가로 구성됨으로써,
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  10. 제9 항에 있어서,
    상기 태그 디렉터리 캐시 내에 클린 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시 내에서 더티(dirty) 웨이를 선택하고;
    상기 새로운 태그 디렉터리 캐시 라인에 대한 타깃 웨이로서 상기 더티 웨이를 할당하고;
    상기 타깃 웨이 내의 각각의 더티 DRAM 캐시 라인을 상기 시스템 메모리 DRAM에 기록하고;
    상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대해 상기 DRAM 캐시의 태그 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하고;
    상기 DRAM 캐시의 태그 디렉터리에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들을 업데이트하고;
    상기 새로운 태그 디렉터리 캐시 라인을 상기 타깃 웨이에 기록하고;
    상기 새로운 태그 디렉터리 캐시 라인에 대한 상기 태그 디렉터리 캐시 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하고; 그리고
    상기 새로운 태그 디렉터리 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하도록 추가로 구성됨으로써,
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  11. 제1 항에 있어서,
    클린 축출 데이터를 포함하는 기록 데이터 및 기록 어드레스를 포함하는 메모리 기록 요청을 시스템 캐시로부터 수신하고;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견되는지 여부를 결정하고;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견된다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시를 기초로, 상기 DRAM 캐시에서 상기 기록 어드레스가 발견되는지 여부를 결정하고; 그리고
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 클린 축출 데이터를 상기 DRAM 캐시에 기록하고; 그리고
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시의 태그 디렉터리에서 상기 기록 어드레스에 대한 태그가 저장될 캐시 라인에 대응하는 새로운 태그 디렉터리 캐시 라인을 상기 DRAM 캐시의 태그 디렉터리로부터 리트리브하고; 그리고
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하도록 추가로 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  12. 제11 항에 있어서,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시 내에 무효 웨이가 존재하는지 여부를 결정하고; 그리고
    상기 DRAM 캐시 내에 무효 웨이가 존재한다는 결정에 대한 응답으로:
    새로운 DRAM 캐시 라인에 대한 타깃 웨이로서 상기 무효 웨이를 할당하고;
    상기 클린 축출 데이터를 상기 타깃 웨이 내의 상기 새로운 DRAM 캐시 라인에 기록하고;
    상기 새로운 DRAM 캐시 라인이 유효함을 나타내도록 상기 새로운 DRAM 캐시 라인에 대한 태그 디렉터리 캐시 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하고; 그리고
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하도록 구성됨으로써,
    상기 클린 축출 데이터를 상기 DRAM 캐시에 기록하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  13. 제12 항에 있어서,
    상기 DRAM 캐시 내에 무효 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시 내에 클린 웨이가 존재하는지 여부를 결정하고; 그리고
    상기 DRAM 캐시 내에 클린 웨이가 존재한다는 결정에 대한 응답으로:
    상기 새로운 DRAM 캐시 라인에 대한 타깃 웨이로서 상기 클린 웨이를 할당하고;
    상기 클린 축출 데이터를 상기 타깃 웨이 내의 상기 새로운 DRAM 캐시 라인에 기록하고;
    상기 DRAM 캐시의 태그 디렉터리에서 하나 또는 그보다 많은 유효 비트들을 업데이트하고;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대한 유효 비트를 업데이트하고;
    상기 새로운 DRAM 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하고; 그리고
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하도록 추가로 구성됨으로써,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 클린 축출 데이터를 상기 DRAM 캐시에 기록하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  14. 제13 항에 있어서,
    상기 태그 디렉터리 캐시 내에 클린 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시 내에서 더티 웨이를 선택하고;
    상기 새로운 DRAM 캐시 라인에 대한 타깃 웨이로서 상기 더티 웨이를 할당하고;
    상기 타깃 웨이 내의 각각의 더티 DRAM 캐시 라인을 상기 시스템 메모리 DRAM에 기록하고;
    상기 클린 축출 데이터를 상기 타깃 웨이 내의 상기 새로운 DRAM 캐시 라인에 기록하고;
    상기 DRAM 캐시의 태그 디렉터리에서 하나 또는 그보다 많은 유효 비트들을 업데이트하고;
    상기 태그 디렉터리 캐시에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대한 유효 표시자를 업데이트하고;
    상기 새로운 DRAM 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하고; 그리고
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하도록 추가로 구성됨으로써,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 클린 축출 데이터를 상기 DRAM 캐시에 기록하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  15. 제1 항에 있어서,
    후기록(write-back) 모드로 동작하도록 구성되며,
    더티 축출 데이터를 포함하는 기록 데이터 및 기록 어드레스를 포함하는 메모리 기록 요청을 시스템 캐시로부터 수신하고;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견되는지 여부를 결정하고;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견된다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시를 기초로, 상기 DRAM 캐시에서 상기 기록 어드레스가 발견되는지 여부를 결정하고;
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견된다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스에 대한 더티 비트를 설정하고; 그리고
    상기 DRAM 캐시에서 상기 기록 어드레스에 대한 DRAM 캐시 라인에 상기 더티 축출 데이터를 기록하고; 그리고
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 더티 축출 데이터를 상기 DRAM 캐시에 기록하고; 그리고
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시의 태그 디렉터리에서 상기 기록 어드레스에 대한 태그가 저장될 새로운 태그 디렉터리 캐시 라인에 대한 데이터를 상기 DRAM 캐시의 태그 디렉터리로부터 리트리브하고; 그리고
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하도록 추가로 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  16. 제15 항에 있어서,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시 내에 무효 웨이가 존재하는지 여부를 결정하고; 그리고
    상기 DRAM 캐시 내에 무효 웨이가 존재한다는 결정에 대한 응답으로:
    새로운 DRAM 캐시 라인에 대한 타깃 웨이로서 상기 무효 웨이를 할당하고;
    상기 더티 축출 데이터를 상기 타깃 웨이 내의 상기 새로운 DRAM 캐시 라인에 기록하고;
    상기 DRAM 캐시 라인이 유효함을 나타내도록 상기 새로운 DRAM 캐시 라인에 대한 태그 디렉터리 캐시 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하고; 그리고
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하도록 구성됨으로써,
    상기 더티 축출 데이터를 상기 DRAM 캐시에 기록하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  17. 제16 항에 있어서,
    상기 DRAM 캐시 내에 무효 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시 내에 클린 웨이가 존재하는지 여부를 결정하고; 그리고
    상기 DRAM 캐시 내에 클린 웨이가 존재한다는 결정에 대한 응답으로:
    상기 새로운 DRAM 캐시 라인에 대한 타깃 웨이로서 상기 클린 웨이를 할당하고;
    상기 새로운 DRAM 캐시 라인에 대한 더티 축출 데이터를 상기 타깃 웨이에 기록하고;
    상기 DRAM 캐시의 태그 디렉터리에서 하나 또는 그보다 많은 유효 비트들을 업데이트하고;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대한 유효 비트를 업데이트하고;
    상기 새로운 DRAM 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하고; 그리고
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하도록 추가로 구성됨으로써,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 더티 축출 데이터를 상기 DRAM 캐시에 기록하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  18. 제17 항에 있어서,
    상기 태그 디렉터리 캐시 내에 클린 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시 내에서 더티 웨이를 선택하고;
    상기 새로운 DRAM 캐시 라인에 대한 타깃 웨이로서 상기 더티 웨이를 할당하고;
    상기 타깃 웨이 내의 각각의 더티 DRAM 캐시 라인을 상기 시스템 메모리 DRAM에 기록하고;
    상기 더티 축출 데이터를 상기 타깃 웨이 내의 상기 새로운 DRAM 캐시 라인에 기록하고;
    상기 DRAM 캐시의 태그 디렉터리에서 하나 또는 그보다 많은 유효 비트들을 업데이트하고;
    상기 태그 디렉터리 캐시에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대한 유효 표시자를 업데이트하고;
    상기 새로운 DRAM 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하고; 그리고
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하도록 추가로 구성됨으로써,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 더티 축출 데이터를 상기 DRAM 캐시에 기록하도록 구성되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  19. 제1 항에 있어서,
    집적 회로(IC: integrated circuit)로 통합되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  20. 제1 항에 있어서,
    셋톱 박스; 엔터테인먼트 유닛; 내비게이션 디바이스; 통신 디바이스; 고정 위치 데이터 유닛; 모바일 위치 데이터 유닛; 휴대 전화; 셀룰러폰; 스마트폰; 태블릿; 패블릿(phablet); 서버; 컴퓨터; 휴대용 컴퓨터; 데스크톱 컴퓨터; 개인용 디지털 보조기기(PDA: personal digital assistant); 모니터; 컴퓨터 모니터; 텔레비전; 튜너; 라디오; 위성 라디오; 뮤직 플레이어; 디지털 뮤직 플레이어; 휴대용 뮤직 플레이어; 디지털 비디오 플레이어; 비디오 플레이어; 디지털 비디오 디스크(DVD: digital video disc) 플레이어; 휴대용 디지털 비디오 플레이어; 및 자동차로 구성된 그룹으로부터 선택된 디바이스에 통합되는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
  21. 확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법으로서,
    DRAM 캐시 관리 회로에 의해, 판독 어드레스를 포함하는 메모리 판독 요청을 수신하는 단계;
    상기 DRAM 캐시 관리 회로의 태그 디렉터리 캐시의 태그 디렉터리 캐시 디렉터리에서 상기 판독 어드레스가 발견되는지 여부를 결정하는 단계;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 시스템 메모리 DRAM에서 상기 판독 어드레스의 데이터를 판독하는 단계; 및
    상기 태그 디렉터리 캐시 디렉터리에서 상기 판독 어드레스가 발견된다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시를 기초로, 고대역폭 메모리의 일부인 DRAM 캐시에서 상기 판독 어드레스가 발견되는지 여부를 결정하는 단계;
    상기 DRAM 캐시에서 상기 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 시스템 메모리 DRAM에서 상기 판독 어드레스의 데이터를 판독하는 단계; 및
    상기 DRAM 캐시에서 상기 판독 어드레스가 발견된다는 결정에 대한 응답으로, 상기 DRAM 캐시로부터 상기 판독 어드레스에 대한 데이터를 판독하는 단계를 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  22. 제21 항에 있어서,
    상기 DRAM 캐시에서 상기 판독 어드레스가 발견된다는 결정에 대한 응답으로, 상기 DRAM 캐시 내의 상기 판독 어드레스에 대한 데이터가 클린인지 여부를 결정하는 단계를 더 포함하며,
    상기 DRAM 캐시로부터 상기 판독 어드레스에 대한 데이터를 판독하는 단계는, 상기 DRAM 캐시 내의 상기 판독 어드레스에 대한 데이터가 클린이 아니라는 결정에 대한 추가 응답인,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  23. 제22 항에 있어서,
    상기 DRAM 캐시 내의 상기 판독 어드레스에 대한 데이터가 클린이라는 결정에 대한 응답으로:
    상기 DRAM 캐시와 상기 시스템 메모리 DRAM 중에서 선호되는 데이터 소스를 식별하는 단계;
    상기 선호되는 데이터 소스로서 상기 DRAM 캐시를 식별하는 것에 대한 응답으로, 상기 DRAM 캐시로부터 데이터를 판독하는 단계; 및
    상기 선호되는 데이터 소스로서 상기 시스템 메모리 DRAM을 식별하는 것에 대한 응답으로, 상기 시스템 메모리 DRAM으로부터 데이터를 판독하는 단계를 더 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  24. 제21 항에 있어서,
    상기 DRAM 캐시 관리 회로는 동시 기록 모드로 동작하도록 구성되고; 그리고
    상기 방법은, 상기 DRAM 캐시에서 상기 판독 어드레스가 발견된다는 결정에 대한 응답으로:
    상기 DRAM 캐시와 상기 시스템 메모리 DRAM 중에서 선호되는 데이터 소스를 식별하는 단계; 및
    상기 선호되는 데이터 소스로서 상기 시스템 메모리 DRAM을 식별하는 것에 대한 응답으로, 상기 시스템 메모리 DRAM으로부터 데이터를 판독하는 단계를 더 포함하며; 그리고
    상기 DRAM 캐시로부터 상기 판독 어드레스에 대한 데이터를 판독하는 단계는, 상기 DRAM 캐시 내의 상기 판독 어드레스에 대한 데이터가 클린이라는 결정, 그리고 상기 선호되는 데이터 소스로서 상기 DRAM 캐시를 식별하는 것에 대한 추가 응답인,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  25. 제21 항에 있어서,
    상기 DRAM 캐시 관리 회로는 시스템 캐시에 연결되고; 그리고
    상기 판독 어드레스를 포함하는 메모리 판독 요청을 수신하는 단계는, 상기 시스템 캐시 상에서의 미스에 대한 응답인,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  26. 제21 항에 있어서,
    상기 시스템 메모리 DRAM에서 상기 판독 어드레스의 데이터를 판독하는 것과 병행하여 상기 태그 디렉터리 캐시를 확률적으로 보충하는 단계를 더 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  27. 제26 항에 있어서,
    상기 태그 디렉터리 캐시를 확률적으로 보충하는 단계는,
    상기 DRAM 캐시의 태그 디렉터리로부터 새로운 태그 디렉터리 캐시 라인에 대한 데이터를 판독하는 단계; 및
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하는 단계를 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  28. 제27 항에 있어서,
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하는 단계는,
    상기 태그 디렉터리 캐시 내에 무효 웨이가 존재하는지 여부를 결정하는 단계; 및
    상기 태그 디렉터리 캐시 내에 무효 웨이가 존재한다는 결정에 대한 응답으로:
    상기 새로운 태그 디렉터리 캐시 라인에 대한 타깃 웨이로서 상기 무효 웨이를 할당하는 단계;
    상기 새로운 태그 디렉터리 캐시 라인을 상기 타깃 웨이에 기록하는 단계;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 새로운 태그 디렉터리 캐시 라인에 대한 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계; 및
    상기 새로운 태그 디렉터리 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하는 단계를 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  29. 제28 항에 있어서,
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하는 단계는, 상기 태그 디렉터리 캐시 내에 무효 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시 내에 클린 웨이가 존재하는지 여부를 결정하는 단계; 및
    상기 태그 디렉터리 캐시 내에 클린 웨이가 존재한다는 결정에 대한 응답으로:
    상기 새로운 태그 디렉터리 캐시 라인에 대한 타깃 웨이로서 상기 클린 웨이를 할당하는 단계;
    상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대해 상기 DRAM 캐시의 태그 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계;
    상기 DRAM 캐시의 태그 디렉터리에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들을 업데이트하는 단계;
    상기 새로운 태그 디렉터리 캐시 라인을 상기 타깃 웨이에 기록하는 단계;
    상기 새로운 태그 디렉터리 캐시 라인에 대한 상기 태그 디렉터리 캐시 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계; 및
    상기 새로운 태그 디렉터리 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하는 단계를 더 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  30. 제29 항에 있어서,
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하는 단계는, 상기 태그 디렉터리 캐시 내에 클린 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시 내에서 더티 웨이를 선택하는 단계;
    상기 새로운 태그 디렉터리 캐시 라인에 대한 타깃 웨이로서 상기 더티 웨이를 할당하는 단계;
    상기 타깃 웨이 내의 각각의 더티 DRAM 캐시 라인을 상기 시스템 메모리 DRAM에 기록하는 단계;
    상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대해 상기 DRAM 캐시의 태그 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계;
    상기 DRAM 캐시의 태그 디렉터리에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들을 업데이트하는 단계;
    상기 새로운 태그 디렉터리 캐시 라인을 상기 타깃 웨이에 기록하는 단계;
    상기 새로운 태그 디렉터리 캐시 라인에 대한 상기 태그 디렉터리 캐시 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계; 및
    상기 새로운 태그 디렉터리 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하는 단계를 더 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  31. 제21 항에 있어서,
    클린 축출 데이터를 포함하는 기록 데이터 및 기록 어드레스를 포함하는 메모리 기록 요청을 시스템 캐시로부터 수신하는 단계;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견되는지 여부를 결정하는 단계;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견된다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시를 기초로, 상기 DRAM 캐시에서 상기 기록 어드레스가 발견되는지 여부를 결정하는 단계; 및
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 클린 축출 데이터를 상기 DRAM 캐시에 기록하는 단계; 및
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시의 태그 디렉터리에서 상기 기록 어드레스에 대한 태그가 저장될 새로운 태그 디렉터리 캐시 라인에 대한 데이터를 상기 DRAM 캐시의 태그 디렉터리로부터 리트리브하는 단계; 및
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하는 단계를 더 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  32. 제31 항에 있어서,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 클린 축출 데이터를 상기 DRAM 캐시에 기록하는 단계는,
    상기 DRAM 캐시 내에 무효 웨이가 존재하는지 여부를 결정하는 단계; 및
    상기 DRAM 캐시 내에 무효 웨이가 존재한다는 결정에 대한 응답으로:
    새로운 DRAM 캐시 라인에 대한 타깃 웨이로서 상기 무효 웨이를 할당하는 단계;
    상기 클린 축출 데이터를 상기 타깃 웨이 내의 상기 새로운 DRAM 캐시 라인에 기록하는 단계;
    상기 새로운 DRAM 캐시 라인이 유효함을 나타내도록 상기 새로운 DRAM 캐시 라인에 대한 태그 디렉터리 캐시 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계; 및
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하는 단계를 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  33. 제32 항에 있어서,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 클린 축출 데이터를 상기 DRAM 캐시에 기록하는 단계는, 상기 DRAM 캐시 내에 무효 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시 내에 클린 웨이가 존재하는지 여부를 결정하는 단계; 및
    상기 DRAM 캐시 내에 클린 웨이가 존재한다는 결정에 대한 응답으로:
    상기 새로운 DRAM 캐시 라인에 대한 타깃 웨이로서 상기 클린 웨이를 할당하는 단계;
    상기 클린 축출 데이터를 상기 타깃 웨이 내의 상기 새로운 DRAM 캐시 라인에 기록하는 단계;
    상기 DRAM 캐시의 태그 디렉터리에서 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대한 유효 비트를 업데이트하는 단계;
    상기 새로운 DRAM 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하는 단계; 및
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하는 단계를 더 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  34. 제33 항에 있어서,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 클린 축출 데이터를 상기 DRAM 캐시에 기록하는 단계는, 상기 태그 디렉터리 캐시 내에 클린 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시 내에서 더티 웨이를 선택하는 단계;
    상기 새로운 태그 디렉터리 캐시 라인에 대한 타깃 웨이로서 상기 더티 웨이를 할당하는 단계;
    상기 타깃 웨이 내의 각각의 더티 DRAM 캐시 라인을 상기 시스템 메모리 DRAM에 기록하는 단계;
    상기 클린 축출 데이터를 상기 타깃 웨이 내의 상기 새로운 DRAM 캐시 라인에 기록하는 단계;
    상기 DRAM 캐시의 태그 디렉터리에서 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계;
    상기 태그 디렉터리 캐시에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대한 유효 표시자를 업데이트하는 단계;
    상기 새로운 DRAM 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하는 단계; 및
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하는 단계를 더 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  35. 제21 항에 있어서,
    상기 DRAM 캐시 관리 회로는 후기록 모드로 동작하도록 구성되고; 그리고
    상기 방법은,
    더티 축출 데이터를 포함하는 기록 데이터 및 기록 어드레스를 포함하는 메모리 기록 요청을 시스템 캐시로부터 수신하는 단계;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견되는지 여부를 결정하는 단계;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견된다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시를 기초로, 상기 DRAM 캐시에서 상기 기록 어드레스가 발견되는지 여부를 결정하는 단계; 및
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견된다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스에 대한 더티 비트를 설정하는 단계; 및
    상기 DRAM 캐시에서 상기 기록 어드레스에 대한 DRAM 캐시 라인에 상기 더티 축출 데이터를 기록하는 단계; 그리고
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 기록 데이터를 상기 DRAM 캐시에 기록하는 단계; 및
    상기 태그 디렉터리 캐시 디렉터리에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시의 태그 디렉터리에서 상기 기록 어드레스에 대한 태그가 저장될 새로운 태그 디렉터리 캐시 라인에 대한 데이터를 상기 DRAM 캐시의 태그 디렉터리로부터 리트리브하는 단계; 및
    상기 태그 디렉터리 캐시에 상기 새로운 태그 디렉터리 캐시 라인을 설치하는 단계를 더 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  36. 제35 항에 있어서,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 더티 축출 데이터를 상기 DRAM 캐시에 기록하는 단계는,
    상기 DRAM 캐시 내에 무효 웨이가 존재하는지 여부를 결정하는 단계; 및
    상기 DRAM 캐시 내에 무효 웨이가 존재한다는 결정에 대한 응답으로:
    새로운 DRAM 캐시 라인에 대한 타깃 웨이로서 상기 무효 웨이를 할당하는 단계;
    상기 더티 축출 데이터를 상기 타깃 웨이 내의 상기 새로운 DRAM 캐시 라인에 기록하는 단계;
    상기 DRAM 캐시 라인이 유효함을 나타내도록 상기 새로운 DRAM 캐시 라인에 대한 태그 디렉터리 캐시 디렉터리 내의 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계; 및
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하는 단계를 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  37. 제36 항에 있어서,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 더티 축출 데이터를 상기 DRAM 캐시에 기록하는 단계는, 상기 DRAM 캐시 내에 무효 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 DRAM 캐시 내에 클린 웨이가 존재하는지 여부를 결정하는 단계; 및
    상기 DRAM 캐시 내에 클린 웨이가 존재한다는 결정에 대한 응답으로:
    상기 새로운 DRAM 캐시 라인에 대한 타깃 웨이로서 상기 클린 웨이를 할당하는 단계;
    상기 새로운 DRAM 캐시 라인에 대한 더티 축출 데이터를 상기 타깃 웨이에 기록하는 단계;
    상기 DRAM 캐시의 태그 디렉터리에서 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대한 유효 비트를 업데이트하는 단계;
    상기 새로운 DRAM 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하는 단계; 및
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하는 단계를 더 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  38. 제37 항에 있어서,
    상기 DRAM 캐시에서 상기 기록 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 더티 축출 데이터를 상기 DRAM 캐시에 기록하는 단계는, 상기 태그 디렉터리 캐시 내에 클린 웨이가 존재하지 않는다는 결정에 대한 응답으로:
    상기 태그 디렉터리 캐시 내에서 더티 웨이를 선택하는 단계;
    상기 새로운 태그 디렉터리 캐시 라인에 대한 타깃 웨이로서 상기 더티 웨이를 할당하는 단계;
    상기 타깃 웨이 내의 각각의 더티 DRAM 캐시 라인을 상기 시스템 메모리 DRAM에 기록하는 단계;
    상기 더티 축출 데이터를 상기 타깃 웨이 내의 상기 새로운 DRAM 캐시 라인에 기록하는 단계;
    상기 DRAM 캐시의 태그 디렉터리에서 하나 또는 그보다 많은 유효 비트들을 업데이트하는 단계;
    상기 태그 디렉터리 캐시에서 상기 타깃 웨이의 하나 또는 그보다 많은 태그들에 대한 유효 표시자를 업데이트하는 단계;
    상기 새로운 DRAM 캐시 라인에 대한 태그를 상기 태그 디렉터리 캐시 디렉터리에 기록하는 단계; 및
    상기 DRAM 캐시의 태그 디렉터리에서 상기 새로운 DRAM 캐시 라인에 대한 태그를 업데이트하는 단계를 더 포함하는,
    확장 가능 동적 랜덤 액세스 메모리(DRAM) 캐시 관리를 제공하기 위한 방법.
  39. 동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로로서,
    판독 어드레스를 포함하는 메모리 판독 요청을 수신하기 위한 수단;
    상기 DRAM 캐시 관리 회로의 태그 디렉터리 캐시의 태그 디렉터리 캐시 디렉터리에서 상기 판독 어드레스가 발견되는지 여부를 결정하기 위한 수단;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 시스템 메모리 DRAM에서 상기 판독 어드레스의 데이터를 판독하기 위한 수단;
    상기 태그 디렉터리 캐시 디렉터리에서 상기 판독 어드레스가 발견된다는 결정에 대한 응답으로, 상기 태그 디렉터리 캐시를 기초로, 고대역폭 메모리의 일부인 DRAM 캐시에서 상기 판독 어드레스가 발견되는지 여부를 결정하기 위한 수단;
    상기 DRAM 캐시에서 상기 판독 어드레스가 발견되지 않는다는 결정에 대한 응답으로, 상기 시스템 메모리 DRAM에서 상기 판독 어드레스의 데이터를 판독하기 위한 수단; 및
    상기 DRAM 캐시에서 상기 판독 어드레스가 발견된다는 결정에 대한 응답으로, 상기 DRAM 캐시로부터 상기 판독 어드레스에 대한 데이터를 판독하기 위한 수단을 포함하는,
    동적 랜덤 액세스 메모리(DRAM) 캐시 관리 회로.
KR1020187020561A 2016-01-21 2016-12-19 태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(dram) 캐시 관리의 제공 KR20180103907A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662281234P 2016-01-21 2016-01-21
US62/281,234 2016-01-21
US15/192,019 US20170212840A1 (en) 2016-01-21 2016-06-24 Providing scalable dynamic random access memory (dram) cache management using tag directory caches
US15/192,019 2016-06-24
PCT/US2016/067532 WO2017127196A1 (en) 2016-01-21 2016-12-19 Providing scalable dynamic random access memory (dram) cache management using tag directory caches

Publications (1)

Publication Number Publication Date
KR20180103907A true KR20180103907A (ko) 2018-09-19

Family

ID=59360546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187020561A KR20180103907A (ko) 2016-01-21 2016-12-19 태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(dram) 캐시 관리의 제공

Country Status (7)

Country Link
US (1) US20170212840A1 (ko)
EP (1) EP3405874A1 (ko)
JP (1) JP2019506671A (ko)
KR (1) KR20180103907A (ko)
CN (1) CN108463809A (ko)
BR (1) BR112018014691A2 (ko)
WO (1) WO2017127196A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846085B2 (en) 2019-04-09 2020-11-24 SK Hynix Inc. Multi-lane data processing circuit and system

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503655B2 (en) * 2016-07-21 2019-12-10 Advanced Micro Devices, Inc. Data block sizing for channels in a multi-channel high-bandwidth memory
US10592418B2 (en) 2017-10-27 2020-03-17 Dell Products, L.P. Cache sharing in virtual clusters
US10936493B2 (en) * 2019-06-19 2021-03-02 Hewlett Packard Enterprise Development Lp Volatile memory cache line directory tags
US11243804B2 (en) * 2019-11-19 2022-02-08 Micron Technology, Inc. Time to live for memory access by processors
US11199995B2 (en) 2019-11-19 2021-12-14 Micron Technology, Inc. Time to live for load commands
KR20220030440A (ko) 2020-08-31 2022-03-11 삼성전자주식회사 전자 장치, 시스템-온-칩, 및 그것의 동작 방법
CN112631960B (zh) * 2021-03-05 2021-06-04 四川科道芯国智能技术股份有限公司 高速缓冲存储器的扩展方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212602B1 (en) * 1997-12-17 2001-04-03 Sun Microsystems, Inc. Cache tag caching
US6581139B1 (en) * 1999-06-24 2003-06-17 International Business Machines Corporation Set-associative cache memory having asymmetric latency among sets
US7321956B2 (en) * 2004-03-25 2008-01-22 International Business Machines Corporation Method and apparatus for directory-based coherence with distributed directory management utilizing prefetch caches
US7536513B2 (en) * 2005-03-31 2009-05-19 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
US7925857B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation Method for increasing cache directory associativity classes via efficient tag bit reclaimation
US20140047175A1 (en) * 2012-08-09 2014-02-13 International Business Machines Corporation Implementing efficient cache tag lookup in very large cache systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846085B2 (en) 2019-04-09 2020-11-24 SK Hynix Inc. Multi-lane data processing circuit and system

Also Published As

Publication number Publication date
BR112018014691A2 (pt) 2018-12-11
US20170212840A1 (en) 2017-07-27
WO2017127196A1 (en) 2017-07-27
JP2019506671A (ja) 2019-03-07
CN108463809A (zh) 2018-08-28
EP3405874A1 (en) 2018-11-28

Similar Documents

Publication Publication Date Title
KR102545726B1 (ko) 프로세서-기반 시스템들에서 공간 QoS(Quality of Service) 태깅을 사용한 이종 메모리 시스템들의 유연한 관리의 제공
KR20180103907A (ko) 태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(dram) 캐시 관리의 제공
US10146693B2 (en) Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
US9317448B2 (en) Methods and apparatus related to data processors and caches incorporated in data processors
US7809889B2 (en) High performance multilevel cache hierarchy
EP3420460B1 (en) Providing scalable dynamic random access memory (dram) cache management using dram cache indicator caches
US20170371783A1 (en) Self-aware, peer-to-peer cache transfers between local, shared cache memories in a multi-processor system
US10152261B2 (en) Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system
US20240095173A1 (en) Providing fairness-based allocation of caches in processor-based devices
US20240176742A1 (en) Providing memory region prefetching in processor-based devices
US20240202131A1 (en) Processor-based system for allocating cache lines to a higher-level cache memory
US20240078178A1 (en) Providing adaptive cache bypass in processor-based devices
CN108027776B (zh) 在多个主要装置间使用有条件干预维持高速缓存同调性