KR20210097345A - 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법 - Google Patents

캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법 Download PDF

Info

Publication number
KR20210097345A
KR20210097345A KR1020200010921A KR20200010921A KR20210097345A KR 20210097345 A KR20210097345 A KR 20210097345A KR 1020200010921 A KR1020200010921 A KR 1020200010921A KR 20200010921 A KR20200010921 A KR 20200010921A KR 20210097345 A KR20210097345 A KR 20210097345A
Authority
KR
South Korea
Prior art keywords
cache
ways
way
candidate
memory device
Prior art date
Application number
KR1020200010921A
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 삼성전자주식회사
Priority to KR1020200010921A priority Critical patent/KR20210097345A/ko
Priority to DE102020121508.8A priority patent/DE102020121508A1/de
Priority to US17/000,875 priority patent/US11321235B2/en
Priority to CN202011264612.3A priority patent/CN113204501A/zh
Publication of KR20210097345A publication Critical patent/KR20210097345A/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/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch 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/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative 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/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

캐시 메모리 장치는 캐시 회로 및 웨이 예상 회로를 포함한다. 캐시 회로는, 웨이 예상 모드에서 복수의 웨이들 중에서 하나 이상의 후보 웨이들을 나타내는 후보 웨이 신호에 기초하여 상기 후보 웨이들에 대해 우선적으로 현재의 캐시 액세스 동작을 수행한다. 웨이 예상 회로는 이전에 수행된 복수의 캐시 액세스 동작들 동안 제공되는 상기 캐시 적중 신호에 기초하여 캐시 적중 결과 및 웨이 예상 적중 결과를 누적한 누적 정보를 저장하고, 상기 웨이 예상 모드에서 상기 누적 정보에 기초하여 상기 현재의 캐시 액세스 동작을 위한 상기 후보 웨이들을 결정하여 상기 후보 웨이 신호를 발생한다. 누적 정보에 기초하여 우선적으로 액세스되는 후보 웨이들을 정확하게 예상하고 결정함으로써 소모 전력을 감소할 수 있다.

Description

캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법{Cache memory device, system including the same and method of operating the cache memory device}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 캐시 메모리 장치, 상기 캐시 메모리 장치를 포함하는 시스템 및 상기 캐시 메모리 장치의 동작 방법에 관한 것이다.
프로세서의 캐시 메모리에 액세스하는 것은 많은 전력을 소비한다. 캐시 메모리는 통상적으로 복수의 캐시 라인들(예를 들어, 저장 위치들)을 각각 포함하는 복수의 세트들을 가진 데이터 어레이를 포함한다. 캐시 메모리는 또한 통상적으로 캐시 메모리의 복수의 캐시 라인들에 대응하는 드라이버를 각각 포함하는 복수의 웨이(way)들로 구성된다. 캐시 메모리에 저장된 데이터에 액세스하기 위한 명령에 응답하여, 복수의 웨이들의 드라이버들 모두는 데이터 어레이의 특정 세트의 웨이들을 멀티플렉서로 구동시키기 위하여 인에이블 또는 활성화된다.
드라이버들 모두가 인에이블되는 것과 병렬로, 데이터 어레이 내의 특정 캐시 라인을 식별하기 위하여 태그 비교 동작이 수행된다. 태그 비교 동작의 결과에 기초하여, 하나의 웨이로부터 제공된 데이터가 상기 멀티플렉서에 의해 출력으로서 선택된다. 상기 액세스 어드레스에 상응하는 하나의 캐시 라인으로부터의 데이터가 결과로서 출력된다는 것을 고려할 때, 액세스 어드레스에 상응하는 세트에 대한 모든 웨이들을 구동시키고 태그 비교 및 데이터 출력을 수행하는 것은 비효율적으로 전력을 소모하는 결과를 초래한다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은, 효율적인 웨이 예상을 수행하는 캐시 메모리 장치를 제공하는 것이다.
또한 본 발명의 일 목적은, 효율적인 웨이 예상을 수행하는 캐시 메모리 장치를 포함하는 시스템을 제공하는 것이다.
또한 본 발명의 일 목적은, 효율적인 웨이 예상을 수행하는 캐시 메모리 장치의 동작 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 캐시 메모리 장치는 캐시 회로 및 웨이 예상 회로를 포함한다. 캐시 회로는, 복수의 세트들에 각각 상응하는 복수의 캐시 라인들을 각각 포함하는 복수의 웨이들을 포함하고, 액세스 어드레스에 상응하는 타겟 데이터가 상기 복수의 캐시 라인들에 저장되어 있는지 여부를 나타내는 캐시 적중 신호를 발생하고, 웨이 예상 모드에서 상기 복수의 웨이들 중에서 하나 이상의 후보 웨이들을 나타내는 후보 웨이 신호에 기초하여 상기 후보 웨이들에 대해 우선적으로 현재의 캐시 액세스 동작을 수행한다. 웨이 예상 회로는 이전에 수행된 복수의 캐시 액세스 동작들 동안 제공되는 상기 캐시 적중 신호에 기초하여 상기 복수의 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 캐시 적중 결과 및 상기 후보 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 웨이 예상 적중 결과를 누적한 누적 정보를 저장하고, 상기 웨이 예상 모드에서 상기 누적 정보에 기초하여 상기 현재의 캐시 액세스 동작을 위한 상기 후보 웨이들을 결정하여 상기 후보 웨이 신호를 발생한다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 시스템은, 하나 이상의 프로세서들, 상기 하나 이상의 프로세서들에서 사용되는 데이터를 저장하는 메인 메모리 장치 및 상기 메인 메모리 장치에 저장된 데이터의 일부를 저장하고 상기 하나 이상의 프로세서들에 의해 상기 메인 메모리보다 먼저 액세스되는 캐시 메모리 장치를 포함한다. 상기 캐시 메모리 장치는 전술한 바와 같은 캐시 회로 및 웨이 예상 회로를 포함한다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 복수의 세트들에 각각 상응하는 복수의 캐시 라인들을 각각 포함하는 복수의 웨이들을 포함하는 캐시 메모리 장치의 동작 방법은, 액세스 어드레스에 상응하는 타겟 데이터가 상기 복수의 캐시 라인들에 저장되어 있는지 여부를 나타내는 캐시 적중 신호를 발생하는 단계, 이전에 수행된 복수의 캐시 액세스 동작들 동안 제공되는 상기 캐시 적중 신호에 기초하여 상기 복수의 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 캐시 적중 결과 및 후보 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 웨이 예상 적중 결과를 누적한 누적 정보를 저장하는 단계, 웨이 예상 모드에서 상기 누적 정보에 기초하여 현재의 캐시 액세스 동작을 위한 상기 후보 웨이들을 결정하여 후보 웨이 신호를 발생하는 단계 및 상기 웨이 예상 모드에서 상기 복수의 웨이들 중에서 하나 이상의 후보 웨이들을 나타내는 상기 후보 웨이 신호에 기초하여 상기 후보 웨이들에 대해 우선적으로 상기 현재의 캐시 액세스 동작을 수행하는 단계를 포함한다.
본 발명의 실시예들에 따른 캐시 메모리 장치 및 캐시 메모리 장치의 동작 방법은, 캐시 적중 결과 및 웨이 예상 적중 결과를 누적한 누적 정보에 기초하여 우선적으로 액세스되는 후보 웨이들을 정확하게 예상하고 결정함으로써 캐시 메모리 장치 및 상기 캐시 메모리 장치를 포함하는 시스템의 소모 전력을 감소할 수 있다. 또한, 본 발명의 실시예들에 따른 캐시 메모리 장치 및 캐시 메모리 장치의 동작 방법은, 재사용 가능성이 높은 보호 데이터에 대한 쉴드 정보를 통하여 캐시 적중 비율 및 웨이 적중 비율을 증가함으로써 캐시 메모리 장치 및 상기 캐시 메모리 장치를 포함하는 시스템의 소모 전력을 감소하고 성능을 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 캐시 메모리 장치를 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 캐시 메모리 장치의 동작 방법을 나타내는 순서도이다.
도 3은 본 발명의 실시예들에 따른 시스템의 계층적 캐시 구조를 나타내는 도면이다.
도 4는 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 캐시 회로의 일 실시예를 나타내는 도면이다.
도 5는 본 따른 캐시 메모리 장치에 포함되는 웨이 예상 회로의 일 실시예를 나타내는 도면이다.
도 6은 본 발명의 실시예들에 따른 캐시 메모리 장치의 캐시 액세스 동작의 일 실시예를 나타내는 순서도이다.
도 7은 본 발명의 실시예들에 따른 캐시 메모리 장치의 프라이머리 캐시 액세스 동작을 나타내는 도면이다.
도 8은 본 발명의 실시예들에 따른 캐시 메모리 장치의 세컨더리 캐시 액세스 동작을 나타내는 도면이다.
도 9는 본 발명의 실시예들에 따른 캐시 메모리 장치의 노말 캐시 액세스 동작을 나타내는 도면이다.
도 10은 본 발명의 실시예들에 따른 캐시 메모리 장치의 진단 비트 쌍을 설명하기 위한 도면이다.
도 11은 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 감별 진단 레지스터의 일 실시예를 나타내는 도면이다.
도 12는 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 웨이 랭크 버퍼의 일 실시예를 나타내는 도면이다.
도 13은 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 보조 추론 버퍼의 일 실시예를 나타내는 도면이다.
도 14는 본 발명의 실시예들에 따른 캐시 메모리 장치에 저장되는 캐시 점유 정보를 나타내는 도면이다.
도 15는 본 발명의 실시예들에 따른 캐시 메모리 장치의 유효 재참조 인터벌을 나타내는 도면이다.
도 16은 본 발명의 실시예들에 따른 캐시 메모리 장치에 저장되는 웨이 예상 윈도우들을 나타내는 도면이다.
도 17은 본 발명의 실시예들에 따른 캐시 메모리 장치의 우선순위 갱신 동작을 나타내는 도면이다.
도 18은 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 감별 진단 레지스터의 일 실시예를 나타내는 도면이다.
도 19는 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 웨이 랭크 버퍼의 일 실시예를 나타내는 도면이다.
도 20은 본 발명의 실시예들에 따른 캐시 메모리 장치의 우선순위 갱신 동작을 나타내는 도면이다.
도 21은 본 발명의 실시예들에 따른 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 캐시 메모리 장치를 나타내는 블록도이다.
도 1을 참조하면, 캐시 메모리 장치(cache memory device)(10)는 캐시 회로(cache circuit)(20) 및 웨이 예상 회로(way prediction circuit)(30)를 포함할 수 있다.
캐시 회로(20)는 데이터 및 태그를 저장하는 캐시 메모리(CMEM)(50) 및 캐시 메모리(50)의 전반적인 동작을 제어하는 캐시 컨트롤러(CCON)(40)를 포함하여 구현될 수 있다.
캐시 회로(20)는 현재의 캐시 액세스 동작과 관련된 프로세서 또는 프로세서 코어를 나타내는 프로세서 식별자(PID), 현재의 캐시 액세스 동작과 관련된 액세스 어드레스(ADD) 및 웨이 예상 회로(30)로부터 제공되는 제어 신호들(또는 정보들)(SPM, SCW, SHD)을 수신할 수 있다. 캐시 회로(20)는 프로세서 식별자(PID), 액세스 어드레스(ADD) 및 제어 신호들(SPM, SCW, SHD)에 기초하여 액세스 어드레스(ADD)에 상응하는 타겟 데이터(SDT)가 캐시 메모리(50)에 저장되어 있는지 여부를 나타내는 캐시 적중 신호(CHT)를 발생할 수 있다.
캐시 회로(20)는 액세스 어드레스(ADD)에 상응하는 타겟 데이터(SDT)가 캐시 메모리(50)에 저장되어 있는 경우 캐시 메모리(50)로부터 타겟 데이터(SDT)를 독출하여 제공할 수 있다. 한편, 캐시 회로(20)는 액세스 어드레스(ADD)에 상응하는 타겟 데이터(SDT)가 캐시 메모리(50)에 저장되어 있지 않은 경우, 액세스 어드레스(ADD)에 상응하는 새로운 데이터(NDT)를 캐시 메모리(50)에 저장할 수 있다.
캐시 메모리(50)는 복수의 세트들에 각각 상응하는 복수의 캐시 라인들을 각각 포함하는 복수의 웨이들을 포함하는 세트-연관 캐시(set-associative cache) 구조를 가질 수 있다. 상기 세트-연관 캐시 구조에 대해서는 도 4를 참조하여 후술한다.
웨이 예상 회로(30)는 프로세서 식별자(PID), 액세스 어드레스(ADD) 및 캐시 적중 신호(CHT)를 수신하고, 캐시 회로(20)의 제어를 위한 신호들 또는 정보들(SPM, SCW, SHD)를 발생할 수 있다.
도 2는 본 발명의 실시예들에 따른 캐시 메모리 장치의 동작 방법을 나타내는 순서도이다. 도 2에는 복수의 세트들에 각각 상응하는 복수의 캐시 라인들을 각각 포함하는 복수의 웨이들로 구성되는 세트-연관 캐시 구조를 갖는 캐시 메모리 장치의 동작 방법이 도시되어 있다.
도 1 및 2를 참조하면, 캐시 회로(20)는 액세스 어드레스(ADD)에 상응하는 타겟 데이터(SDT)가 복수의 캐시 라인들에 저장되어 있는지 여부를 나타내는 캐시 적중 신호(CHT)를 발생할 수 있다(S100). 캐시 적중 신호(CHT)의 발생에 대해서는 도 4를 참조하여 후술한다.
웨이 예상 회로(30)는 이전에 수행된 복수의 캐시 액세스 동작들 동안 제공되는 캐시 적중 신호(CHT)에 기초하여 복수의 웨이들 중 하나에 타겟 데이터(SDT)가 저장되어 있는지 여부를 나타내는 캐시 적중 결과 및 후보 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 웨이 예상 적중 결과를 누적한 누적 정보(ACCI)를 저장할 수 있다(S200). 일 실시예에서, 웨이 예상 회로(30)는 누적 정보(ACCI)를 진단 비트 쌍의 형태로 저장할 수 있다. 각각의 진단 비트 쌍은 캐시 적중 결과를 나타내는 캐시 적중 비트 및 웨이 예상 적중 결과를 나타내는 웨이 예상 적중 비트를 포함할 수 있다. 상기 진단 비트 쌍들의 발생 및 저장에 대해서는 도 10 및 11을 참조하여 후술한다.
웨이 예상 회로(30)는 웨이 예상 모드에서 누적 정보(ACCI)에 기초하여 상기 복수의 웨이들 중에서 현재의 캐시 액세스 동작을 위한 하나 이상의 후보 웨이들을 결정하여 후보 웨이 신호(SCW)를 발생할 수 있다(S300). 일 실시예에서, 웨이 예상 회로(30)는 누적 정보(ACCI)에 기초하여 상기 웨이 예상 모드의 인에이블 또는 디스에이블을 나타내는 예상 모드 신호(SPM)를 신호를 발생하고 예상 모드 신호(SPM)를 캐시 회로(20)에 제공할 수 있다.
캐시 회로(20)는 상기 웨이 예상 모드에서 상기 후보 웨이들을 나타내는 후보 웨이 신호(SCW)에 기초하여 상기 후보 웨이들에 대해 우선적으로 상기 현재의 캐시 액세스 동작을 수행할 수 있다(S400). 여기서, 후보 웨이들에 대해 우선적으로 현재의 캐시 액세스 동작을 수행한다는 것은, 상기 후보 웨이들에 대한 캐시 액세스 동작을 먼저 수행하고, 상기 후보 웨이들에 타겟 데이터(SDT)가 저장되어 있지 않은 경우에만 다른 웨이들에 대한 캐시 액세스 동작을 수행함을 나타낸다. 후보 웨이들에 대한 우선적인 캐시 액세스 동작에 대해서는 도 6 내지 9를 참조하여 후술한다.
이와 같이, 본 발명의 실시예들에 따른 캐시 메모리 장치 및 캐시 메모리 장치의 동작 방법은, 캐시 적중 결과 및 웨이 예상 적중 결과를 누적한 누적 정보(ACCI)에 기초하여 우선적으로 액세스되는 후보 웨이들을 정확하게 예상하고 결정함으로써 캐시 메모리 장치 및 상기 캐시 메모리 장치를 포함하는 시스템의 소모 전력을 감소할 수 있다.
일 실시예에서, 웨이 예상 회로(30)는 웨이 예상 회로(30)는 캐시 회로(20)에 새로운 데이터(NDT)가 기입됨으로써 유효 재참조 인터벌(effective re-reference interval) 동안에 캐시 회로(20)의 복수의 캐시 라인들로부터 삭제되는 복수의 축출 데이터들에 관한 축출 정보를 저장할 수 있다. 웨이 예상 회로(30)는 상기 축출 정보에 기초하여 상기 복수의 축출 데이터들 중 상기 유효 재참조 인터벌 내에서 캐시 메모리(50)의 캐시 라인에 다시 기입되는 보호 데이터를 나타내는 쉴드 정보(SHD를 발생하여 쉴드 정보(SHD)를 캐시 회로(20)에 제공할 수 있다. 캐시 회로(SHD)는 쉴드 정보(SHD)에 기초하여 상기 보호 데이터가 캐시 메모리(50)의 캐시 라인에서 삭제되는 것을 적어도 한번 방지할 수 있다.
이와 같이, 본 발명의 실시예들에 따른 캐시 메모리 장치 및 캐시 메모리 장치의 동작 방법은, 재사용 가능성이 높은 보호 데이터에 대한 쉴드 정보(SHD)를 통하여 캐시 적중 비율 및 웨이 적중 비율을 증가함으로써 캐시 메모리 장치 및 상기 캐시 메모리 장치를 포함하는 시스템의 소모 전력을 감소하고 성능을 향상시킬 수 있다.
도 3은 본 발명의 실시예들에 따른 시스템의 계층적 캐시 구조를 나타내는 도면이다.
도 3을 참조하면, 시스템(500)은 복수의 프로세서들(PRC0~PRCn)(511, 512, 513), 복수의 캐시 메모리 장치들(L1_0~L1_n, L2, L3)(521, 522, 523, 530, 540) 및 메인 메모리(MEM)(550)를 포함할 수 있다. 멀티-코어 시스템의 경우, 프로세서들(511, 512, 513)은 프로세서 코어들에 해당할 수 있다.
프로세서들 및 적어도 일부의 캐시 메모리 장치들은 프로세싱 유닛을 형성하고 상기 프로세싱 유닛은 독립형 장치로서 또는 시스템-온-칩(SOC)의 일부로서 구현될 수 있다. 예를 들어, 상기 프로세싱 유닛은 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 가속 처리 유닛(APU), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 등을 포함할 수 있다.
메인 메모리(550)는 복수의 프로세서들(511, 512, 513)에서 사용되는 데이터를 저장할 수 있다. 여기서 데이터라 함은 프로세서들(511, 512, 513)에 의해 실행되는 명령들(instructions)을 포함하는 의미이다. 또한, 시스템(500)은 메인 메모리(550)에 저장된 데이터의 복사본을 캐시에 저장함으로써 메인 메모리(550)에 저장된 데이터에 대한 액세스 레이트를 높이도록 사용되는 계층적(또는 멀티-레벨) 캐시 구조를 포함할 수 있다. 도 3에는 예시적인 계층적 캐시 구조를 도시하고 있으며, 본 발명의 실시예들에 따른 시스템은 더 많거나 적은 개수의 캐시 메모리 장치, 더 많거나 적은 캐시 계층, 또는 캐시의 다른 계층적 배열을 포함할 수 있다.
계층적 캐시 구조는 가장 낮은 레벨, 즉 제1 레벨(L1)의 캐시 메모리 장치들(521, 522, 523) 및 그보다 높은 레벨, 즉 제2 레벨(L2)의 캐시 메모리 장치(530), 제3 레벨(L3)의 캐시 메모리 장치(540) 등을 포함할 수 있다. 제1 레벨(L1)의 캐시 메모리 장치들(521, 522, 523)은 복수의 프로세서들(511, 512, 513)의 각각에 의해 전속적으로 액세스되는 프라이빗(private) 캐시 메모리 장치들일 수 있다. 제2 레벨(L2)의 캐시 메모리 장치(530) 및 제3 레벨(L3) 캐시 메모리 장치(540)는 복수의 프로세서들(511, 512, 513)에 의해 공통으로 액세스되는 쉐어드(shared) 캐시 메모리 장치일 수 있다.
L3 캐시 메모리 장치(540)는 메인 메모리(550)에 저장된 데이터의 복사본을 저장하는 복수의 캐시 라인들을 포함할 수 있다. 캐시 라인들은 인덱스와 웨이의 조합에 의해 식별될 수 있다. L3 캐시 메모리 장치(540)는 메인 메모리(550)보다 프로세서들(511, 512, 513)과 데이터가 더욱 신속하게 또는 더욱 짧은 레이턴시로 교환되도록 메인 메모리(550)보다 고속의 메모리 요소를 사용하여 구현될 수 있고, 또한, 메인 메모리(550)보다 프로세서들(511, 512, 513)에 더 가깝게 논리적으로 또는 물리적으로 배치될 수 있다.
L2 캐시 메모리 장치(530)는 L3 캐시 메모리 장치(540)에 저장된 데이터의 복사본을 저장하는 복수의 캐시 라인들을 포함할 수 있다. 캐시 라인들은 인덱스와 웨이의 조합에 의해 식별될 수 있다. L2 캐시 메모리 장치(530)는 L3 캐시 메모리 장치(540)보다 프로세서들(511, 512, 513)과 데이터가 더욱 신속하게 또는 더욱 짧은 레이턴시로 교환되도록 L3 캐시 메모리 장치(540)보다 고속의 메모리 요소를 사용하여 구현될 수 있고, 또한, L3 캐시 메모리 장치(540)보다 프로세서들(511, 512, 513)에 더 가깝게 논리적으로 또는 물리적으로 배치될 수 있다.
L1 캐시 메모리 장치들(521, 522, 523)의 각각은 프로세서들(511, 512, 513) 중 그 대응하는 프로세서에 의해 사용되는 데이터의 복사본을 저장할 수 있다. L1 캐시 메모리 장치들(521, 522, 523)의 각각은 L2 캐시 메모리 장치(530)에 저장된 데이터의 복사본을 저장하는 복수의 캐시 라인들을 포함할 수 있다. 캐시 라인들은 인덱스와 웨이의 조합에 의해 식별될 수 있다. L1 캐시 메모리 장치들(521, 522, 523)의 각각은 L2 캐시 메모리 장치(530)보다 프로세서들(511, 512, 513)과 데이터가 더욱 신속하게 또는 더욱 짧은 레이턴시로 교환되도록 L2 캐시 메모리 장치(530)보다 고속의 메모리 요소를 사용하여 구현될 수 있고, 또한, L2 캐시 메모리 장치(530)보다 프로세서들(511, 512, 513)에 더 가깝게 논리적으로 또는 물리적으로 배치될 수 있다.
캐시 액세스 동작시, 프로세서들(511, 512, 513)의 각각은, 메모리 액세스 요청을 L1 캐시 메모리 장치들(521, 522, 523) 중 상응하는 L1 캐시 메모리 장치에 전송하여 L1 캐시 메모리 장치에 저장된 데이터의 복사본에 대한 액세스를 요청한다. 예를 들어, 메모리 액세스 요청 내의 어드레스 또는 어드레스의 일부와 상응하는 L1 캐시 메모리 장치 내의 캐시 라인에 연관된 캐시 태그 간의 매칭에 의해, 요청된 데이터가 상응하는 L1 캐시 메모리 장치에 저장되어 있다면, 각각의 프로세서에는 캐시 라인에 대한 액세스가 주어진다. 이것을 통상적으로 캐시 히트(cache hit)라고 한다. 통상적으로 캐시 미스(cache miss)라고 하는, 요청된 정보가 대응하는 L1 캐시 메모리 장치의 임의의 캐시 라인에 저장되어 있지 않으면, 메모리 액세스 요청은 L2 캐시 메모리 장치(530)로 포워딩된다. 메모리 액세스 요청이 L2 캐시 메모리 장치(530)에서 히트하면, 프로세서는 L2 캐시 메모리 장치(530)의 캐시 라인에 대한 액세스를 제공받는다. 메모리 액세스 요청이 L2 캐시 메모리 장치(530)에서 미스되면, 메모리 액세스 요청은 다시 L3 캐시 메모리 장치(540)로 포워딩된다. 이러한 프로세스는, 캐시 히트가 발생하거나 요청된 정보가 메인 메모리(550)에서 액세스될 때까지 계층적 캐시 구조의 점진적으로 높은 레벨에서 반복된다.
L3 캐시 메모리 장치(540), L2 캐시 메모리 장치(530), 또는 L1 캐시 메모리 장치들(521, 522, 523) 내의 캐시 라인들에 저장된 데이터는 캐시 미스에 응답하여 교체될 수 있다. 예를 들어, 프로세서(511)의 메모리 액세스 요청이 상응하는 L1 캐시 메모리 장치(521)에서 미스되고 L2 캐시 메모리 장치(530)에서 히트되면, L2 캐시 메모리 장치(530)에 저장된 데이터는, L1 캐시 메모리 장치(521)의 캐시 라인에 복사되어, 상응하는 프로세서(511)에 의한 후속 메모리 액세스 요청을 위해 이용될 수 있다. 이어서, 요청 프로세서(511)는 상응하는 L1 캐시 메모리 장치(521)의 캐시 라인에 액세스한다. 캐시 라인들 중 하나에 미리 저장된 정보는, 모든 캐시 라인들이 현재 정보를 저장하고 있다면 새로운 정보를 위한 공간을 만들도록 축출된다. 캐시 라인들은 교체 정책(replacement policy)에 기초하여 축출되도록 선택된다. 예를 들어, LRU(least recently used) 교체 정책 또는 RRIP(re-reference interval prediction) 교체 정책을 사용할 수 있다.
도 3에 도시된 계층적 캐시 구조는, 도 1 및 2를 참조하여 설명한 본 발명의 실시예들에 따른 동작 방법을 수행하는 적어도 하나의 캐시 메모리 장치를 포함할 수 있다. 일 실시예에서, 도 11 내지 17을 참조하여 후술하는 바와 같이, 본 발명의 실시예들에 따른 캐시 메모리 장치는 쉐어드 캐시 메모리 장치들(530, 540) 중 적어도 하나에 적용될 수 있다. 다른 실시예에서, 도 18 내지 20을 참조하여 후술하는 바와 같이, 본 발명의 실시예들에 따른 캐시 메모리 장치는 프라이빗 캐시 메모리 장치들(521, 522, 523) 중 적어도 하나에 적용될 수 있다.
도 4는 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 캐시 회로의 일 실시예를 나타내는 도면이다. 도 4에는 도시의 편의상 본 발명의 실시예들에 따른 웨이 예상 정책 및 이에 기초한 캐시 메모리 장치의 동작 방법을 설명하기 위한 구성요소들만이 도시되어 있다.
도 4를 참조하면, 캐시 회로(20)는 캐시 메모리(50), 태그 비교부(41), 데이터 출력부(MUX)(42), 업데이트 제어부(UCON)(43) 및 캐시 적중 판정부(44)를 포함할 수 있다. 캐시 메모리(50) 이외의 구성 요소들(41~44)은 도 1의 캐시 컨트롤러(40)에 포함될 수 있다.
캐시 메모리(50)는 태그 메모리(TARR)와 데이터 메모리(DARR)를 포함할 수 있다. 데이터 메모리(DARR)는 도 2의 메인 메모리(550)에 저장되어 있는 데이터의 일부, 즉 캐시 데이터들을 저장한다. 즉, 캐시 데이터는 메인 메모리(550)에 저장되어 있는 메인 데이터들 중 어느 하나와 동일할 수 있다. 태그 메모리(TARR)는 데이터 메모리(DARR)에 저장된 캐시 데이터들에 각각 대응하는 태그 데이터들을 저장할 수 있다. 태그 데이터는 캐시 데이터가 저장되어 있는 메인 메모리(550)의 실제 어드레스를 나타낼 수 있다.
도 3에는 태그 메모리(TARR)와 데이터 메모리(DARR)의 세트-연관 캐시 구조가 도시되어 있다. 태그 메모리(TARR)와 데이터 메모리(DARR)는 액세스 어드레스(ADD) 중 세트 어드레스(SADD)에 의해 선택될 수 있는 복수의 세트들을 포함할 수 있으며, 복수의 세트들에 각각 상응하는 복수의 캐시 라인들을 각각 포함하는 복수의 웨이들을 포함할 수 있다. 태그 메모리(TARR)와 데이터 메모리(DARR)의 행(row)은 세트를 나타내며, 열(column)은 웨이를 나타낼 수 있다. 즉, 하나의 세트는 태그 메모리(TARR)와 데이터 메모리(DARR)의 동일한 행에 저장될 수 있다.
도 4에는 도시 및 설명의 편의상 0에서 m까지의 인덱스로 지정된 m+1개의 세트들 및 4개의 웨이들(WY0~WY3)로 구현된 4-웨이 세트-연관 캐시 구조의 예가 도시되어 있다. 도 4에 도시된 바와 같이, 캐시 메모리(50)가 4-웨이 세트-연관 캐시 구조를 갖는 경우, 하나의 세트는 제1 내지 제4 캐시 데이터들(DT0~DT3)과 제1 내지 제4 캐시 데이터들(DT0~DT3)의 각각의 어드레스를 나타내는 제1 내지 제4 태그 데이터들(TG0~TG3)을 저장할 수 있다.
또한, 제1 내지 제4 태그 데이터들(TG0~TG3)은 태그 메모리(TARR)의 동일한 로우에 저장될 수 있다. 이때, 제1 태그 데이터(TG0)는 제1 웨이(WY0)에 대응되며, 제2 태그 데이터(TG1)는 제2 웨이(WY1)에 대응되며, 제3 태그 데이터(TG2)는 제3 웨이(WY2)에 대응되며, 제4 태그 데이터(TG3)는 제4 웨이(WY3)에 대응될 수 있다. 제1 내지 제4 태그 데이터들(TG0~TG3)에 각각 대응하는 제1 내지 제4 캐시 데이터들(DT0~DT3)도 태그 데이터들(TG0~TG3)과 동일한 방식으로 데이터 메모리(DARR)에 저장될 수 있다.
캐시 회로(20)는 외부로부터 타겟 데이터에 대응하는 액세스 어드레스(ADD)를 수신할 수 있다. 이때, 액세스 어드레스(ADD)는 도 4에 도시된 바와 같이, 태그 어드레스(TADD)와 세트 어드레스(SADD)를 포함할 수 있다. 세트 어드레스(SADD)는 캐시 메모리의 행(row) 어드레스를 나타내는 데이터이다. 즉, 세트 어드레스(SADD)는 캐시 메모리(50)에 포함되는 복수의 세트들 중 어느 하나의 세트를 가리킨다.
태그 비교부(41) 및 캐시 적중 판정부(44)는 외부(예를 들어, 프로세서 또는 프로세서 코어)로부터 데이터 요청이 있는 경우, 요청된 타겟 데이터가 캐시 메모리(50)에 저장되어 있는지 여부를 판단할 수 있다. 즉, 캐시 히트인지 캐시 미스인지 여부를 판단한다.
태그 비교부(41)는 세트 어드레스(SADD)가 가리키는 세트에 포함되는 태그 데이터들(TG0~TG3) 각각을 태그 어드레스(TADD)와 일치하는지 여부를 비교하는 비교기들(COM0~COM3)을 포함할 수 있다. 비교기들(COM0~COM3)은 태그 데이터들(TG0~TG3)의 각각이 태그 어드레스(TADD)와 일치하는 경우 웨이 적중 신호들(HT0~HT3) 중 상응하는 하나의 웨이 적중 신호를 활성화할 수 있다. 캐시 적중 판정부(44)는 웨이 적중 신호들(HT0~HT3) 중 하나가 활성화되는 경우 캐시 적중 신호(CHT)를 활성화하여 캐시 히트임을 나타낼 수 있다. 즉, 캐시 히트는 외부로부터 요청된 타겟 데이터가 데이터 메모리(DARR) 내에 존재하고 있음을 나타낸다.
캐시 적중 신호(CHT)가 활성화되어 캐시 히트를 나타내는 경우, 태그 어드레스(TADD)와 일치하는 태그 데이터에 대응하는 캐시 데이터가 외부로 출력될 수 있다. 태그 비교부(41)는 데이터 출력부(42)로 웨이 적중 신호들(HT0~HT3)을 출력할 수 있으며, 데이터 출력부(42)는 데이터 메모리(DARR)로부터 출력되는 캐시 데이터들(DT0~DT3)를 중에서 활성화된 웨이 적중 신호에 상응하는 캐시 데이터를 선택하여 타겟 데이터(SDT)로서 출력할 수 있다. 반면에, 캐시 미스인 경우, 캐시 적중 판정부(44)는 상위 레벨의 캐시 메모리 장치 또는 메인 메모리로 캐시 미스를 나타내도록 비활성화된 캐시 적중 신호(CHT)를 출력하고, 타겟 데이터를 요청할 수 있다.
업데이트 제어부(43)는 캐시 적중 신호(CHT)가 캐시 미스를 나타내는 경우, 캐시 교체 정책에 의해 결정된 하나의 캐시 라인에 저장된 축출 데이터를 삭제하고 하위 레벨의 캐시 메모리 장치 또는 메인 메모리로부터 수신한 액세스 어드레스(ADD)에 상응하는 새로운 데이터(NDT)를 삭제된 캐시 라인에 저장할 수 있다.
도 5는 본 따른 캐시 메모리 장치에 포함되는 웨이 예상 회로의 일 실시예를 나타내는 도면이다.
도 5를 참조하면, 웨이 예상 회로(30)는 컨트롤 로직 회로(control logic circuit)(31), 감별 진단 레지스터(differential diagnosis register)(DDR)(32), 웨이 랭크 버퍼(way rank buffer)(WRB)(33) 및 보조 추론 버퍼(Auxiliary inference buffer)(AIB)(34)를 포함할 수 있다.
감별 진단 레지스터(32)는 복수의 프로세서들의 각각 및 복수의 세트들의 각각에 대하여, 캐시 적중 결과를 나타내는 캐시 적중 비트 및 웨이 예상 적중 결과를 나타내는 웨이 예상 적중 비트를 각각 포함하는 복수의 진단 비트 쌍들을 이전에 수행된 복수의 캐시 액세스 동작들 동안 누적하여 누적 정보로서 저장한다. 감별 진단 레지스터(32)에 저장되는 복수의 진단 비트 쌍들에 대해서는 도 10 및 11을 참조하여 후술한다.
웨이 랭크 버퍼(33)는 복수의 프로세서들의 각각 및 복수의 세트들의 각각에 대하여, 복수의 웨이들이 후보 웨이들에 포함되는 순서를 각각 나타내는 복수의 우선 순위 정보들을 저장한다. 웨이 랭크 버퍼(33)에 저장되는 우선 순위 정보들에 대해서는 도 12를 참조하여 후술한다.
보조 추론 버퍼(34)는 캐시 회로에 새로운 데이터가 기입됨으로써 유효 재참조 인터벌 동안에 상기 복수의 캐시 라인들로부터 삭제되는 복수의 축출 데이터들에 관한 축출 정보를 저장한다. 보조 추론 버퍼(34)에 저장되는 축출 정보에 대해서는 도 13을 참조하여 후술한다.
컨트롤 로직 회로(31)는 프로세서 식별자(PID), 액세스 어드레스(ADD) 및 캐시 적중 신호(CHT)에 기초하여 감별 진단 레지스터(32)에 저장되는 진단 비트 쌍들, 웨이 랭크 버퍼(33)에 저장되는 우선 순위 정보들 및 보조 추론 버퍼(34)에 저장되는 축출 정보를 관리할 수 있다. 일 실시예에서, 컨트롤 로직 회로(31)는 특수 기능 레지스터(SFR, special function register)로 구현될 수 있다.
컨트롤 로직 회로(31)는 감별 진단 레지스터(32)에 저장된 상기 복수의 진단 비트 쌍들에 기초하여 현재의 캐시 액세스 동작에 대한 프로세서 및 세트에 상응하는 후보 웨이 신호(SCW)를 발생할 수 있다.
일 실시예에서, 컨트롤 로직 회로(31)는 복수의 프로세서들 및 복수의 세트들에 각각 상응하는 후보 웨이들의 개수를 나타내는 복수의 웨이 예상 윈도우들(WPW0~WPWn)을 저장할 수 있다. 컨트롤 로직 회로(31)는 복수의 웨이 예상 윈도우들(WPW0~WPWn) 및 웨이 랭크 버퍼(33)에 저장된 복수의 우선 순위 정보들에 기초하여 현재의 캐시 액세스 동작에 대한 프로세서 및 세트에 상응하는 후보 웨이들을 결정할 수 있다.
컨트롤 로직 회로(31)는 감별 진단 레지스터(32)에 저장된 상기 복수의 진단 비트 쌍들에 기초하여 상기 복수의 우선 순위 정보들을 각각의 캐시 액세스 동작마다 실시간으로 갱신할 수 있다. 또한 컨트롤 로직 회로(31)는 감별 진단 레지스터(32)에 저장된 상기 복수의 진단 비트 쌍들에 기초하여 복수의 웨이 예상 윈도우들(WPW0~WPWn)을 각각의 액세스 동작마다 실시간으로 갱신할 수 있다.
일 실시예에서, 컨트롤 로직 회로(31)는 캐시 회로의 복수의 캐시 라인들에 저장된 데이터들에 각각 상응하는 프로세서들의 식별자들을 포함하는 캐시 점유 정보(COI)를 저장할 수 있다. 컨트롤 로직 회로(31)는 캐시 점유 정보(COI) 및 보조 추론 버퍼(34)에 저장된 축출 정보에 기초하여 상기 복수의 축출 데이터들 중 상기 유효 재참조 인터벌 내에서 캐시 회로의 캐시 라인에 다시 기입되는 보호 데이터를 나타내는 쉴드 정보(SHD)를 발생하여 상기 캐시 회로에 제공할 수 있다. 캐시 회로는 쉴드 정보(SHD)에 기초하여 상기 보호 데이터가 상기 캐시 라인에서 삭제되는 것을 적어도 한번 방지할 수 있다.
일 실시예에서, 컨트롤 로직 회로(31)는 감별 진단 레지스터(32)에 저장된 진단 비트 쌍들을 포함하는 누적 정보에 기초하여 웨이 예상 모드의 인에이블 또는 디스에이블을 나타내는 예상 모드 신호(SPM)를 발생하고 예상 모드 신호(SPM)를 상기 캐시 회로에 제공할 수 있다. 캐시 회로는 웨이 예상 모드에서 복수의 웨이들 중에서 하나 이상의 후보 웨이들을 나타내는 후보 웨이 신호(SCW)에 기초하여 상기 후보 웨이들에 대해 우선적으로 현재의 캐시 액세스 동작을 수행할 수 있다.
도 6은 본 발명의 실시예들에 따른 캐시 메모리 장치의 캐시 액세스 동작의 일 실시예를 나타내는 순서도이다.
도 6에는 설명의 편의상 예상 모드 신호(SPM)가 논리 하이 레벨(H)일 때 웨이 예상 모드를 나타내고 캐시 적중 신호(CHT)가 논리 하이 레벨(H)일 때 캐시 히트를 나타내는 일 예가 도시되어 있으나, 이러한 신호들의 논리 레벨은 다양하게 결정될 수 있다.
도 1 및 6을 참조하면, 웨이 예상 회로(30)로부터 제공되는 예상 모드 신호(SPM)가 웨이 예상 모드를 나타내는 경우(S11: YES), 캐시 회로(20)는 후보 웨이 신호(SCW)가 후보 웨이를 불포함하는지를 판별한다(S12). 후보 웨이 신호(SCW)가 하나 이상의 후보 웨이들을 포함하는 경우(S12: NO), 캐시 회로(20)는 도 7을 참조하여 후술하는 바와 같은 상기 후보 웨이들에 대한 프라이머리 캐시 액세스 동작(PCAO)을 수행한다(S13). 프라이머리 캐시 액세스 동작(PCAO)에 대한 캐시 적중 신호(CHT)가 캐시 히트를 나타내는 경우(S14: YES), 웨이 예상 회로(30)는 캐시 히트 및 웨이 예상 히트를 나타내는 진단 비트 쌍의 값(예를 들어, 11)을 누적 정보(ACCI)로서 저장한다(S21).
프라이머리 캐시 액세스 동작(PCAO)에 대한 캐시 적중 신호(CHT)가 캐시 미스를 나타내는 경우(S14: NO), 캐시 회로(20)는 도 8을 참조하여 후술하는 바와 같은 상기 후보 웨이들을 제외한 나머지 웨이들에 대한 세컨더리 캐시 액세스 동작(SCAO)을 수행한다(S15). 세컨더리 캐시 액세스 동작(SCAO)에 대한 캐시 적중 신호(CHT)가 캐시 히트를 나타내는 경우(S16: YES), 웨이 예상 회로(30)는 캐시 히트 및 웨이 예상 미스를 나타내는 진단 비트 쌍의 값(예를 들어, 10)을 누적 정보(ACCI)로서 저장한다(S23). 세컨더리 캐시 액세스 동작(SCAO)에 대한 캐시 적중 신호(CHT)가 캐시 미스를 나타내는 경우(S16: NO), 웨이 예상 회로(30)는 캐시 미스를 나타내는 진단 비트 쌍의 값(예를 들어, 00)을 누적 정보(ACCI)로서 저장한다(S22).
예상 모드 신호(SPM)가 웨이 예상 모드를 나타내는 경우(S11: YES) 또는 후보 웨이 신호(SCW)가 후보 웨이를 불포함하는 경우(S12: YES), 캐시 회로(20)는 도 9를 참조하여 후술하는 바와 같은 복수의 웨이들 전체에 대하여 한 번의 노말 캐시 액세스 동작(NCAO)을 수행을 수행한다(S17). 노말 캐시 액세스 동작(NCAO)에 대한 캐시 적중 신호(CHT)가 캐시 히트를 나타내는 경우(S16: YES), 웨이 예상 회로(30)는 캐시 히트를 나타내는 진단 비트 쌍의 값(예를 들어, 10)을 누적 정보(ACCI)로서 저장한다(S23). 노말 캐시 액세스 동작(NCAO)에 대한 캐시 적중 신호(CHT)가 캐시 미스를 나타내는 경우(S16: NO), 웨이 예상 회로(30)는 캐시 미스를 나타내는 진단 비트 쌍의 값(예를 들어, 00)을 누적 정보(ACCI)로서 저장한다(S22).
도 7은 본 발명의 실시예들에 따른 캐시 메모리 장치의 프라이머리 캐시 액세스 동작을 나타내는 도면이고, 도 8은 본 발명의 실시예들에 따른 캐시 메모리 장치의 세컨더리 캐시 액세스 동작을 나타내는 도면이고, 도 9는 본 발명의 실시예들에 따른 캐시 메모리 장치의 노말 캐시 액세스 동작을 나타내는 도면이다.
도 7, 8 및 9에는 도시 및 설명의 편의상 캐시 회로가 제1 내지 제8 웨이들(WY0~WY7)을 포함하는 예가 도시되어 있으나, 웨이들의 개수가 이에 한정되는 것은 아니다. 도 7, 8 및 9에 도시된 출력 회로(50)는 도 4를 참조하여 설명한 바와 같은 태그 비교부(41), 데이터 출력부(42) 및 캐시 적중 판정부(44)를 포함할 수 있다.
도 7 및 8을 참조하면, 예상 모드 신호(SPM)가 논리 하이 레벨(H)로 활성화되어 웨이 예상 모드의 인에이블을 나타내고, 예를 들어, 후보 웨이 신호(SCW)가 제3 웨이(WY2), 제5 웨이(WY4) 및 제6 웨이(WY5)가 후보 웨이들임을 나타낼 수 있다.
도 7에 도시된 바와 같이, 캐시 회로는 후보 웨이들(WY2, WY4, WY5)에 대한 프라이머리 캐시 액세스 동작(PCAO)을 먼저 수행할 수 있다. 즉, 캐시 회로의 캐시 컨트롤러는 제1 내지 제8 웨이들(WY0~WY7)에 각각 상응하는 제1 내지 제8 웨이 인에이블 신호들(EN0~EN7) 중에서 후보 웨이들(WY2, WY4, WY5)에 상응하는 웨이 인에이블 신호들(EN2, EN4, EN5)을 (예를 들어, 논리 하이 레벨(H)로) 활성화하고 후보 웨이들(WY2, WY4, WY5)을 제외한 나머지 웨이들(WY0, WY1, WY3, WY6, WY7)에 상응하는 웨이 인에이블 신호들(EN0, EN1, EN3, EN6, EN7)을 (예를 들어, 논리 로우 레벨(L)로) 비활성화할 수 있다. 결과적으로 후보 웨이들(WY2, WY4, WY5)에 상응하는 태그 데이터들(TG2, TG4, TG5) 및 캐시 데이터들(DT2, DT4, DT5)만이 독출되어 출력 회로(50)로 제공될 수 있다.
프라이머리 캐시 액세스 동작(PCAO)의 결과, 타겟 데이터(SDT)가 후보 웨이들(WY2, WY4, WY5)에 저장되어 있는 경우, 출력 회로(50)는 캐시 히트를 나타내는 캐시 적중 신호(CHT)를 출력하고 타겟 데이터(SDT)를 제공할 수 있다.
프라이머리 캐시 액세스 동작(PCAO)의 결과, 타겟 데이터(SDT)가 후보 웨이들(WY2, WY4, WY5)에 저장되어 있지 않은 경우, 출력 회로(50)는 캐시 미스를 나타내는 캐시 적중 신호(CHT)를 출력하고, 캐시 회로는 세컨더리 캐시 액세스 동작(SCAO)을 수행할 수 있다.
도 8에 도시된 바와 같이, 캐시 회로는 후보 웨이들(WY2, WY4, WY5)을 제외한 나머지 웨이들(WY0, WY1, WY3, WY6, WY7)에 세컨더리 캐시 액세스 동작(SCAO)을 보충적으로 수행할 수 있다. 즉, 캐시 회로의 캐시 컨트롤러는 후보 웨이들(WY2, WY4, WY5)에 상응하는 웨이 인에이블 신호들(EN2, EN4, EN5)을 (예를 들어, 논리 로우 레벨(L)로) 비활성화하고 후보 웨이들(WY2, WY4, WY5)을 제외한 나머지 웨이들(WY0, WY1, WY3, WY6, WY7)에 상응하는 웨이 인에이블 신호들(EN0, EN1, EN3, EN6, EN7)을 (예를 들어, 논리 하이 레벨(H)로) 활성화할 수 있다. 결과적으로 나머지 웨이들(WY0, WY1, WY3, WY6, WY7)에 상응하는 태그 데이터들(TG0, TG1, TG3, TG6, TG7) 및 캐시 데이터들(DT0, DT1, DT3, DT6, DT7)만이 독출되어 출력 회로(50)로 제공될 수 있다.
세컨더리 캐시 액세스 동작(SCAO)의 결과, 타겟 데이터(SDT)가 나머지 웨이들(WY0, WY1, WY3, WY6, WY7)에 저장되어 있는 경우, 출력 회로(50)는 캐시 히트를 나타내는 캐시 적중 신호(CHT)를 출력하고 타겟 데이터(SDT)를 제공할 수 있다.
세컨더리 캐시 액세스 동작(SCAO)의 결과, 타겟 데이터(SDT)가 후보 웨이들(WY2, WY4, WY5)에 저장되어 있지 않은 경우, 출력 회로(50)는 최종적으로 캐시 미스를 나타내는 캐시 적중 신호(CHT)를 출력할 수 있다.
도 9를 참조하면, 예상 모드 신호(SPM)가 논리 로우 레벨(L)로 비활성화되어 웨이 예상 모드의 디스에이블을 나타내는 경우, 캐시 회로는 제1 내지 제8 웨이들(WY0~WY7) 전체에 대하여 한 번의 노말 캐시 액세스 동작을 수행할 수 있다. 즉, 캐시 회로의 캐시 컨트롤러는 제1 내지 제8 웨이들(WY0~WY7)에 상응하는 제1 내지 제8 웨이 인에이블 신호들(EN0~EN7)을 모두 (예를 들어, 논리 하이 레벨(H)로) 활성화할 수 있다. 결과적으로 모든 웨이들(WY0~WY7)에 상응하는 태그 데이터들(TG0~TG7) 및 캐시 데이터들(DT0~DT7)이 독출되어 출력 회로(50)로 제공될 수 있다.
한편, 도 6을 참조하여 전술한 바와 같이, 후보 웨이 신호(SCW)가 후보 웨이를 불포함하는 경우(SCW: NONE)에도 캐시 회로는 제1 내지 제8 웨이들(WY0~WY7) 전체에 대하여 한 번의 노말 캐시 액세스 동작(NCAO)을 수행할 수 있다.
노말 캐시 액세스 동작(NCAO)의 결과, 타겟 데이터(SDT)가 제1 내지 제8 웨이들(WY0~WY7)에 저장되어 있는 경우, 출력 회로(50)는 캐시 히트를 나타내는 캐시 적중 신호(CHT)를 출력하고 타겟 데이터(SDT)를 제공할 수 있다.
노말 캐시 액세스 동작(NCAO)의 결과, 타겟 데이터(SDT)가 제1 내지 제8 웨이들(WY0~WY7)에 저장되어 있지 않은 경우, 출력 회로(50)는 최종적으로 캐시 미스를 나타내는 캐시 적중 신호(CHT)를 출력할 수 있다.
도 6 내지 9를 참조하여 설명한 바와 같이, 후보 웨이들에 대한 프라이머리 캐시 액세스 동작(PCAO)에서는 후보 웨이들만을 인에이블하고 나머지 웨이들을 디스에이블함으로써 전력 소모를 감소할 수 있다. 후보 웨이들에 대한 프라이머리 캐시 액세스 동작(PCAO)에서 캐시 미스가 발생하는 경우 나머지 웨이들에 대한 세컨더리 캐시 액세스 동작(SCAO)의 수행에 의해 데이터 액세스의 레이턴시가 증가할 수 있다. 전술한 바와 같이, 본 발명의 실시예들에 따라 누적 정보에 기초하여 우선적으로 액세스되는 후보 웨이들을 정확하게 예상하고 결정함으로써 레이턴시의 증가를 최소화하고 효율적으로 전력 소모를 감소할 수 있다.
도 10은 본 발명의 실시예들에 따른 캐시 메모리 장치의 진단 비트 쌍을 설명하기 위한 도면이고, 도 11은 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 감별 진단 레지스터의 일 실시예를 나타내는 도면이다.
도 10을 참조하면, 프라이머리 캐시 액세스 동작(PCAO) 및 세컨더리 캐시 액세스 동작(SCAO)의 각각에 대하여, 캐시 적중 신호(CHT)는 캐시 히트를 나타내는 경우 논리 하이 레벨로 활성화될 수 있다.
제1 경우(CS1)는 후보 웨이들에 타겟 데이터(SDT)가 저장되어 있는 경우를 나타낸다. 이 경우, 웨이 예상 회로는 캐시 히트 및 웨이 예상 히트를 나타내는 진단 비트 쌍의 값(예를 들어, 11)을 누적 정보(ACCI)로서 저장한다.
제2 경우(CS2)는 후보 웨이들을 제외한 나머지 웨이들에 타겟 데이터(SDT)가 저장되어 있는 경우를 나타낸다. 이 경우, 웨이 예상 회로는 캐시 히트 및 웨이 예상 미스를 나타내는 진단 비트 쌍의 값(예를 들어, 10)을 누적 정보(ACCI)로서 저장한다.
제3 경우(CS3)는 전체 웨이들에 타겟 데이터(SDT)가 저장되어 있지 않은 경우를 나타낸다. 이 경우, 웨이 예상 회로는 캐시 미스를 나타내는 진단 비트 쌍의 값(예를 들어, 00)을 누적 정보(ACCI)로서 저장한다.
도 10을 참조하여, 하나의 캐시 적중 신호(CHT)를 이용하여 캐시 적중 결과 및 웨이 예상 적중 결과를 나타내는 방법을 나타내는 실시예를 설명하였으나, 본 발명의 실시예들이 이에 한정되는 것은 아니다. 다른 실시예에서, 캐시 적중 결과 및 웨이 예상 적중 결과는 각각의 신호를 통하여 캐시 회로로부터 웨이 예상 회로로 제공될 수 있다.
도 11을 참조하면, 감별 진단 레지스터(DDR)는 상기 복수의 프로세서들(PCR0~PRCn)의 각각 및 복수의 세트들(SET=0~m)의 각각에 대하여 복수의 진단 비트 쌍들(P1~Ps)을 저장하는 복수의 진단 블록들(61, 62, 63)을 포함할 수 있다. 진단 비트 쌍들(P1~Ps)의 각각은 캐시 적중 결과를 나타내는 캐시 적중 비트(예를 들어, 상위 비트) 및 웨이 예상 적중 결과를 나타내는 웨이 예상 적중 비트(예를 들어, 하위 비트)를 포함할 수 있다. 진단 비트 쌍들(P1~Ps)의 개수(s)는 시스템의 구성 및 동작 상태에 따라서 다양하게 결정될 수 있다.
예를 들어, P1은 가장 최근의 캐시 액세스 동작에 상응하는 진단 비트 쌍이고 Ps는 가장 오래된 캐시 액세스 동작에 상응하는 진단 비트 쌍일 수 있다. 진단 비트 쌍들(P1~Ps)은 선입선출(FIFO, first-in first-out) 방식에 의해 관리되고 저장될 수 있다. 즉, 새로운 캐시 액세스 동작이 수행될 때마다 상응하는 프로세서에 대한 진단 블록의 상응하는 세트에 대한 가장 오래된 진단 비트 쌍이 삭제되고 상기 새로운 캐시 액세스 동작에 대한 진단 비트 쌍이 새로 저장될 수 있다. 이와 같이, 복수의 진단 비트 쌍들(P1~Ps)을 이전에 수행된 복수의 캐시 액세스 동작들 동안 누적하여 상기 누적 정보(ACCI)로서 저장할 수 있다.
도 5의 컨트롤 로직 회로(31)는 누적되는 복수의 진단 비트 쌍들에 기초하여 현재의 캐시 액세스 패턴이 웨이 예상에 적합한 유용한 패턴인지를 결정하여 웨이 예상 모드의 인에이블 또는 디스에이블을 결정할 수 있다. 예를 들어, 일정한 기준 횟수 이상 캐시 미스 및/또는 웨이 예상 미스가 발생하는 경우에는 웨이 예상 모드를 인에이블할 수 있다.
도 12는 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 웨이 랭크 버퍼의 일 실시예를 나타내는 도면이다.
도 12를 참조하면, 웨이 랭크 버퍼(WRB)는 복수의 프로세서들의 각각 및 복수의 세트들(SET=0~m)의 각각에 대하여, 복수의 웨이들이 후보 웨이들에 포함되는 순서를 각각 나타내는 복수의 우선 순위 정보들을 저장할 수 있다. 웨이 랭크 버퍼(WRB)의 각각의 행은 복수의 세트들(SET=0~m)의 각각에 상응하는 우선 순위들(PR1~PRk)을 나타내는 하나의 우선 순위 정보를 저장할 수 있다. PR1은 가장 높은 우선 순위에 해당하고 PRk는 가장 낮은 우선 순위에 해당할 수 있다.
도 12에 저장된 각 항목은 상응하는 우선 순위에 해당하는 웨이 번호 및 프로세서 번호를 나타낼 수 있다. 예를 들어, 제1 세트(SET=0)의 최우선 순위(PR1)에 저장된 31의 표기(notation)에서 3은 웨이 번호를 나타내고 1은 프로세서 번호를 나타낸다. 다시 말해, 1번 프로세서에 상응하는 캐시 데이터가 저장된 3번 웨이는 가장 높은 우선 순위(PR1)를 갖는 것을 나타낸다.
이와 같은 복수의 우선 순위 정보들은 복수의 진단 비트 쌍들에 기초하여 각각의 캐시 액세스 동작마다 실시간으로 갱신될 수 있다. 우선 순위 정보의 갱신에 대해서는 도 17을 참조하여 후술한다.
도 13은 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 보조 추론 버퍼의 일 실시예를 나타내는 도면이다.
도 13을 참조하면, 보조 추론 버퍼(AIB)는 캐시 회로에 새로운 데이터가 기입됨으로써 유효 재참조 인터벌 동안에 캐시 라인들로부터 삭제되는 복수의 축출 데이터들에 관한 축출 정보를 저장할 수 있다. 보조 추론 버퍼(AIB)는 복수의 축출 데이터들에 각각 상응하는 축출 정보를 저장하는 복수의 엔트리들(1~q)을 포함할 수 있다. 엔트리들(1~q)의 개수는 상기 유효 재참조 인터벌에 따라 결정되고, 상기 유효 재참조 인터벌에 대해서는 도 15를 참조하여 후술한다.
도 13에 도시된 바와 같이, 보조 추론 버퍼(AIB)에 저장되는 축출 정보는 각각의 축출 데이터에 대한 어드레스(ADDRESS), 각각의 축출 데이터를 이전에 캐시 라인에 기입한 프로세서를 나타내는 피해 식별자(victim identifier)(PIDv) 및 각각의 축출 데이터를 상기 캐시 라인에서 삭제한 프로세서를 나타내는 가해 식별자(attacker identifier)(PIDa)를 포함할 수 있다. 도 13에는 축출 데이터들에 대한 어드레스들(AD1~ADq)에 대해 피해 식별자(PIDv)의 번호들 및 가해 식별자(PIDa)의 번호들이 예시적으로 도시되어 있다.
도 5의 컨트롤 로직 회로(31)는 피해 식별자(PIDv) 및 가해 식별자(PIDa)의 일치 여부를 판별하여 간섭 비트(DI)의 값을 설정할 수 있다. 예를 들어, 피해 식별자(PIDv) 및 가해 식별자(PIDa)가 일치하는 경우 간섭 비트(DI)의 값을 1로 설정할 수 있다.
또한, 컨트롤 로직 회로(31)는 캐시 회로에 새로 저장되는 데이터의 어드레스가 보조 추론 버퍼(AIB)에 저장된 축출 데이터의 어드레스와 일치하는지 여부에 기초하여 재사용 비트(RU)의 값을 설정할 수 있다. 예를 들어, 새로 저장되는 데이터의 어드레스 및 축출 데이터의 어드레스가 일치하는 경우 재사용 비트(RU)의 값을 1로 설정할 수 있다.
컨트롤 로직 회로(31)는 이러한 축출 정보에 기초하여 복수의 축출 데이터들 중 유효 재참조 인터벌 내에서 캐시 라인에 다시 기입되는 보호 데이터를 나타내는 쉴드 정보(SHD)를 발생하여 캐시 회로에 제공할 수 있다.
캐시 회로는 제공 받은 쉴드 정보(SHD)에 기초하여 상기 보호 데이터가 상기 캐시 라인에서 삭제되는 것을 적어도 한번 방지할 수 있다. 이와 같이 캐시 회로는 재사용 가능성이 높은 상기 보호 데이터를 캐시 라인에서 삭제되지 않고 좀 더 오래 유지될 수 있도록 쉴드 정보(SHD)를 전술한 교체 정책에 반영할 수 있다.
도 14는 본 발명의 실시예들에 따른 캐시 메모리 장치에 저장되는 캐시 점유 정보를 나타내는 도면이다.
도 5의 컨트롤 로직 회로(31)는 도 14에 도시된 바와 같은 캐시 점유 정보(COI)를 저장할 수 있다. 캐시 점유 정보(COI)는 복수의 캐시 라인들에 저장된 데이터들에 각각 상응하는 프로세서들의 식별자들을 포함한다. 도 14에는 복수의 세트들(SET=0~m) 및 복수의 웨이들(WY0~WYk)에 각각 상응하는 캐시 라인들에 저장된 데이터에 관계되는 프로세서들의 번호들이 예시적으로 도시되어 있다. 예를 들어, 0번 세트(SET=0)의 0번 웨이(WY0)에는 1번 프로세서에 의해 저장된 데이터가 저장되어 있음을 나타낸다. 컨트롤 로직 회로(31)는 이러한 캐시 점유 정보(COI)에 기초하여 도 13의 축출 정보에 필요한 축출 데이터에 상응하는 피해 식별자(PIDv)를 결정할 수 있다.
도 15는 본 발명의 실시예들에 따른 캐시 메모리 장치의 유효 재참조 인터벌을 나타내는 도면이다.
도 15에는 4개의 프로세서들(PRC0~PCR3)에 각각 전속적인 L1 캐시들 및 4개의 프로세서들(PRC0~PCR3)에 공유되는 L2 캐시로부터 순차적으로 축출되는 데이터 스트림이 예시적으로 도시되어 있다. 예를 들어, a, b, c, d는 제1 프로세서(PRC0)에 의해 L2 캐시에 저장된 캐시 데이터들에 해당하고, e, f, g는 각각 제2 내지 제4 프로세서들(PRC1~PRC3)에 의해 L2 캐시에 저장된 캐시 데이터들에 해당한다. SZA는 ε개의 데이터에 해당하고 실제로 얻을 수 있는(actually available) 캐시 사이즈를 나타내고 SZV는 3ε개의 데이터에 해당하고 가상적으로 확장된(virtually extended) 캐시 사이즈를 나타낸다.
축출 데이터 스트림에서 서브 세트들(α, β, γ, δ)에 속하는 축출 데이터들은 쇼트 재참조 인터벌(Srri) 내에서 축출된 것이고, 서브 세트(ω)에 속하는 데이터들은 롱 재참조 인터벌(Lrri) 내에서 축출된 것이다. 쇼트 재참조 인터벌(Srri)의 축출 데이터가 캐시 메모리에 다시 기입되는 경우에는, 재참조 가능성이 높은 데이터가 캐시 메모리에서 삭제하고 재기입하는 동작이 비효율적으로 빈번하다는 것을 나타낸다. 본 발명의 실시예들에 따라서, 쇼트 재참조 인터벌, 즉 유효 재참조 인터벌(effective re-reference interval)(Srri)을 적절하게 설정하고 유효 재참조 인터벌(Srri) 내에서 캐시 메모리에 재기입되는 보호 데이터에 대한 쉴드 정보(SHD)를 발생하여 상기 보호 데이터의 축출 가능성을 감소시킴으로써 시스템의 성능을 향상시킬 수 있다.
일 실시예에서, 쉐어드 L2 캐시 메모리 장치의 경우, 상기 유효 재참조 인터벌(Srri)은 수학식 1과 같이 설정될 수 있다.
[수학식 1]
Srri=n*R*ε 또는 n*ε,
R=m2/m1
수학식 1에서 n은 쉐어드 L2 캐시 메모리 장치에 공통으로 액세스하는 프로세서들의 개수를 나타내고, ε는 쉐어드 L2 캐시 메모리 장치의 웨이들의 개수를 나타내고, m1은 프라이빗 L1 캐시 메모리 장치의 세트들의 개수를 나타내고, m2는 쉐어드 L2 캐시 메모리 장치의 세트들의 개수를 나타낸다. 이와 같이, 유효 재참조 인터벌(Srri), 즉 전술한 보조 추론 버퍼(AIB)에 저장되는 축출 정보의 축출 데이터들의 개수는 쉐어드 캐시 회로를 공통으로 액세스하는 프로세서들의 개수 및 쉐어드 캐시 회로의 웨이들의 개수의 곱에 기초하여 결정될 수 있다.
도 16은 본 발명의 실시예들에 따른 캐시 메모리 장치에 저장되는 웨이 예상 윈도우들을 나타내는 도면이다.
도 5의 컨트롤 로직 회로(31)는 도 16에 도시된 바와 같은 복수의 웨이 예상 윈도우들(WPW0~WPWn)을 저장할 수 있다. 복수의 웨이 예상 윈도우들(WPW0~WPWn)은 복수의 프로세서들(PRC0~PRCn)에 각각 상응하고 복수의 세트들(SET=0~m)에 각각 상응하는 엔트리들을 포함한다.
복수의 웨이 예상 윈도우들(WPW0~WPWn)은 복수의 프로세서들(PRC0~PRCn) 및 복수의 세트들(SET=0~m)에 각각 상응하는 후보 웨이들의 개수를 나타낼 수 있다. 예를 들어, 제1 프로세서(PRC0) 및 제1 세트(SET=0)에 상응하는 웨이 예상 윈도우는 4의 값을 가지며, 후보 웨이들의 개수가 4임을 나타낸다.
이와 같은 복수의 웨이 예상 윈도우는 복수의 진단 비트 쌍들에 기초하여 각각의 캐시 액세스 동작마다 실시간으로 갱신될 수 있다. 웨이 예상 윈도우의 갱신에 대해서는 도 17을 참조하여 후술한다.
컨트롤 로직 회로(31)는 도 16을 참조하여 설명한 복수의 웨이 예상 윈도우들 및 도 12를 참조하여 설명한 복수의 우선 순위 정보들에 기초하여 현재의 캐시 액세스 동작에 대한 프로세서 및 세트에 상응하는 후보 웨이들을 결정할 수 있다.
도 17은 본 발명의 실시예들에 따른 캐시 메모리 장치의 우선순위 갱신 동작을 나타내는 도면이다.
도 17에는 4개의 프로세서들(PRC0~PRC3)에 의해 공통으로 액세스되고 8개의 웨이들(WY0~WY7)을 포함하는 쉐어드 캐시 메모리 장치의 예에서, 특정한 하나의 세트에 대한 액세스 결과들(S31~S35) 및 복수의 시점들(T1~T6)에 대한 각 액세스 결과에 따른 상기 하나의 세트에 대한 웨이 예상 윈도우들(WPW0~WPW3) 및 우선 순위 정보(PRT)의 갱신 과정이 예시적으로 도시되어 있다. 우선 순위 정보(PRT)의 표기(notation)는 도 12를 참조하여 전술한 바와 같다. 다만, 10s에 표시된 s는 쉴드 정보를 나타내고 해당 캐시 라인의 데이터가 전술한 바와 같은 보호 데이터임을 나타낸다.
제1 시점(T1)에서 제1 내지 제4 웨이 예상 윈도우들(WPW0~WPW3)은 각각 3+1=4, 1, 3, 0의 값을 갖는 것으로 가정한다. 제1 웨이 예상 윈도우(WPW0)는 원래 3의 값을 가지지만 보호 데이터를 저장한 캐시 라인이 존재하므로 1만큼 증가된 4의 값을 가질 수 있다.
제1 시점(T1) 이후에 제1 프로세서(PRC0)에 의해 제3 웨이(WY2)에 대한 연속적인(예를 들어, 2회 연속으로) 웨이 예상 히트가 발생한다(S31). 도 5의 컨트롤 로직 회로(31)는 전술한 진단 비트 쌍들에 기초하여 이러한 액세스 결과를 알 수 있다. 컨트롤 로직 회로(31)는 제1 웨이 예상 윈도우(WPW0)의 값을 1만큼 감소하고, 연속적인 웨이 예상 히트에 상응하는 제3 웨이(WY2)의 우선 순위를 1만큼 상승하여 제2 시점(T2)의 우선 순위 정보(PRT)로 갱신할 수 있다.
제2 시점(T2) 이후에 제1 프로세서(PRC0)에 의해 캐시 미스가 발생하고 제3 프로세서(PRC2)에 의해 점유되었던 제8 웨이(WY7)의 캐시 데이터가 축출되는 파괴적 간섭(DI, destructive interference)이 발생한다(S32). 이 경우, 도 13을 참조하여 설명한 축출 정보의 상응하는 간섭 비트(DI)의 값이 1로 설정될 수 있다. 컨트롤 로직 회로(31)는 캐시 미스에 해당하는 제1 웨이 예상 윈도우(WPW0)의 값을 1만큼 증가하고 축출 데이터에 해당하는 제3 웨이 예상 윈도우(WPW2)를 1만큼 감소하고, 새로운 캐시 데이터가 기입된 제8 웨이(WY7)를 최우선 순위로 하여 제3 시점(T3)의 우선 순위 정보(PRT)로 갱신할 수 있다.
제3 시점(T3) 이후에 제1 프로세서(PRC0)에 의해 캐시 미스가 발생하고, 제2 프로세서(PRC1)에 의해 점유되었던 제6 웨이(WY5)의 캐시 데이터가 축출됨으로써 파괴적 간섭(DI)이 발생한다(S33). 컨트롤 로직 회로(31)는 캐시 미스에 해당하는 제1 웨이 예상 윈도우(WPW0)의 값을 1만큼 증가하고 축출 데이터에 해당하는 제2 웨이 예상 윈도우(WPW1)를 1만큼 감소하고, 새로운 캐시 데이터가 기입된 제6 웨이(WY5)를 최우선 순위로 하여 제4 시점(T4)의 우선 순위 정보(PRT)로 갱신할 수 있다.
제4 시점(T4) 이후에 제1 프로세서(PRC0)에 의해 캐시 미스가 발생하고, 제3 프로세서(PRC2)에 의해 점유되었던 제7 웨이(WY6)의 캐시 데이터가 축출됨으로서 파괴적 간섭(DI)이 발생한다(S34). 컨트롤 로직 회로(31)는 캐시 미스에 해당하는 제1 웨이 예상 윈도우(WPW0)의 값을 1만큼 증가하고 축출 데이터에 해당하는 제3 웨이 예상 윈도우(WPW2)를 1만큼 감소하고, 새로운 캐시 데이터가 기입된 제7 웨이(WY6)를 최우선 순위로 하여 제5 시점(T5)의 우선 순위 정보(PRT)로 갱신할 수 있다. 한편 교체 정책에 따라서 최하위의 우선 순위에 해당하는 제2 웨이(WY1)의 캐시 데이터가 축출될 예정이었으나, 제2 웨이(WY1)의 캐시 데이터는 보호 데이터에 상응하므로 삭제되는 것이 방지되고 대신에 제7 웨이(WY6)의 캐시 데이터가 축출될 수 있다. 이후 제2 웨이(WY1)의 캐시 데이터는 보호 데이터에서 해제될 수 있다.
제5 시점(T5) 이후에 제1 프로세서(PRC0)에 의해 캐시 미스가 발생하고, 파괴적 간섭(DI) 없이 제1 프로세서(PRC0)에 의해 점유되었던 제2 웨이(WY1)의 캐시 데이터가 축출된다(S35). 컨트롤 로직 회로(31)는 캐시 미스에 해당하는 제1 웨이 예상 윈도우(WPW0)의 값을 1만큼 증가하고, 새로운 캐시 데이터가 기입된 제2 웨이(WY1)를 최우선 순위로 하여 제6 시점(T6)의 우선 순위 정보(PRT)로 갱신할 수 있다.
이하, 도 18, 19 및 20을 참조하여 하나의 프로세서(예를 들어, 제1 프로세서(PRC0)에 의해 전속적으로 액세스되는 프라이빗 캐시 메모리 장치에 상응하는 실시예들을 설명한다.
도 18은 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 감별 진단 레지스터의 일 실시예를 나타내는 도면이고, 도 19는 본 발명의 실시예들에 따른 캐시 메모리 장치에 포함되는 웨이 랭크 버퍼의 일 실시예를 나타내는 도면이다.
도 18을 참조하면, 감별 진단 레지스터(DDR)는 하나의 프로세서(PCR0) 및 복수의 세트들(SET=0~m)의 각각에 대하여 복수의 진단 비트 쌍들(P1~Ps)을 저장하는 하나의 진단 블록(61)을 포함할 수 있다. 그 밖의 설명은 도 11과 실질적으로 동일하므로 중복되는 설명을 생략한다.
도 19를 참조하면, 웨이 랭크 버퍼(WRB)는 복수의 세트들(SET=0~m)의 각각에 대하여, 복수의 웨이들이 후보 웨이들에 포함되는 순서를 각각 나타내는 우선 순위 정보를 저장할 수 있다. 도 12의 쉐어드 캐시 메모리 장치의 우선 순위 정보(PRT)의 표기(notation)와 다르게 프라이빗 캐시 메모리 장치의 우선 순위 정보(PRT)의 각 항목은 프로세서 번호를 포함하지 않고 웨이 번호만을 포함한다. 그 밖의 설명은 도 12와 실질적으로 동일하므로 중복되는 설명을 생략한다.
도 20은 본 발명의 실시예들에 따른 캐시 메모리 장치의 우선순위 갱신 동작을 나타내는 도면이다.
도 20에는 하나의 프로세서들에 의해 전속적으로 액세스되고 8개의 웨이들(WY0~WY7)을 포함하는 프라이빗 캐시 메모리 장치의 예에서, 특정한 하나의 세트에 대한 액세스 결과들(S41~S45) 및 복수의 시점들(T1~T6)에 대한 각 액세스 결과에 따른 상기 하나의 세트에 대한 웨이 예상 윈도우(WPW) 및 우선 순위 정보(PRT)의 갱신 과정이 예시적으로 도시되어 있다. 웨이 예상 윈도우(WPW) 및 우선 순위 정보(PRT)의 갱신 과정은 파괴적 간섭(DI)에 관한 사항을 제외하고는 도 17과 실질적으로 동일하므로 중복되는 설명을 생략한다.
도 20에 도시된 바와 같이, 캐시 미스의 경우 웨이 예상 윈도우(WPW)의 값이 1만큼 증가하고 연속적인 웨이 예상 히트의 경우 웨이 예상 윈도우(WPW)의 값이 1만큼 감소할 수 있다.
도 21은 본 발명의 실시예들에 따른 시스템을 나타내는 블록도이다.
도 21을 참조하면, 시스템(1000)은 멀티-코어 프로세서(110), 쉐어드 L2 캐시 메모리 장치(11) 및 메인 메모리(MEM)(130)를 포함할 수 있다. 도 21에는 본 발명의 실시예들에 따른 실시예들과 관련된 구성요소들만이 간략히 도시되어 있으나, 시스템(1000)은 이보다 더 많은 구성요소들을 포함할 수 있다.
멀티-코어 프로세서(110)는 다양한 컴퓨팅 장치에 포함되는 시스템 온 칩의 형태로 구현될 수 있다. 멀티-코어 프로세서(110)는 인터페이스를 통하여 호스트 장치와 데이터, 작업 요청 등을 주고 받을 수 있다. 멀티-코어 프로세서(110)는 복수의 프로세서 코어들(C1~C8) 및 프로세서 코어들(C1~C8)에 의해 각각 전속적으로 액세스되는 복수의 프라이빗 L1 캐시 메모리 장치들(L1_1~L1_8)을 포함할 수 있다. 도 21에는 도시의 편의상 멀티-코어 프로세서(110)에 8개의 코어들(C1~C8)이 포함되는 것으로 도시되어 있으나, 실시예에 따라서 코어들의 개수는 다양하게 변경될 수 있다.
복수의 프로세서 코어들(C1~C8)은 동종(homogeneous) 프로세서 코어들일 수도 있고, 이종(heterogeneous) 프로세서 코어들일 수도 있다. 복수의 프로세서 코어들(C1~C8)이 이종 프로세서 코어들일 경우, 복수의 프로세서 코어들(C1~C8)은, 예를 들어, 제1 클러스터(CL1) 및 제2 클러스터(CL2)로 구분될 수 있다. 이 경우, 제1 클러스터(CL1)는 복수의 프로세서 코어들(C1~C8) 중 제1 처리 속도를 갖는 고성능 코어들(C1~C4)을 포함할 수 있고, 제2 클러스터(CL2)는 복수의 코어들(C1~C8) 중 제1 처리 속도보다 느린 제2 처리 속도를 갖는 저성능 코어들(C5~C8)을 포함할 수 있다.
쉐어드 L2 캐시 메모리 장치(11) 및 복수의 프라이빗 L1 캐시 메모리 장치들(L1_1~L1_8)들 중 적어도 하나는 전술한 바와 같은 본 발명의 실시예들에 따른 캐시 메모리 장치로 구현될 수 있다.
본 발명의 실시예들은 캐시 메모리 장치 및 이를 포함하는 시스템에 유용하게 이용될 수 있다. 특히 본 발명의 실시예들은 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive; SSD), 임베디드 멀티미디어 카드(eMMC, embedded multimedia card), 유니버셜 플래시 스토리지(UFS, universal flash storage), 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular phone), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things;) 기기, IoE(internet of everything:) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 복수의 세트들에 각각 상응하는 복수의 캐시 라인들을 각각 포함하는 복수의 웨이들을 포함하고, 액세스 어드레스에 상응하는 타겟 데이터가 상기 복수의 캐시 라인들에 저장되어 있는지 여부를 나타내는 캐시 적중 신호를 발생하고, 웨이 예상 모드에서 상기 복수의 웨이들 중에서 하나 이상의 후보 웨이들을 나타내는 후보 웨이 신호에 기초하여 상기 후보 웨이들에 대해 우선적으로 현재의 캐시 액세스 동작을 수행하는 캐시 회로; 및
    이전에 수행된 복수의 캐시 액세스 동작들 동안 제공되는 상기 캐시 적중 신호에 기초하여 상기 복수의 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 캐시 적중 결과 및 상기 후보 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 웨이 예상 적중 결과를 누적한 누적 정보를 저장하고, 상기 웨이 예상 모드에서 상기 누적 정보에 기초하여 상기 현재의 캐시 액세스 동작을 위한 상기 후보 웨이들을 결정하여 상기 후보 웨이 신호를 발생하는 웨이 예상 회로를 포함하는 캐시 메모리 장치.
  2. 제1 항에 있어서,
    상기 웨이 예상 회로는,
    상기 누적 정보에 기초하여 상기 웨이 예상 모드의 인에이블 또는 디스에이블을 나타내는 예상 모드 신호를 발생하고 상기 예상 모드 신호를 상기 캐시 회로에 제공하는 것을 특징으로 하는 캐시 메모리 장치.
  3. 제2 항에 있어서,
    상기 캐시 회로는,
    상기 예상 모드 신호가 상기 웨이 예상 모드의 인에이블을 나타내는 경우, 상기 후보 웨이들에 대한 프라이머리 캐시 액세스 동작을 먼저 수행하고, 상기 후보 웨이들에 상기 타겟 데이터가 저장되어 있지 않은 경우에만 상기 복수의 웨이들 중에서 상기 후보 웨이들을 제외한 나머지 웨이들에 대한 세컨더리 캐시 액세스 동작을 수행하는 것을 특징으로 하는 캐시 메모리 장치.
  4. 제2 항에 있어서,
    상기 캐시 회로는,
    상기 예상 모드 신호가 상기 웨이 예상 모드의 디스에이블을 나타내는 경우, 상기 복수의 웨이들 전체에 대하여 한 번의 노말 캐시 액세스 동작을 수행하는 것을 특징으로 하는 캐시 메모리 장치.
  5. 제1 항에 있어서,
    상기 웨이 예상 회로는,
    상기 캐시 회로에 새로운 데이터가 기입됨으로써 유효 재참조 인터벌 동안에 상기 복수의 캐시 라인들로부터 삭제되는 복수의 축출 데이터들에 관한 축출 정보를 저장하는 보조 추론 버퍼를 포함하는 것을 특징으로 하는 캐시 메모리 장치.
  6. 제5 항에 있어서,
    상기 웨이 예상 회로는,
    상기 축출 정보에 기초하여 상기 복수의 축출 데이터들 중 상기 유효 재참조 인터벌 내에서 상기 캐시 라인에 다시 기입되는 보호 데이터를 나타내는 쉴드 정보를 발생하여 상기 쉴드 정보를 상기 캐시 회로에 제공하고,
    상기 캐시 회로는,
    상기 쉴드 정보에 기초하여 상기 보호 데이터가 상기 캐시 라인에서 삭제되는 것을 적어도 한번 방지하는 것을 특징으로 하는 캐시 메모리 장치.
  7. 제5 항에 있어서,
    상기 축출 정보는 각각의 축출 데이터에 대한 어드레스, 상기 각각의 축출 데이터를 이전에 상기 캐시 라인에 기입한 프로세서를 나타내는 피해 식별자 및 상기 각각의 축출 데이터를 상기 캐시 라인에서 삭제한 프로세서를 나타내는 가해 식별자를 포함하는 것을 특징으로 하는 캐시 메모리 장치.
  8. 제7 항에 있어서,
    상기 웨이 예상 회로는, 상기 복수의 캐시 라인들에 저장된 데이터들에 각각 상응하는 프로세서들의 식별자들을 포함하는 캐시 점유 정보를 저장하고, 상기 캐시 점유 정보에 기초하여 상기 피해 식별자를 결정하는 것을 특징으로 하는 캐시 메모리 장치.
  9. 제5 항에 있어서,
    상기 유효 재참조 인터벌은 상기 캐시 회로를 공통으로 액세스하는 프로세서들의 개수 및 상기 복수의 웨이들의 개수의 곱에 기초하여 결정되는 것을 특징으로 하는 캐시 메모리 장치.
  10. 제1 항에 있어서,
    복수의 프로세서들에 의해 공통으로 액세스되는 쉐어드 캐시 메모리 장치인 것을 특징으로 하는 캐시 메모리 장치.
  11. 제10 항에 있어서,
    상기 웨이 예상 회로는,
    상기 복수의 프로세서들의 각각 및 상기 복수의 세트들의 각각에 대하여, 상기 캐시 적중 결과를 나타내는 캐시 적중 비트 및 상기 웨이 예상 적중 결과를 나타내는 웨이 예상 적중 비트를 각각 포함하는 복수의 진단 비트 쌍들을 상기 이전에 수행된 복수의 캐시 액세스 동작들 동안 누적하여 상기 누적 정보로서 저장하는 감별 진단 레지스터; 및
    상기 감별 진단 레지스터에 저장된 상기 복수의 진단 비트 쌍들에 기초하여 상기 현재의 캐시 액세스 동작에 대한 프로세서 및 세트에 상응하는 상기 후보 웨이 신호를 발생하는 컨트롤 로직 회로를 포함하는 것을 특징으로 하는 캐시 메모리 장치.
  12. 제11 항에 있어서,
    상기 웨이 예상 회로는,
    상기 복수의 프로세서들의 각각 및 상기 복수의 세트들의 각각에 대하여, 상기 복수의 웨이들이 상기 후보 웨이들에 포함되는 순서를 각각 나타내는 복수의 우선 순위 정보들을 저장하는 웨이 랭크 버퍼를 더 포함하는 것을 특징으로 하는 캐시 메모리 장치.
  13. 제12 항에 있어서,
    상기 컨트롤 로직 회로는,
    상기 복수의 진단 비트 쌍들에 기초하여 상기 복수의 우선 순위 정보들을 각각의 캐시 액세스 동작마다 실시간으로 갱신하는 것을 특징으로 하는 캐시 메모리 장치.
  14. 제12 항에 있어서,
    상기 컨트롤 로직 회로는,
    상기 복수의 프로세서들 및 상기 복수의 세트들에 각각 상응하는 상기 후보 웨이들의 개수를 나타내는 복수의 웨이 예상 윈도우들을 저장하고,
    상기 복수의 웨이 예상 윈도우들 및 상기 복수의 우선 순위 정보들에 기초하여 상기 현재의 캐시 액세스 동작에 대한 프로세서 및 세트에 상응하는 상기 후보 웨이들을 결정하는 것을 특징으로 하는 캐시 메모리 장치.
  15. 제14 항에 있어서,
    상기 컨트롤 로직 회로는,
    상기 복수의 진단 비트 쌍들에 기초하여 상기 복수의 웨이 예상 윈도우들을 각각의 캐시 액세스 동작마다 실시간으로 갱신하는 것을 특징으로 하는 캐시 메모리 장치.
  16. 제1 항에 있어서,
    하나의 프로세서에 의해 전속적으로 액세스되는 프라이빗 캐시 메모리 장치인 것을 특징으로 하는 캐시 메모리 장치.
  17. 제16 항에 있어서,
    상기 웨이 예상 회로는,
    상기 복수의 세트들의 각각에 대하여, 상기 캐시 적중 결과를 나타내는 캐시 적중 비트 및 상기 웨이 예상 적중 결과를 나타내는 웨이 예상 적중 비트를 각각 포함하는 복수의 진단 비트 쌍들을 상기 이전에 수행된 복수의 캐시 액세스 동작들 동안 누적하여 상기 누적 정보로서 저장하는 감별 진단 레지스터; 및
    상기 감별 진단 레지스터에 저장된 상기 복수의 진단 비트 쌍들에 기초하여 상기 현재의 캐시 액세스 동작에 대한 세트에 상응하는 상기 후보 웨이 신호를 발생하는 컨트롤 로직 회로를 포함하는 것을 특징으로 하는 캐시 메모리 장치.
  18. 제17 항에 있어서,
    상기 웨이 예상 회로는,
    상기 복수의 세트들의 각각에 대하여, 상기 복수의 웨이들이 상기 후보 웨이들에 포함되는 순서를 각각 나타내는 복수의 우선 순위 정보들을 저장하는 웨이 랭크 버퍼를 더 포함하고,
    상기 복수의 진단 비트 쌍들에 기초하여 상기 복수의 우선 순위 정보들을 각각의 캐시 액세스 동작마다 실시간으로 갱신하는 것을 특징으로 하는 캐시 메모리 장치.
  19. 하나 이상의 프로세서들;
    상기 하나 이상의 프로세서들에서 사용되는 데이터를 저장하는 메인 메모리 장치; 및
    상기 메인 메모리 장치에 저장된 데이터의 일부를 저장하고 상기 하나 이상의 프로세서들에 의해 상기 메인 메모리보다 먼저 액세스되는 캐시 메모리 장치를 포함하고,
    상기 캐시 메모리 장치는,
    복수의 세트들에 각각 상응하는 복수의 캐시 라인들을 각각 포함하는 복수의 웨이들을 포함하고, 액세스 어드레스에 상응하는 타겟 데이터가 상기 복수의 캐시 라인들에 저장되어 있는지 여부를 나타내는 캐시 적중 신호를 발생하고, 웨이 예상 모드에서 상기 복수의 웨이들 중에서 하나 이상의 후보 웨이들을 나타내는 후보 웨이 신호에 기초하여 상기 후보 웨이들에 대해 우선적으로 현재의 캐시 액세스 동작을 수행하는 캐시 회로; 및
    이전에 수행된 복수의 캐시 액세스 동작들 동안 제공되는 상기 캐시 적중 신호에 기초하여 상기 복수의 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 캐시 적중 결과 및 상기 후보 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 웨이 예상 적중 결과를 누적한 누적 정보를 저장하고, 상기 웨이 예상 모드에서 상기 누적 정보에 기초하여 상기 현재의 캐시 액세스 동작을 위한 상기 후보 웨이들을 결정하여 상기 후보 웨이 신호를 발생하는 웨이 예상 회로를 포함하는 시스템.
  20. 복수의 세트들에 각각 상응하는 복수의 캐시 라인들을 각각 포함하는 복수의 웨이들을 포함하는 캐시 메모리 장치의 동작 방법으로서,
    액세스 어드레스에 상응하는 타겟 데이터가 상기 복수의 캐시 라인들에 저장되어 있는지 여부를 나타내는 캐시 적중 신호를 발생하는 단계;
    이전에 수행된 복수의 캐시 액세스 동작들 동안 제공되는 상기 캐시 적중 신호에 기초하여 상기 복수의 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 캐시 적중 결과 및 후보 웨이들 중 하나에 상기 타겟 데이터가 저장되어 있는지 여부를 나타내는 웨이 예상 적중 결과를 누적한 누적 정보를 저장하는 단계;
    웨이 예상 모드에서 상기 누적 정보에 기초하여 현재의 캐시 액세스 동작을 위한 상기 후보 웨이들을 결정하여 후보 웨이 신호를 발생하는 단계; 및
    상기 웨이 예상 모드에서 상기 복수의 웨이들 중에서 하나 이상의 후보 웨이들을 나타내는 상기 후보 웨이 신호에 기초하여 상기 후보 웨이들에 대해 우선적으로 상기 현재의 캐시 액세스 동작을 수행하는 단계를 포함하는 캐시 메모리 장치의 동작 방법.
KR1020200010921A 2020-01-30 2020-01-30 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법 KR20210097345A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200010921A KR20210097345A (ko) 2020-01-30 2020-01-30 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법
DE102020121508.8A DE102020121508A1 (de) 2020-01-30 2020-08-17 Cache-Speichervorrichtung, System dieselbe enthaltend und Verfahren zum Betreiben derselben
US17/000,875 US11321235B2 (en) 2020-01-30 2020-08-24 Cache memory device, system including the same, and method of operating the same
CN202011264612.3A CN113204501A (zh) 2020-01-30 2020-11-12 高速缓存存储设备及其操作方法、包括高速缓存存储设备的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200010921A KR20210097345A (ko) 2020-01-30 2020-01-30 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210097345A true KR20210097345A (ko) 2021-08-09

Family

ID=76853932

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200010921A KR20210097345A (ko) 2020-01-30 2020-01-30 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법

Country Status (4)

Country Link
US (1) US11321235B2 (ko)
KR (1) KR20210097345A (ko)
CN (1) CN113204501A (ko)
DE (1) DE102020121508A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565437B (zh) * 2020-12-07 2021-11-19 浙江大学 一种面向跨界服务网络的服务缓存方法
US20220206946A1 (en) * 2020-12-28 2022-06-30 Advanced Micro Devices, Inc. Method and apparatus for managing a cache directory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425055B1 (en) 1999-02-24 2002-07-23 Intel Corporation Way-predicting cache memory
US20060090034A1 (en) 2004-10-22 2006-04-27 Fujitsu Limited System and method for providing a way memoization in a processing environment
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
JP2011065503A (ja) 2009-09-18 2011-03-31 Renesas Electronics Corp キャッシュメモリシステム及びキャッシュメモリのway予測の制御方法
JP2011257800A (ja) 2010-06-04 2011-12-22 Panasonic Corp キャッシュメモリ装置、プログラム変換装置、キャッシュメモリ制御方法及びプログラム変換方法
US9256544B2 (en) * 2012-12-26 2016-02-09 Advanced Micro Devices, Inc. Way preparation for accessing a cache
US9367468B2 (en) 2013-01-15 2016-06-14 Qualcomm Incorporated Data cache way prediction
US9864694B2 (en) 2015-05-04 2018-01-09 Arm Limited Tracking the content of a cache using a way tracker having entries with a cache miss indicator
US10430349B2 (en) 2016-06-13 2019-10-01 Advanced Micro Devices, Inc. Scaled set dueling for cache replacement policies
US11281586B2 (en) * 2017-05-09 2022-03-22 Andes Technology Corporation Processor and way prediction method thereof
KR102602984B1 (ko) 2018-07-23 2023-11-16 현대자동차주식회사 후진기어를 포함하지 않는 모터 구동 차량의 전력충전량 제어방법

Also Published As

Publication number Publication date
US11321235B2 (en) 2022-05-03
US20210240631A1 (en) 2021-08-05
CN113204501A (zh) 2021-08-03
DE102020121508A1 (de) 2021-08-05

Similar Documents

Publication Publication Date Title
US8176255B2 (en) Allocating space in dedicated cache ways
US10896128B2 (en) Partitioning shared caches
US7584327B2 (en) Method and system for proximity caching in a multiple-core system
US11809322B2 (en) Region based directory scheme to adapt to large cache sizes
US6857048B2 (en) Pseudo least-recently-used (PLRU) replacement method for a multi-node snoop filter
US7669009B2 (en) Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US20100217937A1 (en) Data processing apparatus and method
US20160314069A1 (en) Non-Temporal Write Combining Using Cache Resources
GB2411986A (en) Method, system and apparatus for hierarchical cache line replacement
JP2018005395A (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
US20230102891A1 (en) Re-reference interval prediction (rrip) with pseudo-lru supplemental age information
US20090106496A1 (en) Updating cache bits using hint transaction signals
US8473686B2 (en) Computer cache system with stratified replacement
KR20210097345A (ko) 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법
US11526449B2 (en) Limited propagation of unnecessary memory updates
US20170046278A1 (en) Method and apparatus for updating replacement policy information for a fully associative buffer cache
KR20220110225A (ko) 액세스 유형 우선 순위에 따른 캐시 관리
US7797492B2 (en) Method and apparatus for dedicating cache entries to certain streams for performance optimization
US10565111B2 (en) Processor
US7325101B1 (en) Techniques for reducing off-chip cache memory accesses
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법
US20060101208A1 (en) Method and apparatus for handling non-temporal memory accesses in a cache
US7496710B1 (en) Reducing resource consumption by ineffective write operations
US11704250B2 (en) Using request class and reuse recording in one cache for insertion policies of another cache
US20230325317A1 (en) Reducing probe filter accesses for processing in memory requests

Legal Events

Date Code Title Description
A201 Request for examination