KR102613645B1 - 캐시의 콘텐츠 트랙킹 - Google Patents

캐시의 콘텐츠 트랙킹 Download PDF

Info

Publication number
KR102613645B1
KR102613645B1 KR1020160049785A KR20160049785A KR102613645B1 KR 102613645 B1 KR102613645 B1 KR 102613645B1 KR 1020160049785 A KR1020160049785 A KR 1020160049785A KR 20160049785 A KR20160049785 A KR 20160049785A KR 102613645 B1 KR102613645 B1 KR 102613645B1
Authority
KR
South Korea
Prior art keywords
data item
way
cache
item identifier
tracker
Prior art date
Application number
KR1020160049785A
Other languages
English (en)
Other versions
KR20160130707A (ko
Inventor
마일스 로버트 둘리
토드 라팍즈
가이 래리
Original Assignee
에이알엠 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에이알엠 리미티드 filed Critical 에이알엠 리미티드
Publication of KR20160130707A publication Critical patent/KR20160130707A/ko
Application granted granted Critical
Publication of KR102613645B1 publication Critical patent/KR102613645B1/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/0877Cache access modes
    • 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/0853Cache with multiport tag or data arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, 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/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/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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/30Systems integrating technologies related to power network operation and communication or information technologies for improving the carbon footprint of the management of residential or tertiary loads, i.e. smart grids as climate change mitigation technology in the buildings sector, including also the last stages of power distribution and the control, monitoring or operating management systems at local level
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

복수의 웨이들을 구비하고, 상기 복수의 웨이들의 각각의 웨이가 데이터 어레이를 포함하고, 상기 캐시에 의해 기억된 데이터 항목이 상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이에 기억된다. 캐시의 웨이 트랙커는 복수의 엔트리들을 포함하고, 상기 복수의 엔트리들의 각각의 엔트리는, 데이터 항목 식별자를 기억하고, 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억한다. 웨이 트랙커의 각각의 엔트리는 상기 데이터 항목 식별자와 관련된 부적중 표시자를 더 기억하기 위한 것이고, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생한 경우에 부적중 표시자가 상기 캐시에 의해 설정된다. 또한, 이에 대응하는 데이터 캐싱 방법도 제공된다.

Description

캐시의 콘텐츠 트랙킹{TRACKING THE CONTENT OF A CACHE}
본 발명은 데이터 처리에 관한 것이다. 특히, 본 발명은 데이터 처리용 데이터의 캐시 기억에 관한 것이다.
캐시는 메모리에 기억된 데이터 항목들의 로컬 복사본을 기억하기 위해 데이터 처리장치 내부에 설치되어, 이들 데이터 항목이 데이터 처리장치에 의해 빈번하게 액세스될 때, 메모리에서 이들 데이터 항목을 검색하는 것과 관련된 대기시간이 각각의 액세스에 대해 발생할 필요가 없도록 한다.
캐시는 다수의 캐시 레벨들로 설치되는데, 캐시 레벨들과 데이터 항목들이 기억되는 메모리가 계층을 구성하고, 더 작고 더 빠른 캐시가 데이터 처리장치의 처리 소자에 더 근접하여 설치되고, 더 크고 더 느린 캐시가 메모리에 더 근접하여 설치된다.
캐시들은 세트 연상(set-associative) 방식으로 배치되는데, 이때 데이터 항목들이 기억될 수 있는 복수의 웨이(way)가 제공된다. 캐시 내부의 특정한 데이터 항목의 기억 위치는 이 데이터 항목의 메모리 어드레스의 일부에 의해 보통 결정되지만, 복수의 웨이는 이 데이터 항목에 대해 대응하는 수의 가능한 기억 위치들을 제공한다. 이와 같은 구성은, 데이터 처리장치에 의해 모두가 빈번하게 액세스되고, 동일한 메모리 어드레스 부분을 가지므로 캐시 내부에 동일한 기억 위치를 갖는 2개의 데이터 항목과 관련된 문제를 해소한다. 캐시 내부의 이들 2개의 데이터 항목에 대해 단지 한 개의 가능한 기억 위치가 존재한다면, 한 개의 데이터 항목을 액세스하게 되면 나머지 데이터 항목이 퇴출되고, 이들 2개의 데이터 항목에 대해 행해진 빈번한 액세스가 "과다 상태(thrashing)"을 일으킬 것이다.
캐시의 속도와 효율은 데이터 처리장치 내부의 캐시의 구현에 있어서 중요한 인자이며, 이들 2가지 특성을 향상시킬 여지가 존재한다.
적어도 일부 실시예는, 캐시로서,
복수의 웨이들을 구비하고, 상기 복수의 웨이들의 각각의 웨이가 데이터 어레이를 포함하고, 상기 캐시에 의해 기억된 데이터 항목이 상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이에 기억되고,
상기 캐시는, 복수의 엔트리들을 포함하는 웨이 트랙커를 더 구비하고, 상기 복수의 엔트리들의 각각의 엔트리는, 데이터 항목 식별자를 기억하고, 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억하기 위한 것이고, 상기 웨이 트랙커에 기억된 상기 선택된 웨이의 상기 표시는 상기 복수의 웨이들 각각에 대한 디스에이블 표시자를 포함하고,
상기 각각의 엔트리는 상기 데이터 항목 식별자와 관련된 부적중 표시자를 더 기억하기 위한 것이고, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생하고 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 상기 캐시에 없다는 것을 표시할 경우에 상기 부적중 표시자가 상기 캐시에 의해 설정되고,
데이터 항목 식별자들을 기억하는 복수의 태그 엔트리들을 갖고, 상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이 내부의 데이터 항목의 기억 위치에 대응하는 적어도 한 개의 태그 어레이의 태그 엔트리에 상기 데이터 항목 식별자를 기억하는 상기 적어도 한 개의 태그 어레이와,
상기 적어도 한 개의 태그 어레이에서 색인 절차를 행하고, 수신된 데이터 항목 식별자의 수신에 응답하여 상기 복수의 웨이들 각각의 상기 데이터 어레이를 액세스하는 액세스 회로를 더 구비하고,
상기 웨이 트랙커는 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자 사이의 일치에 응답하여, 상기 적어도 한 개의 태그 어레이에 있어서 상기 액세스 회로에 의한 상기 색인 절차의 금지를 일으키고,
상기 액세스 회로는 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하여, 상기 웨이 트랙커의 상기 엔트리 내부의 웨이에 대한 상기 디스에이블 표시자가 설정될 때, 상기 캐시의 웨이의 상기 데이터 어레이에 대한 액세스를 디스에이블시키고,
상기 캐시는 상기 복수의 웨이들 전체에 대한 상기 디스에이블 표시자 전체를 설정하여 상기 웨이 트랙커에 상기 부적중 표시자를 기억하도록 구성되는 것을 포함하는, 캐시를 갖는다.
적어도 일부 실시예에서는, 데이터 항목들을 캐싱하는 방법으로서,
캐시의 복수의 웨이들 중에서 한 개의 웨이의 데이터 어레이에 데이터 항목을 기억하는 단계와,
복수의 엔트리들을 포함하는 웨이 트랙커의 한 개의 엔트리에 데이터 항목 식별자를 기억하는 단계와,
상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억하는 단계-상기 웨이 트랙커에 기억된 상기 선택된 웨이의 상기 표시는 상기 복수의 웨이들 각각에 대한 디스에이블 표시자를 포함하고-와,
상기 웨이 트랙커에 기억된 각각의 데이터 항목 식별자와 관련된 부적중 표시자를 기억하는 단계와,
상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생하고 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 상기 캐시에 없다는 것을 표시할 경우에 상기 부적중 표시자를 설정하는 단계와,
상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이 내부의 데이터 항목의 기억 위치에 대응하는 적어도 한 개의 태그 어레이의 태그 엔트리에 데이터 항목 식별자를 기억하는 단계와,
상기 적어도 한 개의 태그 어레이에서 색인 절차를 행하는 단계와,
수신된 데이터 항목 식별자의 수신에 응답하여 상기 복수의 웨이들 각각의 상기 데이터 어레이를 액세스하는 단계와,
상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자 사이의 일치에 응답하여, 상기 적어도 한 개의 태그 어레이에 있어서 액세스 회로에 의한 상기 색인 절차의 금지를 일으키는 단계와,
상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하여, 상기 웨이 트랙커의 상기 엔트리 내부의 웨이에 대한 상기 디스에이블 표시자가 설정될 때, 상기 캐시의 웨이의 상기 데이터 어레이에 대한 액세스를 디스에이블시키는 단계, 및
상기 복수의 웨이들 전체에 대한 상기 디스에이블 표시자 전체를 설정하여 상기 웨이 트랙커에 상기 부적중 표시자를 기억하는 단계를 포함하는, 데이터 항목 캐싱방법이 제공된다.
적어도 일부 실시예는,
캐시의 복수의 웨이들 중에서 한 개의 웨이의 데이터 어레이에 데이터 항목을 기억하는 수단과,
복수의 엔트리들을 포함하는 웨이 트랙커의 한 개의 엔트리에 데이터 항목 식별자를 기억하는 수단과,
상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억하는 수단-상기 웨이 트랙커에 기억된 상기 선택된 웨이의 상기 표시는 상기 복수의 웨이들 각각에 대한 디스에이블 표시자를 포함하고-과,
상기 웨이 트랙커에 기억된 각각의 데이터 항목 식별자와 관련된 부적중 표시자를 기억하는 수단과,
상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생하고 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 상기 캐시에 없다는 것을 표시할 경우에 상기 부적중 표시자를 설정하는 수단과,
상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이 내부의 데이터 항목의 기억 위치에 대응하는 적어도 한 개의 태그 어레이의 태그 엔트리에 상기 데이터 항목 식별자를 기억하는 수단과,
상기 적어도 한 개의 태그 어레이에서 색인 절차를 행하고, 수신된 데이터 항목 식별자의 수신에 응답하여 상기 복수의 웨이들 각각의 상기 데이터 어레이를 액세스하는 수단과,
상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자 사이의 일치에 응답하여, 상기 색인 절차를 금지하는 수단과,
상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하여, 상기 웨이 트랙커의 상기 엔트리 내부의 웨이에 대한 상기 디스에이블 표시자가 설정될 때, 상기 캐시의 웨이의 상기 데이터 어레이에 대한 액세스를 디스에이블시키는 수단, 및
상기 복수의 웨이들 전체에 대한 상기 디스에이블 표시자 전체를 설정하여 상기 웨이 트랙커에 상기 부적중 표시자를 기억하는 수단을 구비하는, 캐시를 갖는다.
이하, 다음의 첨부도면에 도시된 실시예들을 참조하여 본 발명을 더욱 상세히 설명한다.
도 1은 일 실시예에 있어서 캐시를 구비한 데이터 처리장치를 개략적으로 나타낸 것이다.
도 2는 일 실시예에서의 캐시를 더욱 상세히 나타낸 개략도이다.
도 3a는 일 실시예에 있어서의 웨이 트랙커를 개략적으로 나타낸 것이다.
도 3b는 일 실시예에서 캐시에 의해 수신된 어드레스와 웨이 트랙커에 기억된 어드레스 사이의 일치의 판정을 개략적으로 나타낸 것이다.
도 4는 일 실시예의 방법을 구현할 때 행해지는 단계들의 시퀀스를 나타낸 것이다.
본 발명에 따른 캐시의 적어도 일부 실시예는, 복수의 웨이들을 구비하고, 상기 복수의 웨이들의 각각의 웨이가 데이터 어레이를 포함하고, 상기 캐시에 의해 기억된 데이터 항목이 상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이에 기억되고, 상기 캐시는, 복수의 엔트리들을 포함하는 웨이 트랙커를 더 구비하고, 상기 복수의 엔트리들의 각각의 엔트리는, 데이터 항목 식별자를 기억하고, 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억하기 위한 것이고, 상기 각각의 엔트리는 상기 데이터 항목 식별자와 관련된 부적중(miss) 표시자를 더 기억하기 위한 것이고, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생한 경우에 상기 부적중 표시자가 상기 캐시에 의해 설정된다.
캐시 내부에 기억된 특정한 데이터 항목이 캐시 내부의 다수의 가능한 기억 위치들 중에서 한 개에 기억될 수 있고, 가능한 기억 위치들의 수가 캐시 내부의 웨이들의 수에 의해 주어진다는 점에서, 캐시는 복수의 웨이들을 갖는데, 즉 캐시가 세트 연상적이다. 캐시 내부의 데이터 항목에 대한 복수의 가능한 기억 위치들이 존재한다는 것을 고려하면, (데이터 항목의 데이터 항목 식별자, 예를 들어, 그것의 메모리 어드레스 또는 그것의 메모리 어드레스의 일부에 의해 식별되는) 특정한 데이터 항목이 기억되는 캐시의 웨이의 조기의 표시를 제공하기 위해 웨이 트랙커가 설치되는데, 이것은 예를 들어 캐시 내부에서의 모든 색인 절차를 피할 수 있도록 할 수 있다. 더구나, 웨이 트랙커의 각각의 엔트리도 부적중 표시자를 기억할 수 있도록 구성되며, 캐시에서 부적중인 대응하는 데이터 항목의 색인 후에, 즉 대응하는 데이터 항목이 캐시 내부에 기억되지 않은 것이 알려진 경우에, 이와 같은 부적중 표시자가 설정된다. 따라서, 본 발명은, 추가적인 전용 부품들을 설치할 필요가 없이, 캐시 내부에 "알려진 캐시 부적중"에 관련되는 정보를 기억하는 것으로부터 캐시가 이득을 얻을 수 있게 하는데, 이것은, 기존의 웨이 트랙커를 이용하고, 데이터 항목에 대한 알려진 캐시 부적중의 표시를 포함하도록 웨이 트랙커의 각각의 엔트리(이와 같이 구성하지 않았다면 데이터 항목이 캐시 내부의 어디에 기억되는지의 표시를 제공하는)에 기억된 정보를 확장함으로써 이와 같은 기능이 주어지기 때문이다.
일부 실시예에서, 캐시는, 데이터 항목 식별자들을 기억하는 복수의 태그 엔트리들을 갖고, 상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이 내부의 데이터 항목의 기억 위치에 대응하는 적어도 한 개의 태그 어레이(tag array)의 태그 엔트리에 데이터 항목 식별자를 기억하는 상기 적어도 한 개의 태그 어레이와, 상기 적어도 한 개의 태그 어레이에서 색인 절차를 행하고, 수신된 데이터 항목 식별자의 수신에 응답하여 상기 복수의 웨이들 각각의 상기 데이터 어레이를 액세스하는 액세스 회로를 더 구비하고, 상기 웨이 트랙커는 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자 사이의 일치에 응답하여, 상기 적어도 한 개의 태그 어레이에 있어서 상기 액세스 회로에 의한 상기 색인 절차의 금지를 일으킨다. 따라서, 적어도 한 개의 태그 어레이가 제공되어 캐시가 색인을 행하여 캐시 내부의 특정한 데이터 항목의 기억 위치(웨이)를 결정할 수 있는 경우에, 웨이 트랙커 내부의 엔트리가 데이터 항목이 캐시의 특정한 웨이에 기억되어 있는지를 표시하거나(따라서, 이 웨이를 결정하기 위한 태그 어레이 색인이 불필요하다) 또는 웨이 트랙커 내부의 엔트리가 이 데이어 항목이 "알려진 캐시 부적중"인지(따라서, 데이터 항목이 캐시 내부에서 찾아지지 않기 때문에 태그 어레이 색인이 불필요하다)를 표시하기 때문에, 웨이 트랙커 내부에 일치가 존재할 때 적어도 한 개의 태그 어레이에서의 색인 절차를 금지함으로써 캐시에 의한 시간 및 에너지 소모가 절감된다. 한가지 관점에서는, 웨이 트랙커는 사실상 태그 어레이의 작은 서브셋으로 볼 수 있으며, 웨이 트랙커가 더 작다는 사실은 이 웨이 트랙커가 더 빨리 액세스될 수 있도록 한다(따라서, 시간에 맞추어, 일치가 발견될 때 실제 태그 어레이 액세스를 금지한다).
일부 실시예에서는, 상기 웨이 트랙커가 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하며, 상기 선택된 웨이의 상기 표시가 이 엔트리에 기억될 때, 상기 액세스 회로에 의한 상기 선택된 웨이를 제외한 상기 복수의 웨이들 각각의 상기 데이터 어레이에 대한 액세스의 금지를 일으킨다. 따라서, (수신된 데이터 항목 식별자에 의해 식별되는) 요청된 데이터 항목이 기억되어 있는 것으로 알려진 웨이를 웨이 트랙커 내부의 엔트리가 표시하는 경우에, 데이터 항목이 기억되는 것으로 알려진 웨이어서만 액세스가 행해질 필요가 있다는 점에서, 데이터 어레이들에 대한 액세스를 부분적으로 피할 수 있다. 따라서, 다른 웨이들에서 액세스를 행하는 에너지 소모가 절감된다.
일부 실시예에서는, 상기 웨이 트랙커가 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하고, 이 데이터 항목 식별자와 관련하여 상기 부적중 표시자가 기억될 때, 상기 액세스 회로에 의한 상기 복수의 웨이들 전체의 상기 데이터 어레이에 대한 액세스의 금지를 일으킨다. (부적중 표시자가 대응하는 데이터 항목 식별자와 관련하여 설정 및 기억되기 때문에), 데이터 항목이 캐시 내부에 기억되지 않은 것으로 알려진 경우에, 모든 데이터 어레이들에서 액세스를 금지함으로써, 데이터 어레이들을 액세스하는 것과 관련된 에너지 소모를 절감할 수 있다.
일부 실시예에서는, 상기 웨이 트랙커에 기억된 상기 선택된 웨이의 상기 표시가 상기 복수의 웨이들 각각에 대한 디스에이블(disable) 표시자를 포함하고, 상기 액세스 회로는 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하여, 상기 웨이 트랙커의 상기 엔트리 내부의 웨이에 대한 상기 디스에이블 표시자가 설정될 때, 상기 캐시의 웨이의 상기 데이터 어레이에 대한 액세스를 디스에이블한다. 선택된 웨이의 표시는 다양한 방식으로 기억되는데, 예를 들어, 이것은 특정한 웨이에 대한 명시적인 참조일 수도 있지만, 각각의 웨이에 대한 디스에이블 표시자가 제공되는 이들 실시예에서는, 디스에이블 표시자를 사용하여 대응하는 데이터 어레이에 대한 액세스를 디스에이블할 수 있다(즉, 이 데이터 어레이에서는 액세스가 행해지지 않는다).
일부 실시예에서는, 상기 웨이 트랙커 내부의 상기 부적중 표시자의 기억은 상기 복수의 웨이들 전체에 대한 디스에이블 표시자 전체를 설정하는 것을 포함한다. 따라서, 모든 이용가능한 디스에이블 표시자들(즉, 모든 웨이들에 대해)을 설정함으로써, 알려진 캐시 부적중에 대해 캐시의 웨이들에 대한 액세스가 행해지지 않게 되는 것이 보장된다.
일부 실시예에서, 상기 캐시는 메모리 계층의 일부를 구성하고, 상기 캐시는 레벨 1 캐시이다. 레벨 1 캐시는 일반적으로 응답 속도에 관해 메모리 계층에서 가장 엄격한 요건을 갖지만(즉, 가장 빠른 응답시간 요건), 데이터 처리장치의 처리 소자(예를 들어, 프로세서 코어)에 대한 필요한 근접성으로 인해 (집적회로 내부에서의 설치면에서) 가장 작은 사용가능한 면적을 갖는 일이 많다. 따라서, 특정한 데이터 항목이 캐시에 기억되는 웨이의 표시와 알려진 캐시 부적중의 표시 모두를 기억할 수 있는 본 발명의 능력은 레벨 1 캐시에 특히 응용가능성을 갖는다. 더구나, 레벨 1 캐시에서의 전형적인 데이터 액세스 패턴은 본 발명을 특히 유용하게 할 수 잇다, 구체적으로는, 복수의 데이터 캐시 요구가 이들 요구가 레벨 2(또는 더 하위의) 캐시에 도착할 때까지는 걸러지지만, 최저 레벨(L1) 캐시에서는 이것이 일반적으로 해당하지 않으며, 레벨 1 캐시는 동일한 캐시 라인을 모두 필요로 하는 복수의 다른 명령들로부터 색인을 볼 수 있으며, 이 때문에 미처리된 부적중 요구가 아직 존재하지만, 이것이 보통 L1 캐시 색인을 금지할 수 있을 정도로 충분히 빨리 알려지지 않는다.
일부 실시예에서, 상기 웨이 트랙커는 액세스가 시도되는 요구된 데이터 항목과 관련된 기억 속성 정보를 더 수신하고, 상기 요구된 데이터 항목이 캐시 불가능(non-cacheable)한 것으로 상기 기억 속성 정보가 표시하는 경우에, 상기 웨이 트랙커가 상기 요구된 데이터 항목에 대해 설정된 상기 부적중 표시자를 갖는 상기 웨이 트랙커 내부의 엔트리의 생성을 금지하도록 구성된다. 데이터 항목의 캐시 불가능성은 이 캐시 내부의 데이터 항목에 대한 색인이 캐시 부적중을 일으키는 한가지 이유일 수 있으며, 따라서, 요구된 데이터 항목이 캐시 불가능하다는 정보가 이용가능한 경우에는, 설정된 부적중 표시자를 갖는 웨이 트랙커 내부의 엔트리의 생성을 억제하는 것은, 캐시 가능한 다른 데이터 항목에 대해 웨이 트랙커의 엔트리를 이용할 수 있게 할 수 있으며, 따라서 이 때문에 본 발명의 웨이 트랙커 내부에 관련된 정보를 기억하는 이점이 얻어진다.
일부 실시예에서는, 상기 기억 속성 정보가 변환 색인 버퍼에서 수신된다. 기억 속성 정보는 다수의 소스로부터 수신되어도 되고, 일반적으로는 정보가 결국 특정한 메모리 위치에 대한 페이지 테이블에 기억되는 하지만, 이 경우에는, 정보가 이 메모리 위치에 있는 데이터 항목에 대한 액세스를 시도하는 처리 소자와 관련되어 설치되는 변환 색인 버퍼(TLB)로부터 수신되어 이와 같은 속성 정보에 대한 더 신속한 액세스를 제공한다. 사실상, 변환 색인 버퍼 그 자체는 본 발명이 적용되는 캐시의 변종이다.
일부 실시예에서, 상기 데이터 항목 식별자는 상기 데이터 항목에 대한 메모리 어드레스의 적어도 일부이다. 데이터 항목 식별자는, 다양한 형태를 취하지만, 데이터 항목의 전체 메모리 어드레스를 포함하거나, 메모리 어드레스의 일부가 데이터 항목을 고유하게 식별하는데 충분하다면, 메모리 어드레스의 일부를 포함해도 된다.
일부 실시예에서, 웨이 트랙커의 각각의 엔트리는 데이터 항목 식별자 확장자(extender)를 더 포함하고, 상기 웨이 트랙커는, 상기 데이터 항목 식별자 확장자에 응답하여, 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자 사이에 일치가 존재하는지 여부를 판정할 때 소정의 식별자 부분을 무시하도록 설정된다. 따라서, 이와 같은 데이터 항목 식별자 확장자는, 예를 들어, 수신된 데이터 항목 식별자들의 범위가 웨이 트랙커의 엔트리에 기억된 특정한 데이터 항목 식별자와 일치하는 것으로 확인할 수 있도록 한다. 따라서, 웨이 트랙커의 엔트리들 내부에 추가적인 데이터 항목 식별자들을 기억할 필요가 없이, 이 범위에 속하는 모든 수신된 데이터 항목 식별자(예를 들어, 메모리 어드레스)가 일치하는 것으로 확인될 수 있으며, 이 일치에 응답하기 위한 전술한 기술이 구현될 수 있다.
일부 실시예에서, 상기 소정의 식별자 부분은 상기 데이터 항목 식별자의 최하위(least significant) 부분을 포함한다. 일치를 발견하기 위해 무시되는 부분은 다양한 형태를 취할 수 있지만, 데이터 항목 식별자의 최하위 부분을 무시하는 것은 웨이 트랙커의 엔트리 내부의 한 개의 데이터 항목 식별자에 대해 인접한 범위의 메모리 어드레스들(예를 들어, 2개의 연속된 메모리 어드레스들)이 일치될 수 있도록 한다. 실행중인 데이터 처리 명령의 속성은 일부의 연속된 메모리 어드레스들이 연속적으로 액세스되도록 하는 것으로, 이와 같은 실시예들의 특수한 응용가능성을 제공한다.
적어도 일부 실시예에서는, 데이터 항목들을 캐싱하는 방법으로서, 캐시의 복수의 웨이들 중에서 한 개의 웨이의 데이터 어레이에 데이터 항목을 기억하는 단계와, 복수의 엔트리들을 포함하는 웨이 트랙커의 한 개의 엔트리에 데이터 항목 식별자를 기억하는 단계와, 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억하는 단계와, 상기 웨이 트랙커에 기억된 각각의 데이터 항목 식별자와 관련된 부적중 표시자를 기억하는 단계와, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생한 경우에 상기 부적중 표시자를 설정하는 단계를 포함하는 데이터 항목 캐싱방법을 제공한다.
적어도 일부 실시예는, 캐시의 복수의 웨이들 중에서 한 개의 웨이의 데이터 어레이에 데이터 항목을 기억하는 수단과, 복수의 엔트리들을 포함하는 웨이 트랙커의 한 개의 엔트리에 데이터 항목 식별자를 기억하는 수단과, 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억하는 수단과, 상기 웨이 트랙커에 기억된 각각의 데이터 항목 식별자와 관련된 부적중 표시자를 기억하는 수단과, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생한 경우에 상기 부적중 표시자를 설정하는 수단을 구비한 캐시를 제공한다.
도 1은 일 실시예의 데이터 처리장치를 개략적으로 나타낸 것이다. 데이터 처리장치는 프로세서 코어(10)를 구비한다. 프로세서 코어(10)는 실행 파이프라인(120을 갖고, 이 실행 파이프라인을 사용하여 프로세서 코어(10)가 데이터 처리 연산을 행한다. 이들 데이터 처리 연산을 행함에 있어서, 프로세서 코어(10)는 데이터 항목들이 기록되는 메모리(14)에서 데이터 항목들을 검색한다. 이때, "데이터 항목"은 명령과 명령에 따른 처리의 대상인 데이터 값들을 말한다. 메모리(14)는, 레벨 3(L3) 캐시(16), 레벨 2(l2) 캐시(18) 및 2개의 레벨 1(L1) 캐시 20 및 22로 더 구성되는 메모리 계층의 일부를 구성하며, 이때 L1 캐시 20은 전용 명령 캐시이고 L1 캐시 22는 전용 데이터 캐시이다. 실행 파이프라인(12)과 메모리(14) 사이의 이들 3가지 레벨의 캐시를 설치하는 것은, 본 발명이 속하는 기술분야의 당업자에게 자명하므로 간략을 위해 본 명세서에서는 설명하지 않는 방식으로, 이들 데이터 항목이 액세스될 때마다 메모리(14)에서 데이터 항목들을 빈번하게 색인하는 것과 관련된 대기시간을 프로세서 코어(10)가 피할 수 있게 한다.
특정한 데이터 항목에 대한 액세스를 시도할 때, 실행 파이프라인은 가상 어드레스에 의해 이 데이터 항목을 명시하고, 캐시 계층 및 메모리에서 사용하기 위해 이 가상 어드레스가 물리 어드레스로 변환되어야 한다. 실행 파이프라인에 의해 사용된 가상 어드레스들과 캐시 및 메모리에서 사용된 물리 어드레스들 사이의 변환은 메모리(14)에 기억된 페이지 테이블에 주어지지지만, 가상 어드레스로부터 물리 어드레스로의 더 빠른 변환을 가능하게 하기 위해, 이들 변환도 캐시에 기억되고, μTLB 24 및 26과 TLB 28 및 30은 그들 자신의 변환 계층을 구성하며, 이때 TLB는 μTLB에 대한 보조 캐시이며, 이들 모두를 사용하여 L1 캐시에 대한 요구를 만족시키는데, 예를 들어, μTLB에서 l1 캐시 요구가 부적중하면, (이들 (μ)TLB가 일부를 구성하는) MMU가 TLB를 검사하여, L1 캐시 색인을 만족시킨다.
데이터 처리장치는, L2 캐시(18) 및 L3 캐시(16)를 거쳐 메모리(14)에 대한 액세스를 공유하는 또 다른(추가적인) 프로세서 코어(32)를 더 구비한다. 내부적으로는, 이 추가적인 프로세서 코어(32)는 프로세서 코어(10)와 유사하게 구성된다. 캐시 계층 및 메모리(14) 내부의 데이터 항목들에 대한 공유된 액세스로 인해, 일관성(coherency) 제어(34)가 더 설치되며, 이 일관성 제어는, 프로세서 코어(10) 및 추가적인 프로세서 코어(32)에 의해 데이터 항목들에 대해 행해진 액세스를 감시하고, 적절한 일관성 프로토콜을 따르도록 보장함으로써, 이들 2개의 프로세서 코어들이 동일한 데이터 항목들을 액세스하고 수정하는 것으로 인한 충돌이 발생하지 않게 한다. 이와 같은 일관성 프로토콜의 구현에 대한 상세내용은 본 발명이 속하는 기술분야의 당업자에게 있어서 자명하므로, 간략을 위해 설명하지 않는다.
도 2는, 예를 들어 도 1에 도시된 L1 캐시들 20 및 22에서 구현되는 것과 같은, 일 실시예에서 본 발명에 따른 캐시의 구성을 더욱 상세히 나타낸 개략도이다. 캐시(40)는 세트 연상형 캐시로서, (메모리 어드레스에 의해 명시된) 특정한 데이터 항목이 캐시 내부의 복수의 위치에, 즉 캐시의 복수의 웨이들 중에서 한 개에 기억된다. 간략한 예시를 위해, 도 2에 도시된 캐시(40)는 단지 2개의 웨이를 갖지만, 본 발명은 특정한 수의 웨이에 한정되지 않으며, 예를 들어, 4개 또는 8개의 웨이(등등)를 갖는 캐시를 구비한 다른 실시예들도 생각된다. 따라서, 도 2를 참조하면, 캐시(40)에 기억된 특정한 데이터 항목이 웨이 0의 데이터 어레이 42 또는 웨이 1의 데이터 어레이 44에 기억된다. 데이터 어레이들 42 및 44와 관련하여 태그 어레이(46)도 설치되는데, 캐시가 (메모리 어드레스에 의해 명시된) 요구된 데이터 항목이 캐시에 기억되어 있는지 여부를 판정하기 위해 색인 절차를 캐시가 행할 수 있도록 하기 위해, 이 태그 어레이 내부에는 데이터 어레이들 중에서 한 개에 기억된 데이터 항목의 메모리 어드레스의 태그 부분이 기억된다. 태그 어레이(46)는 사실상, 2개의 부분, 즉 웨이 0에 대응하는 제 1 태그 어레이와 웨이 1에 대응하는 제 2 태그 어레이로 분할된다.
캐시(40)의 액세스 회로(48)는, 태그 어레이(46)에서의 색인 절차를 형성하고, 수신된 메모리 어드레스에 근거하여 데이터 어레이들 42 및 44를 액세스하도록 구성된다. 본 발명의 당업자는 세트 연산형 캐시의 이와 같은 특징에 친숙하므로, 색인 절차의 추가적인 설명은 하지 않는다. 그러나, 본질적으로는, 색인 및 액세스 절차는 액세스 회로(48)가 메모리 어드레스의 인덱스 부분을 이용하여 태그 어레이(46) 및 데이터 어레이들 42 및 44 내부의 특정한 엔트리들의 세트를 선택하는 것을 포함하며, 메모리 어드레스의 태그 부분이 웨이 0에 대한 태그 어레이 또는 웨이 1에 대한 태그 어레이에 기억된 태그 부분과 일치하는 경우에는, 캐시 "적중"이 발견되는데, 즉 요구된 데이터 항목이 대응하는 데이터 어레이(즉, 42 또는 44)에 기억된 것으로 알려진다.
태그 어레이와 그후의 데이터 어레이들의 순차적인 참조(referencing) 및 액세스와 관련된 지연을 피하기 위해, 동일한 인덱스를 사용하여, 태그 어레이(46)에서 행해지는 색인 절차와 병렬로 데이터 어레이 42 및 데이터 어레이 44의 대응하는 엔트리들을 판독한다. 태그 어레이(46)에서의 색인으로부터 발생한 적중이 선택기(48)에 전달되고, 그후 선택기는 이에 따라 멀티플렉서(50)를 조정하여, 필요한 데이터 항목이 출력되도록 한다. 색인 절차에서 캐시 부적중이 발생하면(즉, 수신된 어드레스의 태그 부분이 어느 한 개의 태그 어레이의 인덱스된 엔트리에 기억된 태그 부분들과 일치하지 않으면), 선택기(49)는 데이터 어레이 42 또는 44에서 판독된 데이터 항목들 중에서 어느 한 개가 출력되지 않도록 금지한다. 캐시 적중 또는 캐시 부적중이 발생했는지 여부에 무관하게, 색인 절차의 결과는 제어부(52)에도 전달되며, 제어부는 캐시(40)의 전체적인 제어를 유지하고, 예를 들어, 캐시 부적중이 발생할 때 다음 레벨의 캐시 계층으로 신호를 전달하여, 요구된 데이터 항목이 이 다음 레벨의 캐시 계층에서 검색되도록 하거나 요구가 더 전달되도록 한다.
본 발명에 따르면, 캐시(40)는 웨이 트랙커(54)를 더 구비하는데, 이 웨이 트랙커는 도 2에 도시된 실시예에서는 4개의 엔트리들(56)을 갖는다. 본 발명의 목적을 위해, 이들 엔트리들(56) 각각은, 캐시에 기억된 데이터 항목을 고유하게 식별하는데 충분한 어드레스 정보와, 유효성 정보, 웨이 정보 및 "알려진 캐시 부적중" 정보를 기억하도록 구성되는 것으로 도시되어 있다. 더구나, 웨이 트랙커는, 태그 어드레스 액세스를 전부 건너뛸 수 있도록 하기 위해, 이와 같이 구성하지 않았다면 태그 어레이에서 발생하는 추가적인 캐시 상태 정보(본 명세서에서는 명시적으로 도시하지 않는다)를 기억한다. 웨이 트랙커(54) 내부의 엔트리들(56)의 관리를 용이하게 하기 위해, 유효성 정보, 예를 들어, 대응하는 엔트리가 유효한지 여부를 표시하는 단일 비트가 설치된다. 웨이 정보는 웨이 트랙커(54)에 의해 사용되어, (메모리 어드레스에 의해 명시된) 대응하는 데이터 항목이 캐시 내부의 어디에 기억되어 있는 것으로 알려지는지, 구체적으로는 캐시의 어느 웨이이 이 데이터 항목이 기억되는지의 표시를 기억한다. 따라서, 캐시(40)에 의해 메모리 어드레스가 검색될 때, 제어부(52)는 웨이 트랙커(54)의 엔트리들을 참조하여 검사를 행하여, 웨이 트랙커(54)의 엔트리(56)에 기억된 대응하는 (유효한) 어드레스가 존재하는지 여부를 판정하고, 존재하는 경우에는, 캐시의 어느 웨이이 이 데이터 항목이 기억되어 있는 것으로 표시되는지를 판정한다. 이 정보에 근거하여, 웨이 트랙커(54)는 액세스 회로(48)에게 유효한 어드레스 일치가 발견된 것을 전달하고, 그 결과, 액세스 회로(48)는 태그 어레이(46)의 색인을 금지한다(어느 웨이 42 또는 44에 요구된 데이터 항목이 기억되어 있는지 알고 있으므로, 태그 어레이(46)에서 색인 절차를 행하는 시간 및 에너지 소모를 절감할 수 있기 때문이다). 더구나, 액세스 회로(48)는 웨이 트랙커(54)의 대응하는 엔트리(56)에 의해 표시된 웨이 이외의 다른 모든 웨이들을 디스에이블시켜, 요구된 데이터 항목이 기억되어 있는 것으로 알려진 데이터 어레이만을 액세스하고, 이 데이터 어레이로부터 데이터 항목이 판독된다. 액세스 회로(48)로부터 선택기(49)로의 오버라이드(override) 신호는, 선택기(49)가 멀티플렉서(50)에 대하여 적절한 데이터 항목을 출력하게 만들 수 있다.
웨이 트랙커(54)의 엔트리들(56)은 "알려진 캐시 부적중"(known cache miss: KCM) 정보를 더 포함한다. 본 실시예에서는 KCM 상태인지 아닌지를 표시하는 단일 비트로서 주어질 수 있는 이와 같은 표시를 사용하여, (동일한 엔트리에 잇는 어드레스 정보에 의해 명시된) 이 데이터 항목에 대한 이전의 색인이 캐시 부적중을 발생한 것을 표시한다. 즉, 대응하는 데이터 항목이 캐시(40) 내부에 현재 기억되어 잇다는 것이 알려진다. 따라서, 태그 어레이(46)에 대해 행해진 색인 절차가 캐시 부적중을 발생하는 경우에, 이것이 제어부(52)로 전달되고, 제어부는 웨이 트랙커(54) 내부의 대응하는 엔트리가 생성되게 하거나 설정된 KCM 표시자로 갱신되게 한다. 따라서, 캐시(40)에 의해 수신된 요구되는 데이터 항목의 메모리 어드레스가 웨이 트랙커(54) 내부의 유효한 엔트리와 일치할 때, KCM 표시자가 설정되면, 요구된 데이터 항목이 어느 쪽의 데이터 어레이에도 기억되어 있지 않은 것이 알려지고 각각의 데이터 어레이를 액세스하는 시간 및 에너지 소모를 절감할 수 있기 때문에, 웨이 트랙커(54)는 액세스 회로(48)가 데이터 엔트리 42 및 데이터 엔트리 44에 대한 액세스를 디스에이블시킨다. 이때, 웨이 트랙커는 유효한 엔트리에 대해 웨이 표시 및 KCM 표시자를 동시에 설정할 수 없도록 구성됨으로써, 웨이 트랙커 내부의 유효한 엔트리를 사용하여 캐시 내부의 특정한 데이터 항목의 기억 위치를 표시하거나 또는 캐시로부터 특정한 데이터 항목의 부재를 표시할 수 있지만, 두가지는 표시할 수 없도록 할 수 있다는 것에 주목하기 바란다. 또한, 도 2에서도 나타낸 것과 같이, 캐시(40)에 의해 수신된 어드레스는 TLB(또는 μTLB)로부터 추가적인 속성 정보를 수반해도 되며, 이것은 요구된 데이터 항목이 캐시 가능한지 아닌지에 대한 정보를 포함한다. 요구된 데이터 항목이 캐시 불가능한 것으로 표시되는 경우에, 제어부(52)는 웨이 트랙커(54) 내부의 대응하는 엔트리의 생성을 금지하도록 구성된다. 이때, 전술한 것과 같이, 웨이 트랙커는 사실상 태그 어레이(들)의 작은 서브셋으로 구현되어도 되고, 이에 따라 태그 어레이(들) 내부의 대응하는 엔트리가 갱신될 때 웨이 트랙커 내부의 엔트리들이 무효화되거나 다른 방식으로 적절히 갱신되어야 한다.
도 3a는 일 실시예에 있어서의 웨이 트랙커의 구성을 개략적으로 나타낸 것이다. 도 2에 도시된 웨이 트랙커(54)의 엔트리들(56)과 마찬가지로, 이 웨이 트랙커의 엔트리들(60)은 각각의 엔트리에 대한 유효성 및 어드레스 정보를 유지한다. 더구나, 각각의 엔트리(60)는 "확장 일치(extend match)" 표시자와, 캐시의 각각의 웨이에 대한 디스에이블 표시자를 유지한다. 도 3a의 실시예에서는, 웨이 트랙커가 2개의 웨이 캐시와 관련되어 설치되므로, 각각의 엔트리(60)에 대해 2개의 디스에이블 표시자들이 존재한다. 각각의 엔트리에 대해 유지된 디스에이블 정보는, 도 2의 웨이 트랙커(54)의 각각의 엔트리(56)에 대해 기억된 "웨이" 및 "KCM" 정보를 결합한다. 엔트리 62 및 64의 경우에서와 같이, 단지 한 개의 디스에이블 비트가 설정되면, 이것은 요구된 데이터 항목이 디스에이블되지 않은 웨이에 기억된다는 것을 표시한다. 즉, 엔트리 62에 대해 유효한 어드레스 일치가 발견되는 경우에, 이 데이터 항목이 웨이 0에 기억되어 있다는 것이 알려진다. 마찬가지로, 엔트리 64에 대해 유효한 어드레스 일치가 발견되는 경우에는, 이 데이터 항목이 웨이 1에 기억되어 있다는 것이 알려진다. 역으로, 두 개의 디스에이블 비트가 설정되면(또는 더욱 일반적으로는 모든 웨이들에 대해 모든 디스에이블 비트들이 설정되면), 이것은 도 2의 실시예에서 KCM 비트가 설정되는 것과 동등하다. 즉, 엔트리 66에 대해 유효한 어드레스 일치가 발견되는 경우에는, 대응하는 데이터 항목에 대한 요구가 이전에 캐시 부적중을 발생하였고, 대응하는 데이터 항목이 현재 캐시에 기억되어 있지 않다는 것이 알려진다. 이때, 도 2의 실시예와 유사하게, 도 3에 도시된 웨이 트랙커는 유효한 엔트리에 대해 두 개의(모든) 웨이 디스에이블을 0으로 설정할 수 없도록 구성됨으로써, 웨이 트랙커 내부의 유효한 엔트리가 캐시 내부의 특정한 데이터 항목의 기억 위치를 표시하거나 또는 캐시로부터 특정한 데이터 항목의 부재를 표시하는데 사용될 수 있지만, 이들 두가지를 표시하지 않는다. 이때, 도시된 실시예에서는, 유효한 비트가 웨이 트랙커로부터 소거될 수도 있으며, 엔트리가 유효한지 여부를 표시하기 위해 개별적인 디스에이블들이 대신에 총괄하여 사용될 수도 있다.
웨이 트랙커의 각각의 엔트리의 디스에이블 비트들을 이용하기 위한 액세스 회로의 구성을 도 3a의 하부에 도시하였는데, 이때 각각의 웨이에 대한 디스에이블 값이 AND 게이트들 68 및 70(이것은 유효한 어드레스 일치가 발견되었는지 여부를 표시하는 값을 다른 입력으로 취한다)과 결합되어, 각각의 웨이에 대한 디스에이블 신호를 형성한다. 유효한 어드레스 일치가 발견되었는지 여부를 표시하는 값은 태그 어레이 디스에이블 신호로 직접 이용되어도 된다. 따라서, 웨이 트랙커 내부의 엔트리(60)에 잇는 엔트리에 대해 유효한 어드레스 일치가 발견될 때마다, 태그 어레이에서의 색인이 디스에이블되는 한편, 이 엔트리에 대해 기억된 대응하는 디스에이블 비트들은 데이터 어레이들 중에서 어느 것이 디스에이블되는지 판정한다. 단지 한 개의 웨이가 엔트리 내부에 설정된 디스에이블 비트를 갖지 않는 경우에는, 나머지 모든 데이터 어레이들이 디스에이블되고, (요구된 데이터 항목이 기억된 것으로 알려진) 디스에이블되지 않은 웨이만 액세스된다. 두 개의(또는 더욱 일반적으로는 모드) 웨이가 웨이 트랙커의 엔트리 내부에 설정된 디스에이블 비트들을 갖는 경우에는, 이 데이터 항목이 이전에 캐시 부적중을 발생하였고 현재 캐시 내부에 기억되어 있지 않다는 것이 알려져 있으므로, 모든 데이터 어레이들이 디스에이블된다.
이때, (메모리 어드레스에 의해 명시된) 특정한 데이터 항목에 대한 요구가 캐시 부적중을 발생할 때에는, 이것이 일반적으로 라인 필(line fill) 처리를 개시하고, 이 라인 필 처리를 사용하여 요구된 데이터 항목이 더 상위의 캐시 레벨이나 메모리에서 검색되고, 이 데이터 항목이 캐시로 복귀하면, (이 데이터 항목의 메모리 어드레스에 의해 정의된) 캐시 내부의 대응하는 라인이 이 새로운 콘텐츠로 갱신되어, 그후 데이터 항목이 캐시에 기억된다는 점에 주목하기 바란다. 이와 같은 라인 필 처리는 본 발명의 당업자에게 있어서 자명하다. 첫 번째 캐기 부적중과 라인 필 처리의 완료 사이의 중간 기간에, 캐시의 어레이에 대한 액세스를 하지 않음으로써 본 발명의 응용 가능성에 대한 기회가 남기 때문에, 캐시 내부의 캐시 부적중이 라인 필 처리를 발생할 수 있다는 사실에도 불구하고, 본 발명은, 특히 알려진 캐시 부적중을 표시할 수 있는 능력에 대해, 유익한 것으로 밝혀졌다. 이것은, 예를 들어, 특정한 데이터 항목이 프로그램 코드의 루프에서 참조되는 경우이며, 이때 대응하는 명령들을 실행하는 처리 소자가 연속적으로 이 데이터 항목에 대한 액세스를 반복적으로 요구하고, 이에 따라 라인 필 처리가 완료하기 전에 캐시가 이 데이터 항목에 대한 복수의 요구를 수신하도록 이 루프가 구성된다.
도 3b는 도 3a의 실시예에 나타낸 "확장 일치" 표시자의 이용을 개략적으로 나타낸 것이다. 이 표시자가 설정되면, 수신된 어드레스와 웨이 트랙커의 웨이에 기억된 어드레스 정보 사이에 유효한 어드레스 일치가 발견되는지 여부를 판정하는 경우에, 웨이 트랙커가 어드레스들의 일부를 무시하도록 구성된다. 도 3b에 개략적으로 나타낸 것과 같이, 이와 같은 무시된 부분은 예를 들어 어드레스들의 최하위 부분일 수 있으며, 이와 같은 구성은, 웨이 트랙커의 엔트리에 기억된 정보가 (한개의 메모리 어드레스에 의해 참조되는) 구체적인 데이터 항목에만 관련되는 것이 아니라, 웨이 트랙커 내부의 한 개의 엔트리를 이용하여 메모리 어드레스들의 범위(즉, 2개 이상)에 관련된 정보를 기억할 수 있는 효과를 갖는다. 일치가 발견되는지 여부를 판정할 때 어드레스들의 최하위 비트들이 무시되는데, 이때 어드레스의 이들 최하위 비트들은 특정한 메모리 어드레스 내에서 바이트 명시(byte specification)를 허용하므로, 도 3b에 나타낸 것과 같이, 복수의 데이터 항목들로 일치 가능성을 확장시키기 위한 무시된 부분이 이 위에 있는 메모리 어드레스 부분이 된다. 이때, 한 개의 라인의 (예를 들어, 갱신에 의한) 무효화가 더 넓은 그룹의 라인들이 무효화되게 한다는 점에서, 이와 같은 더 넓은 방식의 "일치"의 구성이 이와 같은 방식으로 웨이 트랙커 내부에서 추적되는 캐시 라인들의 그룹의 대응하는 유효성으로도 확장된다는 점에 주목하기 바란다.
도 4는 일 실시예에 따라 취하는 단계들의 시퀀스를 나타낸 것이다. 스텝 100에서 흐름이 개시하는 것으로 생각될 수 있는데, 이때 캐시가 새로운 어드레스를 수신할 때까지 흐름이 대기한다. 그후, 흐름이 스텝 102로 진행하여, 이 새로운 어드레스와 관련되어 수신된 속성 정보가, 대응하는 데이터 항목이 캐시 불가능하다는 것을 나타내는지 여부를 판정한다. 그런 경우에는, (스텝 104에서) 캐시 내부의 색인 및 모든 액세스가 금지되고(즉, 태그 및 데이터 어레이들 모두에서), 웨이 트랙커가 대응하는 엔트리를 생성하는 것이 방지된다. 그렇지 않은 경우에는(표시된 데이터 항목이 캐시 가능한 경우에는), 스텝 106으로 흐름이 진행하여, 웨이 트랙커 내부의 엔트리에 대해 유효한 어드레스 일치가 발견되는지 여부를 판정한다. 대응하는 일치가 발견되지 않는 경우에는, 스텝 108로 흐름을 진행하여, 캐시의 태그 어드레스들의 색인 및 모든 데이터 어레이들에 대한 액세스가 행해진다. 태그 어레이에서의 색인의 결과로써, 스텝 110에서, 캐시 부적중 또는 캐시 적중이 발생하였는지를 판정한다. 캐시 적중에 대해서는, 스텝 112로 흐름이 진행하여, 웨이 트랙커 내부의 유효한 엔트리가 만들어지고, 데이터 항목이 현재 기억되어 있는 것으로 알려지는 웨이를 표시한다. 그후, 스텝 114에서, 대응하는 데이터 항목이 출력되고 스텝 100으로 흐름이 복귀된다. 그러나, 스텝 110에서, 캐시 부적중이 일어나면, 스텝 116에서, 설정된 "알려진 캐시 부적중" 표시자를 갖는 웨이 트랙커 내부에 유효한 엔트리가 만들어진다. 이때, 전술한 설명에 따르면, 이것은 한 개의 "KCM" 비트 등의 명시적인 표시이거나, 이와 달리 캐시의 각각의 웨이에 대한 디스에이블 비트들을 설정하는 조합일 수도 있다. 그후, 이와 같은 데이터 항목에 대한 요구가 스텝 118에서 메모리 계층으로 전달되고, 스텝 100으로 흐름이 복귀한다.
스텝 106으로 되돌라가, 이와 같이 새롭게 수신된 어드레스에 대한 웨이 트랙커 내부에 유효한 어드레스 일치가 존재하는 것으로 밝혀지면, 스텝 120으로 흐름이 진행하여, 캐시의 태그 어레이의 색인이 디스에이블된다. 그후, 스텝 122에서, 웨이 트랙커가 알려진 캐시 부적중을 표시하는지 여부를 판정한다. 표시하는 경우에는, 스텝 124를 거쳐 흐름이 진행하여, 모든 데이터 어레이 액세스들이 디스에이블되고 그후 118을 거쳐 처리가 진행한다. 그러나, 스텝 122에서 웨이 트랙커가 알려진 캐시 부적중을 표시하지 않는 경우에는, 스텝 126을 거쳐 흐름이 진행하여, 표시된 기억 웨이를 제외한 모든 기억 웨이에 대해 데이터 어레이 액세스가 디스에이블되고, 스텝 128에서, 데이터 항목이 기억된 웨이에서 판독된 결과적으로 얻어진 데이터 항목이 출력되고, 스텝 100으로 흐름이 되돌아간다.
전체적으로 요약하면, 복수의 웨이들을 구비하고, 상기 복수의 웨이들의 각각의 웨이가 데이터 어레이를 포함하고, 상기 캐시에 의해 기억된 데이터 항목이 상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이에 기억된다. 캐시의 웨이 트랙커는 복수의 엔트리들을 포함하고, 상기 복수의 엔트리들의 각각의 엔트리는, 데이터 항목 식별자를 기억하고, 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억한다. 웨이 트랙커의 각각의 엔트리는 상기 데이터 항목 식별자와 관련된 부적중 표시자를 더 기억하기 위한 것이고, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생한 경우에 부적중 표시자가 상기 캐시에 의해 설정된다. 또한, 이에 대응하는 데이터 캐싱 방법도 제공된다.
본 발명에서, 단어 "하도록 구성된"은 장치의 구성요소가 정의된 동작을 행할 수 있는 구성을 갖는다는 것을 의미하기 위해 사용된다. 이와 관련하여, "구성"은 하드웨어 또는 소프트웨어의 배치 또는 상호접속 방식을 의미한다. 예를 들어, 장치는 정의된 동작을 제공하는 전용 하드웨어를 갖거나, 프로세서 또는 기타의 처리장치가 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은 이 장치의 구성요소가 정의된 동작을 제공하기 위해 어떤 식으로 변경될 필요가 있는 것을 시사하는 것은 아니다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (14)

  1. 캐시로서,
    복수의 웨이들을 구비하고, 상기 복수의 웨이들의 각각의 웨이가 데이터 어레이를 포함하고, 상기 캐시에 의해 기억된 데이터 항목이 상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이에 기억되고,
    상기 캐시는, 복수의 엔트리들을 포함하는 웨이 트랙커를 더 구비하고, 상기 복수의 엔트리들의 각각의 엔트리는, 데이터 항목 식별자를 기억하고, 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억하기 위한 것이고, 상기 웨이 트랙커에 기억된 상기 선택된 웨이의 상기 표시는 상기 복수의 웨이들 각각에 대한 디스에이블 표시자를 포함하고,
    상기 각각의 엔트리는 상기 데이터 항목 식별자와 관련된 부적중 표시자를 더 기억하기 위한 것이고, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생하고 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 상기 캐시에 없다는 것을 표시할 경우에 상기 부적중 표시자가 상기 캐시에 의해 설정되고,
    데이터 항목 식별자들을 기억하는 복수의 태그 엔트리들을 갖고, 상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이 내부의 데이터 항목의 기억 위치에 대응하는 적어도 한 개의 태그 어레이의 태그 엔트리에 상기 데이터 항목 식별자를 기억하는 상기 적어도 한 개의 태그 어레이와,
    상기 적어도 한 개의 태그 어레이에서 색인 절차를 행하고, 수신된 데이터 항목 식별자의 수신에 응답하여 상기 복수의 웨이들 각각의 상기 데이터 어레이를 액세스하는 액세스 회로를 더 구비하고,
    상기 웨이 트랙커는 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자 사이의 일치에 응답하여, 상기 적어도 한 개의 태그 어레이에 있어서 상기 액세스 회로에 의한 상기 색인 절차의 금지를 일으키고,
    상기 액세스 회로는 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하여, 상기 웨이 트랙커의 상기 엔트리 내부의 웨이에 대한 상기 디스에이블 표시자가 설정될 때, 상기 캐시의 웨이의 상기 데이터 어레이에 대한 액세스를 디스에이블시키고,
    상기 캐시는 상기 복수의 웨이들 전체에 대한 상기 디스에이블 표시자 전체를 설정하여 상기 웨이 트랙커에 상기 부적중 표시자를 기억하도록 구성되는 것을 포함하는, 캐시.
  2. 삭제
  3. 제 1항에 있어서,
    상기 웨이 트랙커가 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하며, 상기 선택된 웨이의 상기 표시가 상기 엔트리에 기억될 때, 상기 액세스 회로에 의한 상기 선택된 웨이를 제외한 상기 복수의 웨이들 각각의 상기 데이터 어레이에 대한 액세스의 금지를 일으키는 캐시.
  4. 제 1항에 있어서,
    상기 웨이 트랙커가 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하고, 이들 데이터 항목 식별자와 관련하여 상기 부적중 표시자가 기억될 때, 상기 액세스 회로에 의한 상기 복수의 웨이들 전체의 상기 데이터 어레이에 대한 액세스의 금지를 일으키는 캐시.
  5. 삭제
  6. 삭제
  7. 제 1항에 있어서,
    상기 캐시는 메모리 계층의 일부를 구성하고, 상기 캐시는 레벨 1 캐시인 캐시.
  8. 제 1항에 있어서,
    상기 웨이 트랙커는 액세스가 시도되는 요구된 데이터 항목과 관련된 기억 속성 정보를 더 수신하고,
    상기 요구된 데이터 항목이 캐시 불가능한 것으로 상기 기억 속성 정보가 표시하는 경우에, 상기 웨이 트랙커가 상기 요구된 데이터 항목에 대해 설정된 상기 부적중 표시자를 갖는 상기 웨이 트랙커 내부의 엔트리의 생성을 금지하도록 구성된 캐시.
  9. 제 8항에 있어서,
    상기 기억 속성 정보가 변환 색인 버퍼에서 수신되는 캐시.
  10. 제 1항에 있어서,
    상기 데이터 항목 식별자는 상기 데이터 항목에 대한 메모리 어드레스의 적어도 일부인 캐시.
  11. 제 1항에 있어서,
    상기 웨이 트랙커의 각각의 엔트리는 데이터 항목 식별자 확장자를 더 포함하고,
    상기 웨이 트랙커는, 상기 데이터 항목 식별자 확장자에 응답하여, 상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자 사이에 일치가 존재하는지 여부를 판정할 때 소정의 식별자 부분을 무시하도록 설정되는 캐시.
  12. 제 11항에 있어서,
    상기 소정의 식별자 부분은 상기 데이터 항목 식별자의 최하위 부분을 포함하는 캐시.
  13. 데이터 항목들을 캐싱하는 방법으로서,
    캐시의 복수의 웨이들 중에서 한 개의 웨이의 데이터 어레이에 데이터 항목을 기억하는 단계와,
    복수의 엔트리들을 포함하는 웨이 트랙커의 한 개의 엔트리에 데이터 항목 식별자를 기억하는 단계와,
    상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억하는 단계-상기 웨이 트랙커에 기억된 상기 선택된 웨이의 상기 표시는 상기 복수의 웨이들 각각에 대한 디스에이블 표시자를 포함하고-와,
    상기 웨이 트랙커에 기억된 각각의 데이터 항목 식별자와 관련된 부적중 표시자를 기억하는 단계와,
    상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생하고 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 상기 캐시에 없다는 것을 표시할 경우에 상기 부적중 표시자를 설정하는 단계와,
    상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이 내부의 데이터 항목의 기억 위치에 대응하는 적어도 한 개의 태그 어레이의 태그 엔트리에 데이터 항목 식별자를 기억하는 단계와,
    상기 적어도 한 개의 태그 어레이에서 색인 절차를 행하는 단계와,
    수신된 데이터 항목 식별자의 수신에 응답하여 상기 복수의 웨이들 각각의 상기 데이터 어레이를 액세스하는 단계와,
    상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자 사이의 일치에 응답하여, 상기 적어도 한 개의 태그 어레이에 있어서 액세스 회로에 의한 상기 색인 절차의 금지를 일으키는 단계와,
    상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하여, 상기 웨이 트랙커의 상기 엔트리 내부의 웨이에 대한 상기 디스에이블 표시자가 설정될 때, 상기 캐시의 웨이의 상기 데이터 어레이에 대한 액세스를 디스에이블시키는 단계, 및
    상기 복수의 웨이들 전체에 대한 상기 디스에이블 표시자 전체를 설정하여 상기 웨이 트랙커에 상기 부적중 표시자를 기억하는 단계를 포함하는, 데이터 항목 캐싱방법.
  14. 캐시의 복수의 웨이들 중에서 한 개의 웨이의 데이터 어레이에 데이터 항목을 기억하는 수단과,
    복수의 엔트리들을 포함하는 웨이 트랙커의 한 개의 엔트리에 데이터 항목 식별자를 기억하는 수단과,
    상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자와 관련하여, 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 선택된 웨이에 기억되어 있다는 것을 표시하기 위한 상기 복수의 웨이들 중에서 상기 선택된 웨이의 표시를 기억하는 수단-상기 웨이 트랙커에 기억된 상기 선택된 웨이의 상기 표시는 상기 복수의 웨이들 각각에 대한 디스에이블 표시자를 포함하고-과,
    상기 웨이 트랙커에 기억된 각각의 데이터 항목 식별자와 관련된 부적중 표시자를 기억하는 수단과,
    상기 데이터 항목 식별자에 의해 식별된 데이터 항목에 대한 색인이 캐시 부적중을 발생하고 상기 데이터 항목 식별자에 의해 식별된 데이터 항목이 상기 캐시에 없다는 것을 표시할 경우에 상기 부적중 표시자를 설정하는 수단과,
    상기 복수의 웨이들 중에서 한 개의 웨이의 상기 데이터 어레이 내부의 데이터 항목의 기억 위치에 대응하는 적어도 한 개의 태그 어레이의 태그 엔트리에 상기 데이터 항목 식별자를 기억하는 수단과,
    상기 적어도 한 개의 태그 어레이에서 색인 절차를 행하고, 수신된 데이터 항목 식별자의 수신에 응답하여 상기 복수의 웨이들 각각의 상기 데이터 어레이를 액세스하는 수단과,
    상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 엔트리 내부의 상기 데이터 항목 식별자 사이의 일치에 응답하여, 상기 색인 절차를 금지하는 수단과,
    상기 수신된 데이터 항목 식별자와 상기 웨이 트랙커의 상기 엔트리 내부의 상기 데이터 항목 식별자 사이의 상기 일치에 응답하여, 상기 웨이 트랙커의 상기 엔트리 내부의 웨이에 대한 상기 디스에이블 표시자가 설정될 때, 상기 캐시의 웨이의 상기 데이터 어레이에 대한 액세스를 디스에이블시키는 수단, 및
    상기 복수의 웨이들 전체에 대한 상기 디스에이블 표시자 전체를 설정하여 상기 웨이 트랙커에 상기 부적중 표시자를 기억하는 수단을 구비하는, 캐시.
KR1020160049785A 2015-05-04 2016-04-25 캐시의 콘텐츠 트랙킹 KR102613645B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/702,972 US9864694B2 (en) 2015-05-04 2015-05-04 Tracking the content of a cache using a way tracker having entries with a cache miss indicator
US14/702,972 2015-05-04

Publications (2)

Publication Number Publication Date
KR20160130707A KR20160130707A (ko) 2016-11-14
KR102613645B1 true KR102613645B1 (ko) 2023-12-14

Family

ID=56027355

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160049785A KR102613645B1 (ko) 2015-05-04 2016-04-25 캐시의 콘텐츠 트랙킹

Country Status (4)

Country Link
US (1) US9864694B2 (ko)
KR (1) KR102613645B1 (ko)
CN (1) CN106126441B (ko)
GB (1) GB2538150B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2537357A (en) * 2015-04-09 2016-10-19 Imagination Tech Ltd Cache operation in a multi-threaded processor
CN107103116B (zh) * 2017-03-27 2019-07-30 中国科学院计算技术研究所 一种复用追踪缓存的触发装置及设计方法
GB2565338B (en) 2017-08-10 2020-06-03 Mips Tech Llc Fault detecting and fault tolerant multi-threaded processors
US10417135B2 (en) * 2017-09-28 2019-09-17 Intel Corporation Near memory miss prediction to reduce memory access latency
US10310978B2 (en) * 2017-09-29 2019-06-04 Intel Corporation Apparatus and method for multi-level cache request tracking
US10534708B1 (en) * 2018-06-25 2020-01-14 Microsoft Technology Licensing, Llc Shallow cache for content replication
US11645178B2 (en) 2018-07-27 2023-05-09 MIPS Tech, LLC Fail-safe semi-autonomous or autonomous vehicle processor array redundancy which permits an agent to perform a function based on comparing valid output from sets of redundant processors
CN109445680B (zh) * 2018-08-20 2020-03-31 华为技术有限公司 一种对硬盘进行管理的方法及装置
US11334495B2 (en) * 2019-08-23 2022-05-17 Arm Limited Cache eviction
KR20210097345A (ko) 2020-01-30 2021-08-09 삼성전자주식회사 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법
US20220004501A1 (en) * 2020-07-02 2022-01-06 Ampere Computing Llc Just-in-time synonym handling for a virtually-tagged cache

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199723A1 (en) * 2003-04-03 2004-10-07 Shelor Charles F. Low-power cache and method for operating same
US20080010566A1 (en) * 2006-06-21 2008-01-10 Chang Tsung-Yung Jonathan Disabling portions of memory with non-deterministic errors
US20130304991A1 (en) * 2012-05-10 2013-11-14 Arm Limited Data processing apparatus having cache and translation lookaside buffer
US20140136796A1 (en) * 2012-11-12 2014-05-15 Fujitsu Limited Arithmetic processing device and method for controlling the same

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212602B1 (en) 1997-12-17 2001-04-03 Sun Microsystems, Inc. Cache tag caching
US6247094B1 (en) 1997-12-22 2001-06-12 Intel Corporation Cache memory architecture with on-chip tag array and off-chip data array
US6321297B1 (en) 1998-01-05 2001-11-20 Intel Corporation Avoiding tag compares during writes in multi-level cache hierarchy
US20090157982A1 (en) * 2007-12-18 2009-06-18 Macinnis Alexander G Multiple miss cache
GB2458295B (en) * 2008-03-12 2012-01-11 Advanced Risc Mach Ltd Cache accessing using a micro tag
JP2011065503A (ja) 2009-09-18 2011-03-31 Renesas Electronics Corp キャッシュメモリシステム及びキャッシュメモリのway予測の制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199723A1 (en) * 2003-04-03 2004-10-07 Shelor Charles F. Low-power cache and method for operating same
US20080010566A1 (en) * 2006-06-21 2008-01-10 Chang Tsung-Yung Jonathan Disabling portions of memory with non-deterministic errors
US20130304991A1 (en) * 2012-05-10 2013-11-14 Arm Limited Data processing apparatus having cache and translation lookaside buffer
US20140136796A1 (en) * 2012-11-12 2014-05-15 Fujitsu Limited Arithmetic processing device and method for controlling the same

Also Published As

Publication number Publication date
US9864694B2 (en) 2018-01-09
CN106126441B (zh) 2021-10-01
US20160328320A1 (en) 2016-11-10
GB2538150A (en) 2016-11-09
CN106126441A (zh) 2016-11-16
GB2538150B (en) 2017-08-30
KR20160130707A (ko) 2016-11-14
GB201605049D0 (en) 2016-05-11

Similar Documents

Publication Publication Date Title
KR102613645B1 (ko) 캐시의 콘텐츠 트랙킹
US8984254B2 (en) Techniques for utilizing translation lookaside buffer entry numbers to improve processor performance
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
US11853226B2 (en) Address translation cache with use of page size information to select an invalidation lookup mode, or use of leaf-and-intermediate exclusive range-specifying invalidation request, or use of invalidation request specifying single address and page size information
US8041894B2 (en) Method and system for a multi-level virtual/real cache system with synonym resolution
US10592424B2 (en) Range-based memory system
US8239657B2 (en) Address translation method and apparatus
TWI646421B (zh) 轉譯後備緩衝器無效抑制
US20160140042A1 (en) Instruction cache translation management
US20090216947A1 (en) System, method and processor for accessing data after a translation lookaside buffer miss
JP2012212440A (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
US9720847B2 (en) Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
US9697137B2 (en) Filtering translation lookaside buffer invalidations
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
GB2468007A (en) Data processing apparatus and method dependent on streaming preload instruction.
US7472225B2 (en) Caching data
CN112840331A (zh) 分层缓存系统中的预取管理
US10831673B2 (en) Memory address translation
US20190034335A1 (en) Cache and method
US9128856B2 (en) Selective cache fills in response to write misses
US20190243778A1 (en) Memory address translation
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
CN114365102A (zh) 转译后备缓冲器失效

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant