KR20170087883A - 공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성 - Google Patents

공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성 Download PDF

Info

Publication number
KR20170087883A
KR20170087883A KR1020177013876A KR20177013876A KR20170087883A KR 20170087883 A KR20170087883 A KR 20170087883A KR 1020177013876 A KR1020177013876 A KR 1020177013876A KR 20177013876 A KR20177013876 A KR 20177013876A KR 20170087883 A KR20170087883 A KR 20170087883A
Authority
KR
South Korea
Prior art keywords
cache
qos
qosid
shared
memory system
Prior art date
Application number
KR1020177013876A
Other languages
English (en)
Other versions
KR101847905B1 (ko
Inventor
데렉 로버트 호워
하롤드 워드 3세 차인
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 KR20170087883A publication Critical patent/KR20170087883A/ko
Application granted granted Critical
Publication of KR101847905B1 publication Critical patent/KR101847905B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency 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/21Employing a record carrier using a specific recording technology
    • G06F2212/211Optical disk storage
    • G06F2212/2112Optical disk storage with a removable carrier, e.g. DVD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • Y02B60/1225
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성이 개시된다. 한 양상에서는, 캐시 메모리 시스템이 제공된다. 캐시 메모리 시스템은 공유 캐시 메모리 시스템을 포함한다. 공유 캐시 메모리 시스템의 서브세트는 QoS 클래스에 대한 QoSID 추적 표시자를 저장하도록 구성된 서비스 품질 식별자(QoSID) 추적 태그를 포함한다. 공유 캐시 메모리 시스템은 QoSID를 포함하는 메모리 액세스 요청을 수신하도록 구성된 캐시 제어기를 더 포함하며, 메모리 액세스 요청에 해당하는 캐시 라인에 액세스하도록 구성된다. 캐시 제어기는 또한 메모리 액세스 요청의 QoSID가 QoSID에 할당된 캐시 라인에 대응하는지 여부를 결정하도록 구성된다. 대응한다면, 캐시 제어기는 QoSID 추적 태그를 업데이트하도록 추가로 구성된다.

Description

공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성{GENERATING APPROXIMATE USAGE MEASUREMENTS FOR SHARED CACHE MEMORY SYSTEMS}
[0001] 본 출원은 "GENERATING APPROXIMATE USAGE MEASUREMENTS FOR SHARED CACHE MEMORY, AND RELATED METHODS AND SYSTEMS"라는 명칭으로 2014년 11월 25일자 출원된 미국 가특허출원 일련번호 제62/084,469호에 대한 35 U.S.C. § 119(e) 하에서의 우선권을 주장하며, 이 출원의 내용은 그 전체가 인용에 의해 본 명세서에 포함된다.
[0002] 본 출원은 또한 "GENERATING APPROXIMATE USAGE MEASUREMENTS FOR SHARED CACHE MEMORY SYSTEMS"라는 명칭으로 2015년 9월 22일자 출원된 미국 특허출원 일련번호 제14/860,993호에 대한 우선권을 주장하며, 이 출원의 내용은 그 전체가 인용에 의해 본 명세서에 포함된다.
[0003] 본 개시의 기술은 일반적으로 공유 캐시 메모리 시스템들에 관한 것으로, 특히 공유 캐시들의 사용량 측정에 관한 것이다.
[0004] 점점 더 많은 수의 컴퓨터 하드웨어 유닛들(예를 들어, 비제한적인 예들로서, 중앙 처리 유닛(CPU: central processing unit)들, 그래픽 처리 유닛(GPU: graphics processing unit)들, 디지털 신호 처리(DSP: digital signal processing) 유닛들, 및/또는 직접 메모리 액세스(DMA: direct memory access) 엔진들)이 캐시들, 메모리, 상호 접속 대역폭 및 캐시 대역폭과 같은 메모리 시스템 자원들을 공유하도록 구성된다. 컴퓨터 하드웨어 유닛들 간의 자원 간섭 및 충돌들은 비제한적인 예들로서, 모바일 시스템 온 칩(SoC: System-on-Chip)에서 실시간 데드라인을 놓치거나 통합 서버에서 서비스 수준 협약(SLA: Service Level Agreement)을 위반하는 것과 같은 부정적인 결과들을 초래할 수 있다. 추가로, 일부 컴퓨터 하드웨어 유닛들과 연관된 참조 스트림들은 시간 지역성이 거의 없어, 검사되지 않은 채로 내버려 둔다면 캐시 오염 및 전체 성능에 대한 부정적인 영향으로 이어질 수 있다. 이에 따라, 자원 공유의 영향들을 모니터링하는 것이 최적 시스템 성능의 달성에 더욱 중요해졌다. 이와 관련하여, 사용자들이 공유되는 자원들의 사용량을 모니터링하는 능력을 갖는 것이 바람직할 수 있다.
[0005] 그러나 종래의 캐시 메모리 시스템들은 캐시 사용량을 모니터링하기 위한 공간 효율적인 메커니즘을 제공하지 않는다. 그 결과, 이러한 종래의 캐시 메모리 시스템들은 캐시 간섭의 존재시 최악의 경우의 성능으로부터 방지하기 위해 계속 충분히 활용되지 않고 있을 수 있다. 더욱이, 캐시 점유에 관한 피드백의 결여는 컴퓨터 처리 시스템들이 시스템 작업들의 최적 스케줄링을 제공할 수 없게 할 수 있다.
[0006] 상세한 설명에서 개시되는 양상들은 공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성을 포함한다. 이와 관련하여, 한 양상에서는, 공유 캐시 메모리 시스템이 제공된다. 공유 캐시 메모리 시스템은 복수의 서비스 품질(QoS: Quality of Service) 클래스들 각각에 대한 캐시 사용량을 근사화하도록 구성되며, 각각의 QoS 클래스는 연관된 QoS 식별자(QoSID: QoS identifier)를 갖는다. 공유 캐시 메모리 시스템은 복수의 캐시 세분들로 세분화되는 복수의 캐시 라인들을 포함한다. 본 명세서에서 개시되는 일부 양상들에 따르면, 복수의 캐시 세분들은 비제한적인 예들로서, 개개의 캐시 라인들, 캐시 라인들의 세트들 및/또는 캐시 라인들의 뱅크들을 포함할 수 있다. 복수의 캐시 세분들은 각각, 캐시 사용량이 근사화될 복수의 QoS 클래스들 중 하나와 각각 연관된다. 공유 캐시 메모리 시스템은 또한 복수의 캐시 세분들에 대응하는 복수의 QoSID 추적 태그들을 제공한다. QoSID를 포함하는 메모리 액세스 요청의 수신시, 공유 캐시 메모리 시스템의 캐시 사용량 모니터는 메모리 액세스 요청에 해당하는 캐시 세분에 액세스하도록 추가로 구성된다. 캐시 사용량 모니터는 메모리 액세스 요청의 QoSID가 캐시 세분과 연관된 QoS 클래스에 대응하는지 여부를 결정하도록 구성된다. 이 결정을 기초로, 캐시 사용량 모니터는 메모리 액세스 요청에 해당하는 캐시 세분과 연관된 QoSID 추적 태그를 업데이트한다. 이런 식으로, 각각의 캐시 세분과 연관된 QoS 클래스가 주어진 시점에 실제로 해당 캐시 세분을 사용하고 있는지 여부를 나타내도록 복수의 QoSID 추적 태그들이 유지될 수 있다.
[0007] 캐시 사용량 모니터는 복수의 QoSID 추적 태그들을 기초로 복수의 QoS 클래스들 중 QoS 클래스에 대한 대략적인 사용량 측정을 생성하도록 추가로 구성된다. 복수의 QoSID 추적 태그들에 대한 저장 오버헤드의 감소를 위해 캐시 사용량 측정의 정확성을 절충함으로써, 공유 캐시 메모리 시스템은 프로세서 성능 및 전력 소비에 대한 영향들을 최소화하면서 캐시 할당을 관리하기 위한 충분한 사용량 측정 데이터를 제공할 수 있다.
[0008] 다른 양상에서는, 공유 캐시 메모리 시스템이 제공된다. 공유 캐시 메모리 시스템은 복수의 캐시 세분들을 포함한다. 공유 캐시 메모리 시스템은 복수의 캐시 세분들 중 캐시 세분과 각각 연관된 복수의 QoSID 추적 태그들을 더 포함한다. 공유 캐시 메모리 시스템은 또한 캐시 사용량 모니터를 포함한다. 캐시 사용량 모니터는 복수의 캐시 세분들 중 각각의 캐시 세분을 복수의 QoS 클래스들 중 QoS 클래스와 연관시키도록 구성된다. 캐시 사용량 모니터는 QoSID를 포함하는 메모리 액세스 요청을 수신하도록 추가로 구성된다. 캐시 사용량 모니터는 또한 복수의 캐시 세분들 중에서 메모리 액세스 요청에 해당하는 캐시 세분에 액세스하도록 구성된다. 캐시 사용량 모니터는 메모리 액세스 요청의 QoSID가 캐시 세분과 연관된 QoS 클래스에 대응하는지 여부를 결정하도록 추가로 구성된다. 캐시 사용량 모니터는 결정을 기초로 복수의 QoSID 추적 태그들 중 메모리 액세스 요청에 해당하는 캐시 세분과 연관된 QoSID 추적 태그를 업데이트하도록 추가로 구성된다. 캐시 사용량 모니터는 또한 복수의 QoSID 추적 태그들을 기초로 복수의 QoS 클래스들 중 QoS 클래스에 대한 대략적인 사용량 측정을 생성하도록 추가로 구성된다.
[0009] 다른 양상에서는, 공유 캐시 메모리 시스템이 제공된다. 공유 캐시 메모리 시스템은 공유 캐시 메모리 시스템의 복수의 캐시 세분들 중 각각의 캐시 세분을 복수의 QoS 클래스들 중 QoS 클래스와 연관시키기 위한 수단을 포함한다. 공유 캐시 메모리 시스템은 QoSID를 포함하는 메모리 액세스 요청을 수신하기 위한 수단을 더 포함한다. 공유 캐시 메모리 시스템은 또한 복수의 캐시 세분들 중에서 메모리 액세스 요청에 해당하는 캐시 세분에 액세스하기 위한 수단을 포함한다. 공유 캐시 메모리 시스템은 추가로, 메모리 액세스 요청의 QoSID가 복수의 QoS 클래스들 중 캐시 세분과 연관된 QoS 클래스에 대응하는지 여부를 결정하기 위한 수단을 포함한다. 공유 캐시 메모리 시스템은 결정하기 위한 수단을 기초로 복수의 QoSID 추적 태그들 중 메모리 액세스 요청에 해당하는 캐시 세분과 연관된 QoSID 추적 태그를 업데이트하기 위한 수단을 더 포함한다. 공유 캐시 메모리 시스템은 또한 복수의 QoSID 추적 태그들을 기초로 복수의 QoS 클래스들 중 QoS 클래스에 대한 대략적인 사용량 측정을 생성하기 위한 수단을 포함한다.
[0010] 다른 양상에서는, 공유 캐시 메모리 사용량을 근사화하기 위한 방법이 제공된다. 이 방법은 공유 캐시 메모리 시스템의 복수의 캐시 세분들 중 각각의 캐시 세분을 복수의 QoS 클래스들 중 QoS 클래스와 연관시키는 단계를 포함한다. 이 방법은 QoSID를 포함하는 메모리 액세스 요청을 수신하는 단계를 더 포함한다. 이 방법은 또한 복수의 캐시 세분들 중에서 메모리 액세스 요청에 해당하는 캐시 세분에 액세스하는 단계를 포함한다. 이 방법은 추가로, 메모리 액세스 요청의 QoSID가 복수의 QoS 클래스들 중 캐시 세분과 연관된 QoS 클래스에 대응하는지 여부를 결정하는 단계를 포함한다. 이 방법은 결정을 기초로 복수의 QoSID 추적 태그들 중 메모리 액세스 요청에 해당하는 캐시 세분과 연관된 QoSID 추적 태그를 업데이트하는 단계를 더 포함한다. 이 방법은 또한 복수의 QoSID 추적 태그들을 기초로 복수의 QoS 클래스들 중 QoS 클래스에 대한 대략적인 사용량 측정을 생성하는 단계를 포함한다.
[0011] 도 1은 공유 캐시 메모리 시스템에 대한 대략적인 사용량 측정들을 생성하기 위한 캐시 사용량 모니터를 포함하는 캐시 제어기를 포함하는 예시적인 공유 캐시 메모리 시스템을 예시한다.
[0012] 도 2a - 도 2d는 서비스 품질(QoS) 클래스들 및 QoS 식별자(QoSID) 추적 태그들이 캐시 라인들, 캐시 라인들의 세트들 및 캐시 라인들의 뱅크들을 각각 포함하는 캐시 세분들과 연관되는 예시적인 공유 캐시 메모리 시스템 구현들을 예시한다.
[0013] 도 3a 및 도 3b는 공유 캐시 메모리 시스템에 대한 대략적인 사용량 측정들을 생성하기 위한 도 1의 공유 캐시 메모리 시스템의 예시적인 동작들을 예시한다.
[0014] 도 4는 대략적인 사용량 측정들을 제공하기 위해 도 1의 공유 캐시 메모리 시스템을 포함할 수 있는 예시적인 프로세서 기반 시스템의 블록도이다.
[0015] 이제 도면들을 참조하여, 본 개시의 여러 예시적인 양상들이 설명된다. 본 명세서에서 "예시적인"이라는 단어는 "일례, 실례 또는 예시로서의 역할"을 의미하는데 사용된다. 본 명세서에서 "예시적인" 것으로서 설명된 어떠한 양상도 반드시 다른 양상들에 비해 선호되거나 유리한 것으로 해석되는 것은 아니다.
[0026] 이와 관련하여, 도 1이 제공되어 공유 캐시 메모리 시스템(100)의 구조를 예시한다. 공유 캐시 메모리 시스템(100)은 비제한적인 예로서, 반도체 다이에 제공될 수 있다. 일부 양상들에서, 공유 캐시 메모리 시스템(100)은 (도시되지 않은) 메모리들의 계층 구조에서, 무엇보다도 레벨 1(L1: level 1) 캐시, 레벨 2(L2: level 2) 캐시 또는 레벨 3(L3: level 3) 캐시일 수 있다. 도 1의 예에서, 공유 캐시 메모리 시스템(100)은 뱅크들(102(0)-102(X))로 조직화된 메모리 어레이이다. 뱅크들(102(0)-102(X)) 각각은 하나 또는 그보다 많은 세트들(104(0)-104(Y))을 포함하는데, 세트들(104(0)-104(Y)) 각각은 캐시 라인들(106(0)-106(L))의 서브세트로 구성된다. 세트들(104(0)-104(Y)) 각각에서 캐시 라인들(106(0)-106(L))의 수(Z)는 공유 캐시 메모리 시스템(100)의 "연관성"으로 지칭되며, 각각의 세트들(104(0)-104(Y)) 내에서 0-Z로부터의 특정 위치에 로케이팅된 캐시 라인들(106(0)-106(L))의 그룹은 대응하는 "웨이"(108(0)-108(Z))로 지칭된다. 따라서 각각의 웨이(108(0)-108(Z))는 세트들(104(0)-104(Y)) 전체에 걸쳐 캐시 라인들(106(0)-106(L))의 수직 "슬라이스"로서 시각화될 수 있다.
[0027] 본 명세서에서 설명되는 양상들은 엘리먼트들의 임의의 특정 배열로 제한되지 않으며, 개시된 기술들은 공유 캐시 메모리 시스템(100)의 다양한 구조들 및 레이아웃들로 용이하게 확장될 수 있다고 이해되어야 한다. 도 1에 예시된 구성은 단지 예시 목적일 뿐이다. 일부 양상들에서, 공유 캐시 메모리 시스템(100)은 본 명세서에 예시된 것보다 더 적거나 더 많은 뱅크들(102(0)-102(X)), 더 적거나 더 많은 세트들(104(0)-104(Y)), 더 적거나 더 많은 캐시 라인들(106(0)-106(L)) 및/또는 더 적거나 더 많은 웨이들(108(0)-108(Z))을 포함할 수 있다.
[0030] 계속해서 도 1을 참조하면, 캐시 제어기(110)가 각각의 뱅크(102(0)-102(X))에 연결된다. 종래의 동작에서, 실행 중인 소프트웨어 애플리케이션과 같은 (도시되지 않은) 요청 에이전트는 (도시되지 않은) 메모리 어드레스에 저장된 (도시되지 않은) 명령 또는 값을 요청할 수 있다. 요청된 명령 또는 값이 공유 캐시 메모리 시스템(100)에서 발견되지 않는다면, 캐시 미스가 발생한다. 응답으로, 캐시 제어기(110)는, 캐시 라인들(106(0)-106(L)) 중 하나 이상의 크기와 같고 요청된 명령 또는 값을 포함하는 (도시되지 않은) 시스템 메모리 부분이 리트리브되어 캐시 라인들(106(0)-106(L)) 중 하나에 저장되게 하는 캐시 채움 동작을 개시할 수 있다.
[0031] 공유 캐시 메모리 시스템(100)은 공유 메모리 사용량에 대한 QoS 지원을 구현하기 위해 다수의 QoS 클래스들(112(0)-112(N))에 대한 지원을 제공한다. QoS 클래스들(112(0)-112(N)) 각각은 고유 QoSID(114(0)-114(N))와 연관된다. 다수의 요청 에이전트들 사이에 캐시 라인들(106(0)-106(L))을 보다 효율적으로 할당하기 위해, 캐시 제어기(110)는 일부 양상들에서 캐시 할당 회로(116)를 제공할 수 있다. 캐시 할당 회로(116)는 QoSID들(114(0)-114(N)) 각각을 특정 요청 에이전트와 연관시키고, 해당 QoSID(114(0)-114(N))에 대한 캐시 라인들(106(0)-106(L))의 할당을 명시함으로써 공유 캐시 메모리 시스템(100)의 캐시 자원들의 사용자 제어를 가능하게 할 수 있다.
[0032] QoSID들(114(0)-114(N)) 사이에 캐시 라인들(106(0)-106(L))을 할당(이에 따라 대응하는 QoS 클래스들(112(0)-112(N)) 사이에 캐시 라인들(106(0)-106(L))을 효율적으로 할당)함으로써, 공유 캐시 메모리 시스템(100)은 다수의 사용 사례 시나리오들에서 캐시 성능을 향상시킬 수 있다. 예를 들어, 일부 양상들에서, 공유 캐시 메모리 시스템(100)은 요청 에이전트들에 의해 실행된 레이턴시 임계 동작들이 실시간 요건들을 충족하기에 충분한 캐시 메모리를 가짐을 실시간 제약들이 보장할 수 있게 할 수 있다. 실시간 제약들에 응답하여 서비스를 제공하기 위해, 캐시 할당 회로(116)는 시간 임계 요청 에이전트에 대한 캐시 라인들(106(0)-106(L))의 최소 작업 세트가 공유 캐시 메모리 시스템(100)에 보존됨을 보장하도록 구성될 수 있다. 캐시 할당 회로(116)에 의한 캐시 라인들(106(0)-106(L))의 할당은 또한 클라우드 컴퓨팅 서비스 수준 협약(SLA)들의 실시에, 그리고/또는 컴퓨터 처리 시스템의 전체 스루풋을 향상시키도록 특정한 요청 에이전트들에 대한 캐시 라인들(106(0)-106(L))의 캐시 할당을 제한하는데 유용할 수 있다.
[0033] 다수의 요청 에이전트들 사이의 캐시 라인들(106(0)-106(L))의 효율적인 할당은 전체 시스템 성능에 대한 자원 할당의 영향들을 결정하기 위해 서로 다른 QoS 클래스들(112(0)-112(N))에 의한 공유 캐시 메모리 시스템(100)의 사용량의 모니터링을 수반한다. 그러나 종래의 캐시 메모리 시스템들은 캐시 사용량을 모니터링하기 위한 공간 효율적인 메커니즘을 제공하지 않는다. 주어진 QoS 클래스(112(0)-112(N))에 의해 얼마나 많은 캐시 라인들(106(0)-106(L))이 사용되는지를 모니터링하기 위해, 공유 캐시 메모리 시스템(100)은 각각의 QoS 클래스(112(0)-112(N))에 의해 액세스된 그러한 캐시 라인들(106(0)-106(L))을 식별하는 능력을 갖는다.
[0034] 한 가지 접근 방식은 캐시 라인들(106(0)-106(L))이 현재 할당된 QoS 클래스(112(0)-112(N))의 QoSID(114(0)-114(N))로 캐시 라인들(106(0)-106(L)) 각각을 태그하는 것을 수반한다. 하지만 이러한 접근 방식은 공유 캐시 메모리 시스템(100) 내의 저장 공간 면에서 엄청나게 비용이 많이 들 수 있다. 예를 들어, 다수(N개)의 QoS 클래스들(112(0)-112(N))을 지원하는 시스템에서, 각각의 QoSID(114(0)-114(N))는 명목상 log2(N) 비트 폭이다. 예를 들어, 공유 캐시 메모리 시스템(100)이 8-비트 QoSID들(114(0)-114(N))로 태그된 128-바이트 라인들을 포함하는 32 메가바이트 크기라면, QoSID들(114(0)-114(N))은 일부 컴퓨터 프로세서 코어들에서 종래의 L2 캐시의 대략적인 크기일 수 있는 256 킬로바이트를 차지할 것이다.
[0035] 이와 관련하여, 공유 캐시 메모리 시스템(100)은 캐시 라인들(106(0)-106(L))의 할당을 결정하고 모니터링하는데 사용하기에 충분히 정확한 대략적인 사용량 측정들을 생성함으로써 저장 오버헤드를 감소시킨다. 따라서 공유 캐시 메모리 시스템(100)은 캐시 제어기(110)의 캐시 할당 회로(116)에 제공된 대략적인 사용량 측정들(120)과 같은 대략적인 사용량 측정들을 제공하도록 캐시 사용량 모니터(118)를 제공한다. 일부 양상들에서, (도시되지 않은) 사용자들은 QoSID들(114(0)-114(N))을 사용해 캐시 사용량 모니터(118)를 조회하여 대응하는 QoS 클래스(112(0)-112(N))의 현재 캐시 사용량의 근사치를 발견할 수 있다. 이러한 양상들에서, 대략적인 사용량 측정들(120)은 비제한적인 예로서, (도시되지 않은) 메모리 맵핑된 인터페이스를 통해 제공될 수 있다.
[0036] 캐시 사용량의 공간 효율적인 모니터링을 제공하기 위해, 캐시 사용량 모니터(118)는 일부 양상들에서, 캐시 라인들(106(0)-106(L))의 복수의 캐시 세분들 각각을 QoS 클래스들(112(0)-112(N)) 중 하나와 연관시킬 수 있다. 일부 양상들에 따르면, 복수의 캐시 세분들은 비제한적인 예들로서, 캐시 라인들(106(0)-106(L)), 캐시 라인들(106(0)-106(L))의 세트들(104(0)-104(Y)), 캐시 라인들(106(0)-106(L))의 웨이들(108(0)-108(Z)), 또는 캐시 라인들(106(0)-106(L))의 뱅크들(102(0)-102(X)) 중 하나 이상을 포함할 수 있다. 이러한 예시적인 구현들은 도 2a - 도 2d에 관해 아래 더 상세히 논의된다. 각각의 캐시 세분은 또한 (도시되지 않은) 복수의 QoSID 추적 태그들 중 하나와 연관되는데, QoSID 추적 태그들 각각은 캐시 세분이 이와 연관된 QoS 클래스(112(0)-112(N))에 의해 현재 사용되고 있는지 여부를 추적하기 위해 캐시 사용량 모니터(118)에 의해 사용될 수 있다. 일부 양상들에 따르면, 복수의 QoSID 추적 태그들 각각은 단일 비트를 포함할 수 있다. 일부 양상들에서, QoS 추적 태그는 각각의 캐시 세분이 다수의 QoS 클래스들(112(0)-112(N))과 연관될 수 있게 하는 다수의 비트들을 포함할 수 있다. 일부 양상들에서, 복수의 QoSID 추적 태그들은 캐시 라인들(106(0)-106(L))과 함께 저장될 수 있는 한편, 일부 양상들은 복수의 QoSID 추적 태그들이 QoSID 추적 태그 데이터 구조(122)로 저장됨을 제공할 수 있다. 도 1은 캐시 제어기(110) 내에 로케이팅되는 것으로 QoSID 추적 태그 데이터 구조(122)를 예시하지만, QoSID 추적 태그 데이터 구조(122)는 일부 양상들에서 공유 캐시 메모리 시스템(100) 내의 다른 곳에(예를 들어, 비제한적인 예로서, 캐시 사용량 모니터(118) 내에) 로케이팅될 수 있다고 이해되어야 한다.
[0037] QoSID(126)를 포함하는 메모리 액세스 요청(124)의 수신시, 캐시 사용량 모니터(118)는 메모리 액세스 요청(124)에 대응하는 캐시 세분에 액세스하여, 메모리 액세스 요청(124)의 QoSID(126)가 캐시 세분과 연관된 QoS 클래스(112(0)-112(N))에 대응하는지 여부를 결정한다. 이 결정을 기초로, 캐시 사용량 모니터(118)는 메모리 액세스 요청(124)에 해당하는 캐시 세분의 QoSID 추적 태그를 업데이트할 수 있다. 예를 들어, 1-비트 QoSID 추적 태그들을 제공하는 일부 양상들에서, 메모리 액세스 요청(124)의 QoSID(126)가 캐시 세분과 연관된 QoS 클래스(112(0)-112(N))에 대응한다면, 캐시 사용량 모니터(118)는 캐시 세분의 QoSID 추적 태그를 1의 값으로 설정할 수 있다. 메모리 액세스 요청(124)의 QoSID(126)가 캐시 세분과 연관된 QoS 클래스(112(0)-112(N))에 대응하지 않는다면, 캐시 사용량 모니터(118)는 캐시 세분의 QoSID 추적 태그를 0의 값으로 설정할 수 있다. 이런 식으로, 각각의 캐시 세분과 연관된 QoS 클래스(112(0)-112(N))가 주어진 시점에 실제로 해당 캐시 세분을 사용하고 있는지 여부를 나타내도록 QoSID 추적 태그들이 유지될 수 있다.
[0038] QoSID 추적 태그들을 기초로, 캐시 사용량 모니터(118)는 QoS 클래스들(112(0)-112(N)) 각각에 대해 캐시 라인들(106(0)-106(L))의 대략적인 사용량 측정들(120)을 생성할 수 있다. 일부 양상들에서, 캐시 사용량 모니터(118)는 QoS 클래스(112(0)-112(N))와 연관된 복수의 캐시 세분들의 비율(fraction)을 결정하고, 연관된 QoSID 추적 태그가 설정되는 QoS 클래스(112(0)-112(N))와 연관된 캐시 세분들의 카운트를 추가로 결정함으로써 대략적인 사용량 측정들(120)을 생성할 수 있다. 캐시 사용량 모니터(118)는 다음에, 대략적인 사용량 측정들(120)을 생성하기 위해 캐시 세분들의 카운트를 비율로 나눌 수 있다.
[0039] 비제한적인 예로서, 공유 캐시 메모리 시스템(100)이 캐시 세분들을 나타내는 16개의 세트들(104(0)-104(15))을 제공한다고 가정한다. 세트들(104(0)-104(7)), 또는 세트들(104(0)-104(15))의 총 개수 중 절반은 측정을 위해 QoS 클래스(112(0))와 연관되는 한편, 세트들(104(8)-104(15))은 측정을 위해 QoS 클래스(112(N))와 연관된다. 따라서 예컨대, QoS 클래스들(112(0), 112(1)) 각각과 연관된 복수의 캐시 세분들의 비율은 ½ 또는 0.5이다. QoS 클래스(112(0))와 연관되는 세트들 중 6개(104(0)-104(5))는 설정되는 연관된 QoSID 추적 태그를 갖는다고 추가로 가정한다. 이에 따라, 캐시 사용량 모니터(118)는 세트들(104(0)-104(15)) 중 12개(즉, 6을 0.5로 나눈 것)가 QoS 클래스(112(0))에 의해 현재 사용 중임을 추정하는 대략적인 사용량 측정(120)을 생성할 수 있다.
[0040] 일부 양상들에서, 캐시 사용량 모니터(118)는 캐시 세분들을 고정된 최대 수의 QoS 클래스들(112(0)-112(N))과 연관시키기보다는 캐시 세분들을 활성 QoS 클래스들(112(0)-112(N))에만 연관시킴으로써 그 정확도를 향상시킬 수 있다. 예를 들어, 단 하나의 QoS 클래스(112(0))만이 활성이라면, 활성 QoS 클래스(112(0))가 공유 캐시 메모리 시스템(100) 내의 모든 각각의 캐시 라인(106(0)-106(L))과 연관될 수 있어, 대략적인 사용량 측정들(120)이 0의 에러를 갖게 할 수 있다. 일부 양상들은 QoS 클래스(112(0)-112(N))를 식별하는데 필요한 비트 수를 감소시키는 것뿐만 아니라, 캐시 사용량 모니터(118)가 또한 종래의 샘플링 방법들을 이용할 수 있는 것을 제공할 수 있다. 비제한적인 예로서, QoSID 추적 태그들은 캐시 세분들의 분산된 서브세트에만 연관될 수 있다.
[0041] 근사화 기술들은 일부 양상들에서는 주어진 애플리케이션에 대한 오버헤드와 정확도 사이에 용인할 수 있는 절충을 갖는 공유 캐시 메모리 시스템(100)의 구성을 제공하도록 결합될 수 있다. 일부 양상들에서 제공되는 결합들에 대한 저장 요건들이 아래 표 1에 예시된다. 표 1에서, 다양한 구성들에 의해 요구되는 바이트 단위의 총 저장소가 표시된다. 각각의 항목은 8 메가바이트, 16-웨이, 128-바이트 라인, 4-뱅크 캐시, 그리고 최대 32개의 QoSID들을 지원하는 시스템을 기반으로 계산된다. 괄호들 안의 숫자는 어떤 캐시 라인에 5-비트 QoSID가 첨부되는지를 완전하고 정확하게 추적하는 데 필요한 상대적 오버헤드의 백분율이다.
완전한 추적 40960 바이트(100%)
뱅크마다 256개의 세트들을 샘플링함 10240 바이트(25%)
세트마다 4개의 웨이들을 샘플링함 10240 바이트(25%)
라인마다 1 QoSID 비트 8192 바이트(20%)
뱅크마다 128개의 세트들을 샘플링함 5120 바이트(12.5%)
세트마다 2개의 웨이들을 샘플링함 5120 바이트(12.5%)
뱅크마다 512개의 세트들, 샘플링된 세트마다 8개의 웨이들, 그리고 샘플링된 라인마다 1 QoSID 비트를 샘플링함 2048 바이트(5%)
뱅크마다 256개의 세트들, 샘플링된 세트마다 8개의 웨이들, 그리고 샘플링된 라인마다 1 QoSID 비트를 샘플링함 2048 바이트(2.5%)
뱅크마다 128개의 세트들, 샘플링된 세트마다 8개의 웨이들, 그리고 샘플링된 라인마다 1 QoSID 비트를 샘플링함 2048 바이트(1.25%)
[0042] 앞서 언급한 바와 같이, 일부 양상들에서, 캐시 세분들은 캐시 라인들(106(0)-106(L)), 캐시 라인들(106(0)-106(L))의 세트들(104(0)-104(Y)), 캐시 라인들(106(0)-106(L))의 웨이들(108(0)-108(Z)), 또는 캐시 라인들(106(0)-106(L))의 뱅크들(102(0)-102(X)) 중 하나 이상을 포함할 수 있다. 이와 관련하여, 도 2a - 도 2d는 캐시 라인들(106(0)-106(L)), 캐시 라인들(106(0)-106(L))의 세트들(104(0)-104(Y)), 캐시 라인들(106(0)-106(L))의 웨이들(108(0)-108(Z)), 및 캐시 라인들(106(0)-106(L))의 뱅크들(102(0)-102(X))을 각각 포함하는 캐시 세분들(200(0)-200(L), 200(0)-200(Y), 200(0)-200(Z), 200(0)-200(X))을 제공하는 예시적인 양상들을 예시하도록 제공된다. 도 2a에서, 캐시 세분들(200(0)-200(L))은 각각 캐시 라인들(106(0)-106(L)) 중 하나에 대응하는데, 캐시 라인들(106(0), 106(2), 106(L))은 QoS 클래스(112(0))와 연관되고 캐시 라인들(106(1), 106(3))은 QoS 클래스(112(1))와 연관된다. 캐시 세분들(200(0)-200(L)) 각각은 또한 단일 비트를 포함하는 대응하는 QoSID 추적 태그(202(0))-202(L)와 연관된다. QoSID 추적 태그들(202(0)-202(L))은, 캐시 라인(106(1))은 연관된 QoS 클래스(112(1))에 의해 현재 사용 중이고, 캐시 라인들(106(2), 106(L))은 연관된 QoS 클래스(112(0))에 의해 현재 사용 중임을 나타낸다. 마찬가지로, QoSID 추적 태그(202(0))는 캐시 라인(106(0))이 연관된 QoS 클래스(112(0))에 의해 현재 사용 중이 아님을 나타내고, QoSID 추적 태그(202(3))는 캐시 라인(106(3))이 연관된 QoS 클래스(112(1))에 의해 현재 사용 중이 아님을 나타낸다.
[0043] 도 2b의 예에서, 캐시 세분들(200(0)-200(Y))은 각각 캐시 라인들(106(0)-106(L))의 세트들(104(0)-104(Y)) 중 하나에 대응한다. 세트들(104(0), 104(2), 104(Y))은 QoS 클래스(112(0))와 연관되는 한편, 세트들(104(1), 104(3))은 QoS 클래스(112(1))와 연관된다. 캐시 세분들(200(0)-200(Y))과 연관된 QoSID 추적 태그들(202(0)-202(Y))은, 세트(104(1))는 연관된 QoS 클래스(112(1))에 의해 현재 사용 중이고, 세트들(104(2), 104(Y))은 연관된 QoS 클래스(112(0))에 의해 현재 사용 중임을 나타낸다. 마찬가지로, QoSID 추적 태그(202(0))는 세트(104(0))가 연관된 QoS 클래스(112(0))에 의해 현재 사용 중이 아님을 나타내고, QoSID 추적 태그(202(3))는 세트(104(3))가 연관된 QoS 클래스(112(1))에 의해 현재 사용 중이 아님을 나타낸다.
[0044] 도 2c에서, 캐시 세분들(200(0)-200(Z))은 각각 캐시 라인들(106(0)-106(L))의 웨이들(108(0)-108(Z)) 중 하나에 대응한다. 웨이들(108(0), 108(2), 108(Z))은 QoS 클래스(112(0))와 연관되는 한편, 웨이들(108(1), 108(3))은 QoS 클래스(112(1))와 연관된다. 캐시 세분들(200(0)-200(Z))과 연관된 QoSID 추적 태그들(202(0)-202(Z))은, 웨이(108(1))는 연관된 QoS 클래스(112(1))에 의해 현재 사용 중이고, 웨이들(108(2), 108(Z))은 연관된 QoS 클래스(112(0))에 의해 현재 사용 중임을 나타낸다. 마찬가지로, QoSID 추적 태그(202(0))는 웨이(108(0))가 연관된 QoS 클래스(112(0))에 의해 현재 사용 중이 아님을 나타내고, QoSID 추적 태그(202(3))는 웨이(108(3))가 연관된 QoS 클래스(112(1))에 의해 현재 사용 중이 아님을 나타낸다.
[0045] 이제 도 2d를 참조하면, 이 예에서 캐시 세분들(200(0)-200(X))은 각각 캐시 라인들(106(0)-106(L))의 뱅크들(102(0)-102(X)) 중 하나에 대응한다. 뱅크들(102(0), 102(2), 102(X))은 QoS 클래스(112(0))와 연관되는 한편, 뱅크들(102(1), 102(3))은 QoS 클래스(112(1))와 연관된다. 이 예에서, 캐시 세분들(200(0)-200(X))과 연관된 QoSID 추적 태그들(202(0)-202(X))은, 뱅크(102(1))는 연관된 QoS 클래스(112(1))에 의해 현재 사용 중이고, 뱅크들(102(2), 102(X))은 연관된 QoS 클래스(112(0))에 의해 현재 사용 중임을 나타낸다. 마찬가지로, QoSID 추적 태그(202(0))는 뱅크(102(0))가 연관된 QoS 클래스(112(0))에 의해 현재 사용 중이 아님을 나타내고, QoSID 추적 태그(202(3))는 뱅크(102(3))가 연관된 QoS 클래스(112(1))에 의해 현재 사용 중이 아님을 나타낸다.
[0046] 대략적인 사용량 측정들(120)을 생성하기 위한 도 1의 공유 캐시 메모리 시스템(100)의 예시적인 동작들을 예시하기 위해, 도 3a - 도 3b가 제공된다. 도 3a - 도 3b의 설명시, 명확하게 하기 위해 도 1 및 도 2a - 도 2d의 엘리먼트들이 참조된다. 도 3a에서, 도 1의 캐시 사용량 모니터(118)가 공유 캐시 메모리 시스템(100)의 복수의 캐시 세분들(예를 들어, 캐시 세분들(200(0)-200(L), 200(0)-200(Y), 200(0)-200(Z), 200(0)-200(X))) 중 각각의 캐시 세분(200(0))을 복수의 QoS 클래스들(112(0)-112(N)) 중 QoS 클래스(112(0))와 연관시키는 것(블록(300))으로 동작들이 시작된다. 이와 관련하여, 캐시 사용량 모니터(118)는 본 명세서에서 "공유 캐시 메모리 시스템의 복수의 캐시 세분들 중 각각의 캐시 세분을 복수의 QoS 클래스들 중 QoS 클래스와 연관시키기 위한 수단"으로 지칭될 수 있다.
[0047] 캐시 사용량 모니터(118)는 다음에, QoSID(126)를 포함하는 메모리 액세스 요청(124)을 수신한다(블록(302)). 이에 따라, 캐시 사용량 모니터(118)는 본 명세서에서 "QoSID를 포함하는 메모리 액세스 요청을 수신하기 위한 수단"으로 지칭될 수 있다. 캐시 사용량 모니터(118)는 복수의 캐시 세분들(200(0)-200(L), 200(0)-200(Y), 200(0)-200(Z), 200(0)-200(X)) 중에서 메모리 액세스 요청(124)에 해당하는 캐시 세분(200(0))에 액세스한다(블록(304)). 따라서 캐시 사용량 모니터(118)는 본 명세서에서 "복수의 캐시 세분들 중에서 메모리 액세스 요청에 해당하는 캐시 세분에 액세스하기 위한 수단"으로 지칭될 수 있다.
[0048] 계속해서 도 3a를 참조하면, 캐시 사용량 모니터(118)는 메모리 액세스 요청(124)의 QoSID(126)가 캐시 세분(200(0))과 연관된 QoS 클래스(112(0))에 대응하는지 여부를 결정한다(블록(306)). 이와 관련하여, 캐시 사용량 모니터(118)는 본 명세서에서 "메모리 액세스 요청의 QoSID가 복수의 QoS 클래스들 중 캐시 세분과 연관된 QoS 클래스에 대응하는지 여부를 결정하기 위한 수단"으로 지칭될 수 있다. 결정을 기초로, 캐시 사용량 모니터(118)는 결정을 기초로 메모리 액세스 요청(124)에 해당하는 캐시 세분(200(0))과 연관된 QoSID 추적 태그(202(0))를 업데이트한다(블록(308)). 이에 따라, 캐시 사용량 모니터(118)는 본 명세서에서 "결정하기 위한 수단을 기초로 복수의 QoSID 추적 태그들 중 메모리 액세스 요청에 해당하는 캐시 세분과 연관된 QoSID 추적 태그를 업데이트하기 위한 수단"으로 지칭될 수 있다. 그 다음, 처리는 도 3b의 블록(310)에서 재개된다.
[0049] 이제 도 3b를 참조하면, 캐시 사용량 모니터(118)는 복수의 QoSID 추적 태그들(202(0)-202(N))을 기초로 복수의 QoS 클래스들(112(0)-112(Z)) 중 QoS 클래스(112(0))에 대한 대략적인 사용량 측정(120)을 생성한다(블록(310)). 따라서 캐시 사용량 모니터(118)는 본 명세서에서 "복수의 QoSID 추적 태그들을 기초로 복수의 QoS 클래스들 중 QoS 클래스에 대한 대략적인 사용량 측정을 생성하기 위한 수단"으로 지칭될 수 있다. 일부 양상들에서, 대략적인 사용량 측정(120)을 생성하기 위한 블록(310)의 동작들은 캐시 사용량 모니터(118)가 우선 복수의 캐시 세분들(200(0)-200(X)) 중 QoS 클래스(112(0))와 연관된 비율을 결정하는 것(블록(312))을 포함할 수 있다. 이와 관련하여, 캐시 사용량 모니터(118)는 본 명세서에서 "복수의 캐시 세분들 중 QoS 클래스와 연관된 비율을 결정하기 위한 수단"으로 지칭될 수 있다. 캐시 사용량 모니터(118)는 다음에, 연관된 QoSID 추적 태그(202(0))가 설정된 QoS 클래스(112(0))와 연관된 복수의 캐시 세분들(200(0)-200(X))의 카운트를 결정할 수 있다(블록(314)). 이에 따라, 캐시 사용량 모니터(118)는 본 명세서에서 "연관된 QoSID 추적 태그가 설정된 QoS 클래스와 연관된 복수의 캐시 세분들의 카운트를 결정하기 위한 수단"으로 지칭될 수 있다. 캐시 사용량 모니터(118)는 다음에, 대략적인 사용량 측정(120)을 생성하기 위해 캐시 세분들(200(0)-200(X))의 카운트를 비율로 나눌 수 있다(블록(316)). 따라서 캐시 사용량 모니터(118)는 본 명세서에서 "대략적인 사용량 측정을 생성하기 위해 복수의 캐시 세분들의 카운트를 비율로 나누기 위한 수단"으로 지칭될 수 있다.
[0050] 공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성이 임의의 프로세서 기반 디바이스에 제공되거나 임의의 프로세서 기반 디바이스로 통합될 수 있다. 제한 없이 예들은 셋톱 박스, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 휴대 전화, 셀룰러폰, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, 개인용 디지털 보조기기(PDA: personal digital assistant), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 휴대용 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크(DVD: digital video disc) 플레이어 및 휴대용 디지털 비디오 플레이어를 포함한다.
[0051] 이와 관련하여, 도 4는 도 1의 캐시 제어기(110)를 갖는 공유 캐시 메모리 시스템(SCMS: shared cache memory system)(100)을 포함할 수 있는 예시적인 프로세서 기반 시스템(400)의 블록도이다. 이 예에서, 프로세서 기반 시스템(400)은 하나 또는 그보다 많은 프로세서들(404)을 각각 포함하는 하나 또는 그보다 많은 CPU들(402)을 포함한다. CPU(들)(402)는 마스터 디바이스일 수 있다. CPU(들)(402)는 일시적으로 저장된 데이터에 대한 신속한 액세스를 위해 프로세서(들)(404)에 연결되는 캐시 메모리(406)를 가질 수 있다. 일부 양상들에서, 캐시 메모리(406)는 도 1의 공유 캐시 메모리 시스템(100) 및/또는 캐시 제어기(110)를 포함할 수 있다. CPU(들)(402)는 시스템 버스(408)에 연결되고, 프로세서 기반 시스템(400)에 포함된 마스터 및 슬레이브 디바이스들을 상호 연결할 수 있다. 주지된 바와 같이, CPU(들)(402)는 시스템 버스(408)를 통해 어드레스, 제어 및 데이터 정보를 교환함으로써 이러한 다른 디바이스들과 통신한다. 예를 들어, CPU(들)(402)는 슬레이브 디바이스의 일례인 메모리 제어기(410)에 버스 트랜잭션 요청들을 전달할 수 있다.
[0052] 다른 마스터 및 슬레이브 디바이스들이 시스템 버스(408)에 접속될 수 있다. 도 4에 예시된 바와 같이, 이러한 디바이스들은 메모리 시스템(412), 하나 또는 그보다 많은 입력 디바이스들(414), 하나 또는 그보다 많은 출력 디바이스들(416), 하나 또는 그보다 많은 네트워크 인터페이스 디바이스들(418) 및 하나 또는 그보다 많은 디스플레이 제어기들(420)을 예들로서 포함할 수 있다. 입력 디바이스(들)(414)는 입력 키들, 스위치들, 음성 프로세서들 등을 포함하는(그러나 이에 제한되는 것은 아님) 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(416)는 오디오, 비디오, 다른 시각적 표시자들 등을 포함하는(그러나 이에 제한되는 것은 아님) 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들)(418)는 네트워크(422)로 그리고 네트워크(422)로부터의 데이터의 교환을 가능하게 하도록 구성된 임의의 디바이스들일 수 있다. 네트워크(422)는 유선 또는 무선 네트워크, 사설 또는 공공 네트워크, 근거리 네트워크(LAN: local area network), 무선 근거리 네트워크(WLAN: wireless local area network), 광역 네트워크(WAN: wide area network), BLUETOOTH™ 네트워크 및 인터넷을 포함하는(그러나 이에 제한되는 것은 아님) 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(418)는 원하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다. 메모리 시스템(412)은 하나 또는 그보다 많은 메모리 유닛들(424(0)-424(N))을 포함할 수 있다.
[0053] CPU(들)(402)는 또한 하나 또는 그보다 많은 디스플레이들(426)에 전송되는 정보를 제어하기 위해 시스템 버스(408)를 통해 디스플레이 제어기(들)(420)에 액세스하도록 구성될 수 있다. 디스플레이 제어기(들)(420)는 하나 또는 그보다 많은 비디오 프로세서들(428)을 통해 디스플레이될 정보를 디스플레이(들)(426)에 전송하고, 비디오 프로세서들(428)은 디스플레이될 정보를 디스플레이(들)(426)에 적합한 포맷으로 처리한다. 디스플레이(들)(426)는 음극선관(CRT: cathode ray tube), 액정 디스플레이(LCD: liquid crystal display), 플라즈마 디스플레이 등을 포함하는(그러나 이에 제한되는 것은 아님) 임의의 타입의 디스플레이를 포함할 수 있다.
[0054] 해당 기술분야에서 통상의 지식을 가진 자들은 본 명세서에 개시된 양상들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들 및 알고리즘들이 전자 하드웨어로서 구현될 수 있다고 추가로 인식할 것이다. 본 명세서에서 설명된 디바이스들은 예들로서 임의의 회로, 하드웨어 컴포넌트, 집적 회로(IC: integrated circuit) 또는 IC 칩에 이용될 수 있다. 본 명세서에 개시된 메모리는 임의의 타입 및 크기의 메모리일 수 있고, 원하는 임의의 타입의 정보를 저장하도록 구성될 수 있다. 이러한 상호 호환성을 명확히 설명하기 위해, 각종 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들은 일반적으로 이들의 기능과 관련하여 위에서 설명되었다. 이러한 기능이 어떻게 구현되는지는 전체 시스템에 부과된 설계 제약들, 특정 애플리케이션 및/또는 설계 선택들에 좌우된다. 해당 기술분야에서 통상의 지식을 가진 자들은 설명된 기능을 특정 애플리케이션마다 다양한 방식들로 구현할 수도 있지만, 이러한 구현 결정들이 본 개시의 범위를 벗어나게 하는 것으로 해석되지는 않아야 한다.
[0055] 본 명세서에 개시된 양상들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들 및 회로들은 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC: Application Specific Integrated Circuit), 필드 프로그래밍 가능 게이트 어레이(FPGA: Field Programmable Gate Array) 또는 다른 프로그래밍 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합으로 구현되거나 이들에 의해 수행될 수 있다. 프로세서는 마이크로프로세서일 수도 있지만, 대안으로 프로세서는 임의의 종래 프로세서, 제어기, 마이크로컨트롤러 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 결합, 예를 들어 DSP와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 또는 그보다 많은 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다.
[0056] 본 명세서의 예시적인 양상들 중 임의의 양상에서 설명된 동작 단계들은 예들 및 논의를 제공하기 위해 설명된다는 점이 또한 주목된다. 설명된 동작들은 예시된 순서들과는 다른 다수의 상이한 순서들로 수행될 수 있다. 게다가, 단일 동작 단계로 설명된 동작들은 실제로 다수의 서로 다른 단계들에서 수행될 수 있다. 추가로, 예시적인 양상들에서 논의된 하나 또는 그보다 많은 동작 단계들이 결합될 수 있다. 흐름도 도면들에 예시된 동작 단계들은 해당 기술분야에서 통상의 지식을 가진 자에게 쉽게 명백해지듯이 다수의 서로 다른 변형들이 가해질 수 있다고 이해되어야 한다. 해당 기술분야에서 통상의 지식을 가진 자들은 또한 정보 및 신호들이 다양한 다른 기술들 및 기법들 중 임의의 것을 이용하여 표현될 수 있다고 이해할 것이다. 예컨대, 상기 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심벌들 및 칩들은 전압들, 전류들, 전자기파들, 자기 필드들 또는 자기 입자들, 광 필드들 또는 광 입자들, 또는 이들의 임의의 결합들로 표현될 수 있다.
[0057] 본 개시의 상기의 설명은 해당 기술분야에서 통상의 지식을 가진 임의의 자가 본 개시를 이용하거나 실시할 수 있게 하도록 제공된다. 본 개시에 대한 다양한 변형들이 해당 기술분야에서 통상의 지식을 가진 자들에게 쉽게 명백할 것이며, 본 명세서에 정의된 일반 원리들은 본 개시의 사상 또는 범위를 벗어나지 않으면서 다른 변형들에 적용될 수 있다. 그러므로 본 개시는 본 명세서에서 설명된 예시들 및 설계들로 한정되는 것으로 의도되는 것이 아니라, 본 명세서에 개시된 원리들 및 신규한 특징들에 부합하는 가장 넓은 범위에 따르는 것이다.

Claims (20)

  1. 공유 캐시 메모리 시스템으로서,
    복수의 캐시 세분들;
    상기 복수의 캐시 세분들 중 캐시 세분과 각각 연관된 복수의 서비스 품질(QoS: Quality of Service) 식별자(QoSID: QoS identifier) 추적 태그들; 및
    캐시 사용량 모니터를 포함하며,
    상기 캐시 사용량 모니터는,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분을 복수의 QoS 클래스들 중 QoS 클래스와 연관시키고;
    QoSID를 포함하는 메모리 액세스 요청을 수신하고;
    상기 복수의 캐시 세분들 중에서 상기 메모리 액세스 요청에 해당하는 캐시 세분에 액세스하고;
    상기 메모리 액세스 요청의 QoSID가 상기 캐시 세분과 연관된 QoS 클래스에 대응하는지 여부를 결정하고;
    상기 결정을 기초로 상기 복수의 QoSID 추적 태그들 중 상기 메모리 액세스 요청에 해당하는 캐시 세분과 연관된 QoSID 추적 태그를 업데이트하고; 그리고
    상기 복수의 QoSID 추적 태그들을 기초로 상기 복수의 QoS 클래스들 중 상기 QoS 클래스에 대한 대략적인 사용량 측정을 생성하도록 구성되는데,
    상기 캐시 사용량 모니터는,
    상기 복수의 캐시 세분들 중 상기 QoS 클래스와 연관된 비율을 결정하고;
    상기 연관된 QoSID 추적 태그가 설정된 QoS 클래스와 연관된 상기 복수의 캐시 세분들의 카운트를 결정하고; 그리고
    상기 대략적인 사용량 측정을 생성하기 위해 상기 복수의 캐시 세분들의 카운트를 상기 비율로 나눔으로써
    상기 대략적인 사용량 측정을 생성하도록 구성되는,
    공유 캐시 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인을 포함하는,
    공유 캐시 메모리 시스템.
  3. 제 1 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인들의 세트를 포함하는,
    공유 캐시 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인들의 웨이(way)를 포함하는,
    공유 캐시 메모리 시스템.
  5. 제 1 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인들의 뱅크를 포함하는,
    공유 캐시 메모리 시스템.
  6. 제 1 항에 있어서,
    상기 복수의 QoSID 추적 태그들은 상기 복수의 캐시 세분들의 분산된 서브세트와 연관되는,
    공유 캐시 메모리 시스템.
  7. 제 1 항에 있어서,
    집적 회로(IC: integrated circuit)로 통합되는,
    공유 캐시 메모리 시스템.
  8. 제 1 항에 있어서,
    셋톱 박스; 엔터테인먼트 유닛; 내비게이션 디바이스; 통신 디바이스; 고정 위치 데이터 유닛; 모바일 위치 데이터 유닛; 휴대 전화; 셀룰러폰; 컴퓨터; 휴대용 컴퓨터; 데스크톱 컴퓨터; 개인용 디지털 보조기기(PDA: personal digital assistant); 모니터; 컴퓨터 모니터; 텔레비전; 튜너; 라디오; 위성 라디오; 뮤직 플레이어; 디지털 뮤직 플레이어; 휴대용 뮤직 플레이어; 디지털 비디오 플레이어; 비디오 플레이어; 디지털 비디오 디스크(DVD: digital video disc) 플레이어 및 휴대용 디지털 비디오 플레이어로 구성된 그룹으로부터 선택된 디바이스에 통합되는,
    공유 캐시 메모리 시스템.
  9. 공유 캐시 메모리 시스템으로서,
    상기 공유 캐시 메모리 시스템의 복수의 캐시 세분들 중 각각의 캐시 세분을 복수의 서비스 품질(QoS) 클래스들 중 QoS 클래스와 연관시키기 위한 수단;
    QoS 식별자(QoSID)를 포함하는 메모리 액세스 요청을 수신하기 위한 수단;
    상기 복수의 캐시 세분들 중에서 상기 메모리 액세스 요청에 해당하는 캐시 세분에 액세스하기 위한 수단;
    상기 메모리 액세스 요청의 QoSID가 상기 복수의 QoS 클래스들 중 상기 캐시 세분과 연관된 QoS 클래스에 대응하는지 여부를 결정하기 위한 수단;
    상기 결정하기 위한 수단을 기초로 복수의 QoSID 추적 태그들 중 상기 메모리 액세스 요청에 해당하는 캐시 세분과 연관된 QoSID 추적 태그를 업데이트하기 위한 수단; 및
    상기 복수의 QoSID 추적 태그들을 기초로 상기 복수의 QoS 클래스들 중 상기 QoS 클래스에 대한 대략적인 사용량 측정을 생성하기 위한 수단을 포함하며,
    상기 대략적인 사용량 측정을 생성하기 위한 수단은,
    상기 복수의 캐시 세분들 중 상기 QoS 클래스와 연관된 비율을 결정하기 위한 수단;
    상기 연관된 QoSID 추적 태그가 설정된 QoS 클래스와 연관된 상기 복수의 캐시 세분들의 카운트를 결정하기 위한 수단; 및
    상기 대략적인 사용량 측정을 생성하기 위해 상기 복수의 캐시 세분들의 카운트를 상기 비율로 나누기 위한 수단을 포함하는,
    공유 캐시 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인을 포함하는,
    공유 캐시 메모리 시스템.
  11. 제 9 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인들의 세트를 포함하는,
    공유 캐시 메모리 시스템.
  12. 제 9 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인들의 웨이를 포함하는,
    공유 캐시 메모리 시스템.
  13. 제 9 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인들의 뱅크를 포함하는,
    공유 캐시 메모리 시스템.
  14. 제 9 항에 있어서,
    상기 복수의 QoSID 추적 태그들은 상기 복수의 캐시 세분들의 분산된 서브세트와 연관되는,
    공유 캐시 메모리 시스템.
  15. 공유 캐시 메모리 사용량을 근사화하기 위한 방법으로서,
    공유 캐시 메모리 시스템의 복수의 캐시 세분들 중 각각의 캐시 세분을 복수의 서비스 품질(QoS) 클래스들 중 QoS 클래스와 연관시키는 단계;
    QoS 식별자(QoSID)를 포함하는 메모리 액세스 요청을 수신하는 단계;
    상기 복수의 캐시 세분들 중에서 상기 메모리 액세스 요청에 해당하는 캐시 세분에 액세스하는 단계;
    상기 메모리 액세스 요청의 QoSID가 상기 복수의 QoS 클래스들 중 상기 캐시 세분과 연관된 QoS 클래스에 대응하는지 여부를 결정하는 단계;
    상기 결정하는 단계를 기초로 복수의 QoSID 추적 태그들 중 상기 메모리 액세스 요청에 해당하는 캐시 세분과 연관된 QoSID 추적 태그를 업데이트하는 단계; 및
    상기 복수의 QoSID 추적 태그들을 기초로 상기 복수의 QoS 클래스들 중 상기 QoS 클래스에 대한 대략적인 사용량 측정을 생성하는 단계를 포함하며,
    상기 대략적인 사용량 측정을 생성하는 단계는,
    상기 복수의 캐시 세분들 중 상기 QoS 클래스와 연관된 비율을 결정하고;
    상기 연관된 QoSID 추적 태그가 설정된 QoS 클래스와 연관된 상기 복수의 캐시 세분들의 카운트를 결정하고; 그리고
    상기 대략적인 사용량 측정을 생성하기 위해 상기 복수의 캐시 세분들의 카운트를 상기 비율로 나눔으로써
    상기 대략적인 사용량 측정을 생성하는,
    공유 캐시 메모리 사용량을 근사화하기 위한 방법.
  16. 제 15 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인을 포함하는,
    공유 캐시 메모리 사용량을 근사화하기 위한 방법.
  17. 제 15 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인들의 세트를 포함하는,
    공유 캐시 메모리 사용량을 근사화하기 위한 방법.
  18. 제 15 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인들의 웨이를 포함하는,
    공유 캐시 메모리 사용량을 근사화하기 위한 방법.
  19. 제 15 항에 있어서,
    상기 복수의 캐시 세분들 중 각각의 캐시 세분은 캐시 라인들의 뱅크를 포함하는,
    공유 캐시 메모리 사용량을 근사화하기 위한 방법.
  20. 제 15 항에 있어서,
    상기 복수의 QoSID 추적 태그들은 상기 복수의 캐시 세분들의 분산된 서브세트와 연관되는,
    공유 캐시 메모리 사용량을 근사화하기 위한 방법.
KR1020177013876A 2014-11-25 2015-11-09 공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성 KR101847905B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462084469P 2014-11-25 2014-11-25
US62/084,469 2014-11-25
US14/860,993 US9697126B2 (en) 2014-11-25 2015-09-22 Generating approximate usage measurements for shared cache memory systems
US14/860,993 2015-09-22
PCT/US2015/059685 WO2016085642A1 (en) 2014-11-25 2015-11-09 Generating approximate usage measurements for shared cache memory systems

Publications (2)

Publication Number Publication Date
KR20170087883A true KR20170087883A (ko) 2017-07-31
KR101847905B1 KR101847905B1 (ko) 2018-04-11

Family

ID=56010345

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177013876A KR101847905B1 (ko) 2014-11-25 2015-11-09 공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성

Country Status (11)

Country Link
US (1) US9697126B2 (ko)
EP (1) EP3224727B1 (ko)
JP (1) JP6262408B1 (ko)
KR (1) KR101847905B1 (ko)
CN (1) CN107003947B (ko)
AU (1) AU2015354704B2 (ko)
BR (1) BR112017010869A2 (ko)
ES (1) ES2692855T3 (ko)
HU (1) HUE039628T2 (ko)
TW (1) TWI612422B (ko)
WO (1) WO2016085642A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055158B2 (en) * 2016-09-22 2018-08-21 Qualcomm Incorporated Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems
US10936490B2 (en) * 2017-06-27 2021-03-02 Intel Corporation System and method for per-agent control and quality of service of shared resources in chip multiprocessor platforms
US10678690B2 (en) * 2017-08-29 2020-06-09 Qualcomm Incorporated Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems
US11520700B2 (en) 2018-06-29 2022-12-06 Intel Corporation Techniques to support a holistic view of cache class of service for a processor cache
US11693708B2 (en) * 2019-04-24 2023-07-04 Netflix, Inc. Techniques for increasing the isolation of workloads within a multiprocessor instance

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156821A (ja) * 2005-12-05 2007-06-21 Fujitsu Ltd キャッシュシステム及び共用2次キャッシュ
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US8296522B2 (en) * 2007-12-20 2012-10-23 Intel Corporation Method, apparatus, and system for shared cache usage to different partitions in a socket with sub-socket partitioning
US8244982B2 (en) * 2009-08-21 2012-08-14 Empire Technology Development Llc Allocating processor cores with cache memory associativity
US8667493B2 (en) 2010-05-07 2014-03-04 Advanced Micro Devices, Inc. Memory-controller-parallelism-aware scheduling for multiple memory controllers
US8458399B2 (en) 2010-11-17 2013-06-04 Lsi Corporation Methods and structure for determining cache size in a storage system
WO2012137339A1 (ja) * 2011-04-07 2012-10-11 富士通株式会社 情報処理装置、並列計算機システムおよび演算処理装置の制御方法
US8850122B2 (en) 2011-11-30 2014-09-30 International Business Machines Corporation Cache optimization via predictive cache size modification
US8751746B2 (en) 2011-12-15 2014-06-10 Apple Inc. QoS management in the L2 cache
US10554505B2 (en) 2012-09-28 2020-02-04 Intel Corporation Managing data center resources to achieve a quality of service

Also Published As

Publication number Publication date
TWI612422B (zh) 2018-01-21
AU2015354704B2 (en) 2018-03-29
JP2018503891A (ja) 2018-02-08
AU2015354704A1 (en) 2017-05-04
KR101847905B1 (ko) 2018-04-11
CN107003947B (zh) 2018-08-03
ES2692855T3 (es) 2018-12-05
US20160147655A1 (en) 2016-05-26
US9697126B2 (en) 2017-07-04
TW201633149A (zh) 2016-09-16
BR112017010869A2 (pt) 2018-01-09
WO2016085642A1 (en) 2016-06-02
EP3224727B1 (en) 2018-08-15
JP6262408B1 (ja) 2018-01-17
HUE039628T2 (hu) 2019-01-28
CN107003947A (zh) 2017-08-01
EP3224727A1 (en) 2017-10-04

Similar Documents

Publication Publication Date Title
KR102545726B1 (ko) 프로세서-기반 시스템들에서 공간 QoS(Quality of Service) 태깅을 사용한 이종 메모리 시스템들의 유연한 관리의 제공
KR101847905B1 (ko) 공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성
KR101609718B1 (ko) 프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들
EP3224728B1 (en) Providing shared cache memory allocation control in shared cache memory systems
EP3140728B1 (en) Dynamic load balancing of hardware threads in clustered processor cores using shared hardware resources, and related circuits, methods, and computer-readable media
WO2019045954A1 (en) REALIZING QUALIFIED SERVICE QUALITY CONTROL (QOS) USING SEGMENTED RESOURCE INTERPOLATION IN PROCESSOR-BASED SYSTEMS
US20120089759A1 (en) Arbitrating Stream Transactions Based on Information Related to the Stream Transaction(s)
US9880748B2 (en) Bifurcated memory management for memory elements
US10482016B2 (en) Providing private cache allocation for power-collapsed processor cores in processor-based systems

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