CN110688072A - 缓存系统及其运作方法 - Google Patents

缓存系统及其运作方法 Download PDF

Info

Publication number
CN110688072A
CN110688072A CN201910940890.7A CN201910940890A CN110688072A CN 110688072 A CN110688072 A CN 110688072A CN 201910940890 A CN201910940890 A CN 201910940890A CN 110688072 A CN110688072 A CN 110688072A
Authority
CN
China
Prior art keywords
cache
level cache
level
last
parameter
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201910940890.7A
Other languages
English (en)
Other versions
CN110688072B (zh
Inventor
郑贤培
陈忠民
王惟林
赖瑾
杨梦晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
Shanghai Zhaoxin Integrated Circuit Co Ltd
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 Shanghai Zhaoxin Integrated Circuit Co Ltd filed Critical Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority to CN201910940890.7A priority Critical patent/CN110688072B/zh
Priority to US16/662,034 priority patent/US11016892B2/en
Publication of CN110688072A publication Critical patent/CN110688072A/zh
Application granted granted Critical
Publication of CN110688072B publication Critical patent/CN110688072B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • 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)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种缓存系统及其运作方法。所述系统包括上级缓存单元及末级缓存。末级缓存包括目录、多个计数器及寄存器。目录包括状态指示值,此状态指示值指示上级缓存单元对末级缓存的使用状态。前述计数器分别依据状态指示值递增或递减计数值、记录来自上级缓存单元的存取数以及记录上级缓存单元存取末级缓存的存取命中数。依据计数值、存取数及存取命中数选取寄存器的第一参数,以调整上级缓存单元对末级缓存的使用策略。

Description

缓存系统及其运作方法
技术领域
本发明是有关于一种缓存系统及其运作方法,且特别是有关于一种可依上级缓存单元对于末级缓存(last level cache,LLC)的使用情况调整相关存取策略的缓存系统及其运作方法。
背景技术
在多级多核的缓存系统中,在不同核心上的线程(thread)相互对末级共享缓存(last leve lshared cache)的使用进行竞争。对于整个系统而言,末级缓存(last levelcache,LLC)的使用及工作效率为一项重要的议题,且其对于整体效能的影响至关重大。
为了更为完全地使用末级缓存以达到更佳的效能,本领域技术人员有必要针对相关的软件及硬件研发出一种可达到更佳效能的缓存运作机制。
发明内容
有鉴于此,本发明提出一种缓存系统及缓存系统的运作方法,其可提升末级缓存的使用效率,从而改善整体系统的效能。
本发明提供一种缓存系统,包括第一上级缓存单元及末级缓存。末级缓存耦接于第一上级缓存单元,包括目录、多个第一计数器及寄存器。目录包括第一状态指示值,第一状态指示值用于记录第一上级缓存单元对末级缓存的使用状态。前述第一计数器分别执行依据第一状态指示值递增或递减第一计数值、记录来自第一上级缓存单元的第一存取数以及记录第一上级缓存单元存取末级缓存的第一存取命中数的操作。依据第一计数值、第一存取数及第一存取命中数选取该寄存器的第一参数,以调整第一上级缓存单元对末级缓存的使用策略。
本发明提出一种缓存系统的运作方法,其中缓存系统包括相互耦接的第一上级缓存单元及末级缓存,所述方法包括:通过末级缓存的目录的第一状态指示值记录第一上级缓存单元对末级缓存的使用状态;通过末级缓存的多个第一计数器分别执行依据第一状态指示值递增或递减第一计数值、记录来自第一上级缓存单元的第一存取数以及记录第一上级缓存单元存取末级缓存的第一存取命中数的操作;以及依据第一计数值、第一存取数及第一存取命中数选取末级缓存的寄存器的第一参数,以调整第一上级缓存单元对末级缓存的使用策略。
基于上述,本发明提出的缓存系统及其运作方法可通过设置于末级缓存中的目录、寄存器及对应于各上级缓存单元的利用计数器的计数值、存取计数器的存取数及命中计数器的存取命中数调整上级缓存单元对于末级缓存的使用策略。借此,可使得各上级缓单元对于末级缓存的使用策略更具弹性,从而改善整体的运作效能,并避免例如缓存污染等问题。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是依据本发明之一实施例绘示的具有二级缓存架构的处理器示意图。
图2是依据图1实施例绘示的末级缓存中目录的示意图。
图3A是依据图1、图2实施例绘示的以目录记录多级缓存状态的示意图。
图3B是依据图1、图2实施例绘示的以目录记录多级缓存状态的另一示意图。
图3C是依据图1、图2实施例绘示的以目录记录多级缓存状态的又一示意图。
图4是依据图1、图2实施例绘示的第二级缓存示意图。
图5是依据图4绘示的利用配置寄存器结构图。
图6是依据本发明之一实施例绘示的的具有三级缓存架构的处理器示意图。
图7是依据图6实施例绘示的末级缓存中目录的示意图。
图8是依据图6、图7实施例绘示的末级缓存示意图。
图9是依据图8绘示的利用配置寄存器结构图。
图10是依据本发明之一实施例绘示的缓存系统的运作方法流程图。
具体实施方式
请参照图1,其是依据本发明之一实施例绘示的具有二级缓存架构的处理器示意图。在本实施例中,处理器100包括丛集(cluster)110、丛集120、I/O接口130、同调互连(coherence interconnection)总线140及内存接口150,其中丛集110、丛集120、I/O接口130及内存接口150通过同调互连总线140相连。
在本实施例中,丛集110与丛集120架构相似且彼此间没有直接的数据交换,因此以下暂仅针对丛集110进行说明。如图1所示,丛集110包括核心111、核心112、核心113、核心114及第二级缓存115,其中核心111-114分别包括第一级数据缓存(LID)及第一级指令缓存(L1I)。具体而言,核心111包括第一级指令缓存111a、第一级数据缓存111b;核心112包括第一级指令缓存112a、第一级数据缓存112b;核心113包括第一级指令缓存113a、第一级数据缓存113b;核心114包括第一级指令缓存114a、第一级数据缓存114b。
如图1所示,第二级缓存115、第一级指令缓存111a-114a及第一级数据缓存111b-114b组成二级的缓存系统,其中,第二级缓存115可视为是二级缓存系统中的末级缓存,包括第一级指令缓存111a-114a及第一级数据缓存111b-114b的第一级缓存则是二级的缓存系统的上级缓存单元。在此架构下,各个第一级指令缓存111a-114a及各个第一级数据缓存111b-114b彼此间独立(exclusive),且皆与第二级缓存115相容(inclusive),亦即各个第一级指令缓存111a-114a及各个第一级数据缓存111b-114b彼此间不可以交换数据,但皆可以与第二级缓存115交换数据,因而各个第一级指令缓存111a-114a及各个第一级数据缓存111b-114b上的线程(thread)会彼此竞争第二级缓存115(即,LLC)上的缓存空间。
具体而言,第二级缓存115中可包括K条缓存线(cacheline),且其中的第1条缓存线对应于最常使用(most recently used,MRU)位置,也称为第1缓存线位置,而第K条缓存线对应于最少使用(Least Recently Used,LRU)位置,也称为第K缓存线位置。其中,K可依设计者需求而采用适当的数值,例如16、32、64、128等,但不限于此。
在一实施例中,处理器从第一级指令缓存111a-114a及第一级数据缓存111b-114b中搜寻某一缓存线(下称目标缓存线),当第一级指令缓存111a-114a及第一级数据缓存111b-114b中的任一发生缓存错失(cache miss),亦即找不到目标缓存线时,其将相应地形成对于第二级缓存115的使用,也即去第二级缓存115中搜寻目标缓存线。其中,当第二级缓存115发生缓存命中(cache hit),也即第二级缓存115中存在目标缓存线时,则从第二级缓存115获取目标缓存线并将其插入至对应的第一级缓存。当第二级缓存115也发生缓存错失,则从主存储器(memory)获取目标缓存线,并将其插入至上述K条缓存线中的MRU位置,使得原本的第1条缓存线至第(K-1)条缓存线被存储为第2条缓存线至第K条缓存线,而原本的第K条缓存线被从第二级缓存115移除。
然而,某些情况下,有的第一级缓存的缓存错失率较高,则对第二级缓存的使用率越高,占用的第二级缓存的资源越多,同时因为第一级缓存的缓存错失率越高,相应地也会使第二级缓存的缓存错失率越高,也就是使将来自主存储器或第三级缓存的目标缓存线插入至第二级缓存115中的MRU位置的几率越高,进一步占用第二级缓存的空间,导致真正需要第二级缓存的空间的线程无法使用到足够的资源,从而造成资源的浪费,也因此降低系统效能。
有鉴于此,本发明提出一种缓存系统,其可适应性地检测上级缓存单元对于末级缓存的使用情况,并据以调整相关的使用策略,进而改善整体的系统效能。在不同的实施例中,前述上级缓存单元可具有不同的意义。例如,在图1所示的二级缓存架构中,是以第一级缓存为上级缓存单元。然而,在其他实施例中,若所考虑的是更多级的缓存架构,则以除末级缓存之外的其它级缓存为上级缓存单元。例如,三级的缓存架构,是以第三级缓存为末级缓存,以第一级缓存及第二级缓存为第三级缓存(末级缓存)的上级缓存单元。
此外,图1所示的多核心配置有多个缓存的情况,需要经由一致性协议(例如MESI协议),使各个缓存内部数据一致,以避免系统数据混乱。以MESI协议为例,每一缓存线(Cache line)有4个可能的状态,每一状态可经由2位的数据表示,该4个状态包括“修改(M)”(modified)、“独享(E)”(exclusive)、“共享(S)”(shared)及“无效(I)”(Invalid),其相关说明可参照MESI协议,于此不再赘述。
根据本发明一实施例,在末级缓存,例如图1所示的第二级缓存115中配置目录(directory),根据上级缓存单元中缓存线的MESI状态,记录上级缓存单元是否与末级缓存共享目标缓存线。
请参照图2,其是依据图1实施例绘示的末级缓存中目录的示意图。在本实施例中,目录200例如可设置于图1的第二级缓存115,且目录200可包括第二级缓存状态202、第一级缓存状态204、状态指示值211a、212a、213a、214a、211b、212b、213b、214b,其中状态指示值211a-214a分别对应于图1的第一级指令缓存111a-114a,而状态指示值211b-214b分别对应于图1的第一级数据缓存111b-114b,但本发明可不限于此。
根据本发明一实施例,将MESI协议应用于整个缓存系统,以2比特的第二级缓存状态202表征图1的第二级缓存115中的缓存线是否可以共享。以2比特的第一级缓存状态204表征图1的各个第一级缓存中的缓存线是否可以共享。以1比特的状态指示值211a-214a、211b-214b记录目标缓存线是否同时存在于第一级缓存以及第二级缓存,以反映上级缓存单元对末级缓存的使用情况。
根据本发明另一实施例,将MESI协议应用于整个缓存系统,以2比特的第二级缓存状态202表征图1的第二级缓存115是否可以与其他丛集,或者与第一级缓存共享缓存线。以2比特的第一级缓存状态204表征图1的各个第一级缓存是否可以与第二级缓存115共享缓存线。
请参照图3A,其是依据图1、图2实施例绘示的以目录记录多级缓存状态的示意图。在本实施例中,目录200的第二级缓存状态202及第一级缓存状态204皆为“S”,其代表图3A所示的丛集110中的各个第一级缓存可以与第二级缓存115共享目标缓存线。并且,由于第一级指令缓存111a、第一级数据缓存112b、第一级指令缓存113a、第一级数据缓存113b正与第二级缓存115共享目标缓存线,亦即目标缓存线正同时存在于第一级指令缓存111a、第一级数据缓存112b、第一级指令缓存113a、第一级数据缓存113b正与第二级缓存115,因此,对应于第一级指令缓存111a、第一级数据缓存112b、第一级指令缓存113a、第一级数据缓存113b的状态指示值211a、212b、213a、213b皆为1。相反地,由于第一级数据缓存111b、第一级指令缓存112a、第一级指令缓存114a、第一级数据缓存114b未与第二级缓存115共享目标缓存线,亦即第一级数据缓存111b、第一级指令缓存112a、第一级指令缓存114a、第一级数据缓存114b中没有第二级缓存115所有的目标缓存线,因此,对应于第一级数据缓存111b、第一级指令缓存112a、第一级指令缓存114a、第一级数据缓存114b的状态指示值211b、212a、214a、214b皆为0。
基于上述教导,本领域技术人员应可相应了解丛集120中目录(未另标示)的各状态指示值的含义,于此不再赘述。
请参照图3B,其是依据图1、图2实施例绘示的以目录记录多级缓存状态的另一示意图。在本实施例中,目录200的第二级缓存状态202为“E/M”状态,代表目标缓存线是由丛集110独享。并且,由于L1状态204为“S”状态,其代表丛集110中的第一级指令缓存111a-114a及第一级数据缓存111b-114b可以与第二级缓存115共享目标缓存线。此外,状态指示值211a-214a、211b-214b的状态与图3A中相同,其意义可参照图3A的相关说明,于此不再赘述。
请参照图3C,其是依据图1、图2实施例绘示的以目录记录多级缓存状态的又一示意图。在本实施例中,目录200的第二级缓存状态202为“E”状态,代表目标缓存线是由丛集110独享。并且,由于L1状态204为“E”状态,其代表第二级缓存115是由丛集110中的第一级指令缓存111a-114a及第一级数据缓存111b-114b中的一个可以独自与第二级缓存115共享目标缓存线。此外,由于图3B所示的情境为第一级数据缓存112b独自与第二级缓存115共享目标缓存线,因此状态指示值212b可相应地标示为1。
请参照图4,其是依据图1、图2实施例绘示的第二级缓存示意图。在本实施例中,第二级缓存115,即末级缓存115包括目录200、利用配置寄存器(utilization configureregister)405、利用计数器(utilization counter)a11、b11、a21、b21、a31、b31、a41、b41、存取计数器(access counter)a12、b12、a22、b22、a32、b32、a42、b42、命中计数器(hitcounter)a13、b13、a23、b23、a33、b33、a43及b43。
在末级缓存115中,利用计数器a11、存取计数器a12、命中计数器a13可对应于图1的第一级指令缓存111a。利用计数器b11、存取计数器b12、命中计数器b13可对应于图1的第一级数据缓存111b。利用计数器a21、存取计数器a22、命中计数器a23可对应于图1的第一级指令缓存112a。利用计数器b21、存取计数器b22、命中计数器b23可对应于图1的第一级数据缓存112b。利用计数器a31、存取计数器a32、命中计数器a33可对应于图1的第一级指令缓存113a。利用计数器b31、存取计数器b32、命中计数器b33可对应于图1的第一级数据缓存113b。利用计数器a41、存取计数器a42、命中计数器a43可对应于图1的第一级指令缓存114a。利用计数器b41、存取计数器b42、命中计数器b43可对应于图1的第一级数据缓存114b。
在图4中,上述利用计数器、存取计数器及命中计数器可用于为所对应的第一级缓存记录特定的计数值。以下将基于第一级指令缓存111a及其所对应的利用计数器a11、存取计数器a12、命中计数器a13进行说明
在一实施例中,利用计数器a11可依据图2中状态指示值211a的变化递增或递减计数值。举例而言,当状态指示值211a从0变为1,表示第一级指令缓存111a中,与第二级缓存115共享的目标缓存线的从无到有,第一级指令缓存111a产生对第二级缓存115的缓存空间的使用,利用计数器a11递增其计数值。反之,当状态指示值211a从1变为0,表示第一级指令缓存111a中,与第二级缓存共享的目标缓存线的从有到无,代表第一级指令缓存111a减少对第二级缓存115的缓存空间的使用,利用计数器a11递减其计数值。在此情况下,当利用计数器a11的计数值越高,即代表越多的目标缓存线被第一级指令缓存111a以及第二级缓存115所共享,第一级指令缓存111a占用越多的第二级缓存115的缓存空间。
存取(Access)计数器a12可用于为第二级缓存115记录来自第一级指令缓存111a的存取数。也即,只要第二级缓存115检测到来自第一级指令缓存111a的存取,即可递增存取计数器a12的计数值。换言之,存取计数器a12的计数值即为第一级指令缓存111a对第二级缓存115的总存取数。
命中(hit)计数器a13可用于记录来自第一级指令缓存111a的存取在第二级缓存115的命中数。也即,当来自第一级指令缓存111a的存取在第二级缓存115中出现命中(hit)时,命中计数器a13的计数值即可递增。
相似地,在一实施例中,第一级数据缓存111b及其所对应的利用计数器b11、存取计数器b12、命中计数器b13也可基于相同的机制运作。
具体而言,利用计数器b11可依据图2中状态指示值211b的变化递增或递减计数值。举例而言,当状态指示值211b从0变为1,代表第一级数据缓存111b中,与第二级缓存115共享的目标缓存线的从无到有,第一级数据缓存111b产生对第二级缓存115的缓存空间的使用,利用计数器b11递增其计数值。反之,当状态指示值211b从1变为0,代表第一级数据缓存111b中,与第二级缓存共享的目标缓存线的从有到无,第一级数据缓存111b减少对第二级缓存115的缓存空间的使用,利用计数器b11递减其计数值。在此情况下,当利用计数器b11的计数值越高,即代表越多的目标缓存线被第一级数据缓存111b以及第二级缓存115所共享,第一级数据缓存111b占用的第二级缓存115的缓存空间越多。
存取计数器b12可用于记录来自第一级数据缓存111b的存取数。也即,只要第二级缓存115检测到来自第一级数据缓存111b的存取,即可递增存取计数器b12的计数值。换言之,存取计数器b12的计数值即为第一级数据缓存111b对第二级缓存115的总存取数。
命中计数器b13可用于记录来自第一级数据缓存111b的存取在第二级缓存115的命中数。也即,当来自第一级数据缓存111b的存取在第二级缓存115中出现命中(hit)时,命中计数器b13的计数值即可递增。
基于以上教导,本领域技术人员应可相应了解图4中其他第一级缓存与其所对应的利用计数器、存取计数器及命中计数器的运作机制,于此不再赘述。
根据本发明一实施例,可以依据利用计数器a11的计数值、存取计数器a12的存取数及命中计数器a13的存取命中数控制利用配置寄存器405中对应于第一级指令缓存111a的各项参数,以调整第一级指令缓存111a对于第二级缓存115的使用策略。此外,依据利用计数器b11的计数值、存取计数器b12的存取数及命中计数器b13的存取命中数控制利用配置寄存器405中对应于第一级数据缓存111b的各项参数,以调整第一级数据缓存111b对于L2第二级缓存115的使用策略。相似地,经由图4任一第一级缓存对应的利用计数器的计数值、存取计数器的存取数及命中计数器的存取命中数控制利用配置寄存器405中对应于该第一级缓存的各项参数,以调整该第一级缓存对于L2第二级缓存115的使用策略。
根据本发明一实施例,依据各个利用计数器的计数值、各个存取计数器的存取数及各个命中计数器的存取命中数控制利用配置寄存器405中对应的第一级缓存的控制参数,可以协调各个上级缓存单元,例如第一级指令缓存111a-114a及第一级数据缓存111b-114b彼此间对于末级缓存,例如对第二级缓存115的使用策略。
为简化相关说明,以下将以第一级指令缓存111a为例来说明本发明的技术手段,而本领域技术人员应可相应推得其他第一级缓存的运作机制。
承先前实施例所述,一般而言,在第二级缓存115中发生缓存缺失的目标缓存线会被插入至第二级缓存115中的MRU位置,进而可能造成系统效能降低的缺陷。为改善此缺陷,设置利用配置寄存器405以控制目标缓存线插入到MRU位置的频率以及控制目标缓存线插入位置。在不同的实施例中,可通过调整利用配置寄存器405的参数来实现调整上述插入位置以及调整插入频率的机制。
请参照图5,其是依据图4绘示的利用配置寄存器405的结构图。如图5所示,利用配置寄存器405包括区段511a、512a、513a、514a、511b、512b、513b、514b,其中区段511a-514a分别对应于图1的第一级指令缓存111a-114a,而区段511b-514b分别对应于图1的第一级数据缓存111b-114b,但本发明可不限于此。
在本实施例中,各区段511a-514a、511b-514b具有相同的结构,因此以下暂仅基于对应于第一级指令缓存111a的区段511a进行说明。
在图5中,区段511a可包括控制区段51a、比率区段51b及位置区段51c,其长度可以分别是2比特、2比特及4比特,而利用配置寄存器405的长度例如是64比特,但本发明可不限于此。
控制区段51a包括控制参数,而此控制参数可指示将目标缓存线插入至第二级缓存115中的指定位置或是MRU位置,其中,该指定位置如何设定将于之后进行详述。在一实施例中,控制参数的数值相应的操作如下表1所示。
表1
Figure BDA0002222841190000091
详细而言,当控制参数为0(00)时,可固定将目标缓存线插入至第二级缓存115中的MRU位置。另一方面,当控制参数为1(01)时,配合比率区段51b及位置区段51c的设置将目标缓存线插入至指定位置。简言之,本发明实施例可通过调整控制参数的值来决定将目标缓存线始终插入至MRU位置或者插入至指定位置。其中,该目标缓存线是对应于上级缓存单元111a的缓存缺失,并在末级缓存115中缺失的缓存线。在其他实施例中,设计者也可依需求而为不同的控制参数制定相应的操作,并不限于上述的方式。
比率区段51b包括插入比率(insert ratio)参数,而此插入比率参数指示在第二级缓存115中,每发生(N-1)次缓存错失之后,将目标缓存线插入至第二级缓存115的MRU位置,其中N为正整数。在一实施例中,插入比率参数的数值相应的操作可如下表2所示。
表2
Figure BDA0002222841190000101
应了解的是,若控制参数为0(00),则目标缓存线始终被插入至MRU位置,因此插入比率参数对于第二级缓存115中目标缓存线的插入/替换机制并无影响。换言之,在本发明实施例中,只有在控制参数为1(01)的时候,插入比率参数的数值方会对第二级缓存115中目标缓存线的插入/替换机制产生影响。
位置区段51包括插入位置(insert position)参数,而此插入位置参数可定义上述指定位置。根据本发明一实施例,在前述K值取为16的情况下,插入位置参数的数值相应的操作可如下表3所示。而基于表3的教导,本领域技术人员应可相应了解K值为其它数值的情况下,对上述指定位置是如何定义。
表3
插入位置参数 操作
0000 指定位置为MRU位置(第1缓存线位置)
0001 指定位置为与MRU位置相邻的第2缓存线位置
0010 指定位置为第3缓存线位置
0011 指定位置为第4缓存线位置
1110 指定位置为第15缓存线位置
1111 指定位置为LRU位置
综观控制区段51a、比率区段51b及位置区段51c,当控制区段51a的控制参数为1(01)时,连续(N-1)个目标缓存线皆会被插入至插入位置参数所定义的指定位置,而第N个目标缓存线则会被插入至MRU位置。
举例而言,若控制区段51a的控制参数为1(00)、比率区段51b的插入比率参数为0(00)、位置区段51c的插入位置参数为3(0011),则在N等于16的情况下,连续15个目标缓存线皆会被插入至插入位置参数指定的第二级缓存115的第4缓存线位置,原第二级缓存115的第4条至原第k-1条缓存线向第二级缓存115的LRU位置移动一位,而第二级缓存115的LRU位置的原第k条缓存线被移除。第16个目标缓存线存取被插入至第二级缓存115中的MRU位置,原第二级缓存115中的第1条至第k-1条缓存线成为第2条至第k条缓存线,而第二级缓存115中的原第k条缓存线被移除。并且,第17个至第31个目标缓存线被插入至第4缓存线位置,而第32(即,N的倍数)个目标缓存线被插入至第二级缓存115中的MRU位置。
举另一例而言,若控制区段51a的控制参数为1(01)、比率区段51b的插入比率参数为2(10)、位置区段51c的插入位置参数为2(0010),当N被设置为64,则使连续63个目标缓存线被插入至第3缓存线位置(即,插入位置参数定义的指定位置),而第64(即,N)个目标缓存线会被插入至第二级缓存115中的MRU位置。并且,第65个至第127个目标缓存线会被插入至第3缓存线位置,而第128(即,N的倍数)个目标缓存线则被插入至第二级缓存115中的MRU位置。
借此,可使得第一级指令缓存111a对于第二级缓存115的使用策略更具弹性,从而改善整体的运作效能,并避免例如缓存污染(cache pollution)等问题。具体而言,承先前实施例所述,当利用计数器a11的计数值较高时,代表第一级指令缓存111a占用了第二级缓存115中较多的缓存空间。在此情况下,若命中计数器a13的存取命中数与存取计数器a12的存取数之间的比值较低时,即代表缓存错失率较高。此时,可经由将控制区段51a的控制参数设置为1(01),再配合比率区段51b中的插入比率参数及位置区段51c中的插入位置参数来调整第一级指令缓存111a对于第二级缓存115的使用策略,借以缩短目标缓存线存在于第二级缓存115中的时间。举例而言,当第一级指令缓存111a的缓存错失率较高时,可通过调整插入比率参数来将N值设定为较大的值和/或通过调整插入位置参数将指定位置设定为较接近LRU位置。
如此一来,在将目标缓存线插入至第二级缓存115的指定位置之后,此目标缓存线会因较接近LRU位置而较快速地随着后续新存取的插入而被推移至LRU位置,进而较快地被从第二级缓存115中剔除。借此,第二级缓存115的缓存空间即不会被缓存错失率较高的第一级指令缓存111a过度的占用,从而达到较佳的效能。
相反地,若命中计数器a13的存取命中数与存取计数器a12的存取数之间的比值较高时,即代表缓存错失率较低。此时,同样可经由将控制区段51a的控制参数设置为1,再配合比率区段51b中的插入比率参数及位置区段51c中的插入位置参数来调整第一级指令缓存111a对于第二级缓存115的使用策略,借以延长目标缓存线存在于第二级缓存115中的时间。举例而言,当第一级指令缓存111a的缓存错失率较低时,可通过调整插入比率参数来将N值设定为较小的值和/或通过调整插入位置参数来指定位置设定为较远离LRU位置的缓存线。
如此一来,在将目标缓存线插入至第二级缓存115的指定位置之后,此存取即会因较远离LRU位置而较缓慢地随着后续新存取的插入而被推移至LRU位置,进而延长存在于第二级缓存115中的时间。借此,第二级缓存115的缓存空间即可被配置给缓存错失率较低的第一级指令缓存111a,进而达到更有效率的使用。
相似地,也可经由利用配置寄存器405通过控制区段512a-514a、511b-514b来分别调整第一级指令缓存112a-114a、第一级数据缓存111b-114b对于第二级缓存115的使用策略。
以第一级数据缓存111b(其与第一级指令缓存111a属于同一个核心111)及其对应的区段511b为例,区段511b也可包括控制区段52a、比率区段52b及位置区段52c。在区段511b中,控制区段52a可记录控制参数,而此控制参数可指示将目标缓存线插入至第二级缓存115的缓存线中的指定位置或是MRU位置;比率区段52b可记录插入比率参数,而此插入比率参数可指示在每(M-1)个存取之后,将第M个目标缓存线插入至第二级缓存115的缓存线中MRU位置,其中M为正整数;位置区段52c可记录插入位置参数,而此插入位置参数可定义上述指定位置。其中,该目标缓存线是对应于上级缓存单元111b的缓存缺失,并在末级缓存115中缺失的缓存线。
综观区段511b的控制区段52a、比率区段52b及位置区段52c,当控制区段52a的控制参数为1时,连续(M-1)个目标缓存线皆会被插入至位置区段52c的插入位置参数所定义的指定位置,而第M个目标缓存线才会被插入至MRU位置。在此情况下,即可更有弹性地依据第一级数据缓存111b占用第二级缓存115缓存空间的情况而调整第一级数据缓存111b对于第二级缓存115的使用策略。
再以第一级指令缓存112a(其与第一级指令缓存111a分别属于同一个丛集110中不同的核心111及112)及其对应的区段512a为例,区段512a也可包括控制区段(未另标示)、比率区段(未另标示)及位置区段(未另标示)。在区段512a中,控制区段可记录控制参数,而此控制参数可指示将目标缓存线插入至第二级缓存115的缓存线中的指定位置或是MRU位置;比率区段可记录插入比率参数,而此插入比率参数可指示在每(M’-1)个存取之后,将第M’个目标缓存线插入至第二级缓存115的缓存线中MRU位置,其中M’为正整数;位置区段可记录插入位置参数,而此插入位置参数可定义上述指定位置。
综观区段512a的控制区段、比率区段及位置区段,当控制区段的控制参数为1时,连续(M’-1)个目标缓存线皆被插入至位置区段的插入位置参数所定义的指定位置,而第M’个目标缓存线被插入至MRU位置。在此情况下,即可更有弹性地依据第一级指令缓存112a占用第二级缓存115缓存空间的情况而调整第一级指令缓存112a对于第二级缓存115的使用策略。
此外,也可依据第二级缓存中,对应于其它丛集的第一级缓存的利用计数器的计数值,存取计数器的存取数及命中计数器的存取命中数,控制利用配置寄存器405中的控制参数,插入比率参数以及插入位置参数的值,而对不同丛集的第一级缓存对于第二级缓存的使用策略进行调整,其细节可参照以上实施例中的教导,于此不再赘述。
在其他实施例中,以上教导的机制也可用于三级缓存架构,具体说明如下。
请参照图6,其是依据本发明之一实施例绘示的的具有三级缓存架构的处理器示意图。在本实施例中,处理器600包括核心611、612、…617、618、末级缓存620、I/O接口630、同调互连总线640及内存接口650,其中末级缓存620、核心611-618、I/O接口630及内存接口650通过同调互连总线640相连。核心611-618可分别包括第一级数据缓存、第一级指令缓存及第二级缓存。具体而言,核心611可包括第一级指令缓存611a、第一级数据缓存611b及第二级缓存611c;核心612可包括第一级指令缓存612a、第一级数据缓存612b及第二级缓存612c;…;核心617可包括第一级指令缓存617a、第一级数据缓存617b及第二级缓存617c;核心618可包括第一级指令缓存618a、第一级数据缓存618b及第二级缓存618c。
在本发明的实施例中,第三级缓存620、第一级指令缓存611a-618a、第一级数据缓存611b-618b及第二级缓存611c-618c组成三级的缓存系统,其中,上级缓存单元包括第一级指令缓存611a-618a、第一级数据缓存611b-618b及第二级缓存611c-618c,末级缓存即第三级缓存620。在此架构下,在各个核心611-618上的线程将会彼此竞争末级缓存620上的缓存空间。
具体而言,末级缓存620中可包括K条缓存线(cacheline),且其中的第1条缓存线可对应于MRU位置,而第K条缓存线可对应于LRU位置,但可不限于此。在其他实施例中,K可依设计者需求而采用不同的数值,例如16、32、64、128等,但不限于此。
在一实施例中,如前所述,当上级缓存单元发生缓存错失(cache miss)时,其将有几率导致目标缓存线被被插入至末级缓存620中的MRU位置,原本的第1条缓存线至第(K-1)条缓存线将会被存储为第2条缓存线至第K条缓存线,而原本的第K条缓存线将会从末级缓存620移除。
然而,某些第一级缓存和/或第二级缓存缓存错失发生率较高,将使末级缓存620的缓存空间被无谓地占用,可能使得真正需要缓存空间的线程无法使用到足够的资源,且使目标缓存线插入至末级缓存620中MRU位置的几率提高,降低系统效能。
有鉴于此,本发明提出一种缓存系统,其可适应性地依据上级缓存单元对于末级缓存的使用情况调整相关的使用策略,进而改善整体的系统效能。承先前实施例所提及的,各核心611-618中的第一级缓存,包括第一级指令缓存及第一级数据缓存,以及第二级缓存为末级缓存620的上级缓存单元。并且,为便于说明本发明的技术方案,以下暂假设本发明的缓存系统是基于MESI协议而运作。相应地,末级缓存620中将配置有用于记录上级缓存单元的相关状态的目录。
请参照图7,其是依据图6实施例绘示的末级缓存中目录的示意图。在本实施例中,目录700例如可设置于图6的末级缓存620中,且目录700可包括末级缓存状态702、核心状态704、状态指示值711、712、713、714、715、716、717、718,其中状态指示值711-718可分别对应于图6的核心611-618,但本发明可不限于此。
根据本发明一实施例,末级缓存状态702的长度可为2比特,其可用以表征图6的末级缓存620中的缓存线是否可以共享。核心状态704的长度可为2比特,其可用以表征图6中各个核心611-618中的缓存线是否可以共享,例如各个核心611-618中的目标缓存线(如有)是否可以与末级缓存620共享。
根据本发明另一实施例,末级缓存状态702的长度可为2比特,其可用以表征图6的末级缓存620是否可以与其他组件,例如是否可以与各个核心611-618共享缓存线。核心状态704的长度可为2比特,其可用以表征图6中各个核心611-618是否可以与末级缓存620共享缓存线。
状态指示值711-718的长度可分别为1比特,其可用于记录目标缓存线是否同时存在于末级缓存620以及各个核心611-618,以反映各个核心611-618对末级缓存620的使用状态。相关细节可参照MESI协议的规格书或先前实施例的教导,于此不再赘述。
请参照图8,其是依据图6、图7实施例绘示的末级缓存示意图。在本实施例中,末级缓存620包括目录700、利用配置寄存器805、利用计数器811a、812a、…817a、818a、存取计数器811b、812b、…817b、818b、命中计数器811c、812c、…817c、818c。
在末级缓存620中,利用计数器811a、存取计数器811b、命中计数器811c可对应于图6的核心611。利用计数器812a、存取计数器812b、命中计数器812c可对应于图6的核心612。利用计数器817a、存取计数器817b、命中计数器817c可对应于图6的核心617。利用计数器818a、存取计数器818b、命中计数器818c可对应于图6的核心618。
在图8中,上述利用计数器、存取计数器及命中计数器可用于为所对应的核心(即,末级缓存620的上级缓存单元)记录特定的计数值。以下将基于核心611及其所对应的利用计数器811a、存取计数器811b、命中计数器811c进行说明
在一实施例中,利用计数器811a可依据图7中状态指示值711的变化递增或递减计数值。举例而言,当状态指示值711从0变为1时,即代表核心611正使用末级缓存620的缓存空间,因此利用计数器811a可递增其计数值。反之,当状态指示值711从1变为0时,即代表核心611未使用末级缓存620的缓存空间,因此利用计数器811a可递减其计数值。在此情况下,当利用计数器811a的计数值越高,即代表核心611占用了末级缓存620越多的缓存空间,但本发明可不限于此。
存取计数器811b可用于记录来自核心611的存取数。也即,只要末级缓存620检测到来自核心611的存取,即可递增存取计数器811b的计数值。换言之,存取计数器811b的计数值即为核心611对末级缓存620的总存取数。
命中计数器811c可用于记录核心611存取末级缓存620的存取命中数。也即,当来自核心611的存取在末级缓存620中命中时,命中计数器811c的计数值即可递增。
基于以上教导,本领域技术人员应可相应了解图8中其他核心与其所对应的利用计数器、存取计数器及命中计数器的运作机制,于此不再赘述。
在本发明实施例中,经由利用配置寄存器805,利用计数器811a、存取计数器811b及命中计数器811c调整核心611对于末级缓存620的使用策略。相似地,经由利用配置寄存器805,图8任一核心对应的利用计数器、存取计数器及命中计数器调整该第一级缓存对于末级缓存620的使用策略。
为简化相关说明,以下将以核心611为例来说明本发明的技术手段,而本领域技术人员应可相应推得其他核心的运作机制。
一般而言,目标缓存线会被插入至末级缓存620中的MRU位置,进而可能造成系统效能降低的缺陷。为改善此缺陷,本发明实施例经由控制利用配置寄存器805中的参数,而调整将目标缓存线插入至末级缓存620的位置,而并非总是插入至末级缓存620中的MRU位置。其中,该目标缓存线是对应于上级缓存单元611的缓存缺失,并在末级缓存620中缺失的缓存线。
在不同的实施例中,可通过调整利用配置寄存器805的内容来实现调整上述插入位置的机制,具体说明如下。
请参照图9,其是依据图8绘示的利用配置寄存器结构图。如图9所示,利用配置寄存器805包括区段911、912、913、914、915、916、917、918,其中区段911-918可分别对应于图6的核心611-618,但本发明可不限于此。
在本实施例中,各区段911-918具有相同的结构,而以下暂仅基于对应于核心611的区段911进行说明。
在图9中,区段911可包括控制区段91a、比率区段91b及位置区段91c,其长度可分别为2比特、2比特及4比特,而利用配置寄存器805的长度例如是64比特,但本发明可不限于此。
控制区段91a可记录控制参数,而此控制参数可指示将来自核心611的存取插入至末级缓存620的缓存线中的指定位置或是MRU位置。在一实施例中,控制参数的数值相应的操作可如下表4所示。
表4
Figure BDA0002222841190000181
详细而言,当控制参数为0(00)时,可将目标缓存线插入至末级缓存620的MRU位置,也就是一般的做法。另一方面,当控制参数为1(01)时,可配合比率区段91b及位置区段91c将目标缓存线插入至指定位置。简言之,本发明实施例可通过调整控制参数的值来决定采用一般的做法或是采用将新存取插入至指定位置的做法。
在其他实施例中,设计者也可依需求而为不同的控制参数数值定义相应的操作,并不限于上述的方式。
比率区段91b可记录插入比率参数,而此插入比率参数可指示在每(N-1)个存取之后,将第N个目标缓存线插入至末级缓存620的MRU位置,其中N为正整数。在一实施例中,插入比率参数的数值相应的操作可如下表5所示。
表5
Figure BDA0002222841190000182
应了解的是,若控制参数为0(00),则由于目标缓存线皆会被插入至MRU位置,因此插入比率参数的数值实质上对于末级缓存620中缓存线的替换机制并无影响。换言之,在本发明实施例中,只有在控制参数为1(01)的时候,插入比率参数的数值方会对末级缓存620中缓存线的替换机制产生影响。
位置区段91c可记录插入位置参数,而此插入位置参数可定义上述指定位置。在一实施例中,插入位置参数的数值相应的操作可如下表6所示。
表6
Figure BDA0002222841190000191
综观控制区段91a、比率区段91b及位置区段91c,当控制区段91a的控制参数为1时,连续(N-1)个目标缓存线皆会被插入至位置区段91c的插入位置参数所定义的指定位置,而第N个目标缓存线才会被插入至MRU位置。在此情况下,即可更有弹性地依据核心611占用末级缓存620缓存空间的情况而调整核心611对于末级缓存620的使用策略。
借此,可使得核心611对于末级缓存620的使用策略更具弹性,从而改善整体的运作效能,并避免例如缓存污染等问题。具体而言,当利用计数器811a的计数值较高时,代表核心611占用了末级缓存620中较多的缓存空间。在此情况下,若命中计数器811c的存取命中数与存取计数器811b的存取数之间的比值较低时,即代表缓存错失率较高。此时,可经由将控制区段91a的控制参数设置为1,再配合比率区段91b中的插入比率参数及位置区段91c中的插入位置参数来调整核心611对于末级缓存620的使用策略,借以缩短目标缓存线在末级缓存620中的时间。举例而言,当核心611的缓存错失率较高时,可通过调整插入比率参数来将N值设定为较大的值和/或通过调整插入位置参数来指定位置设定为较接近LRU位置。
如此一来,在将目标缓存线插入至末级缓存620的指定位置之后,此存取即会因较接近LRU位置而较快速地随着后续新存取的插入而被推移至LRU位置,进而较快地被从末级缓存620中剔除。借此,末级缓存620的缓存空间即不会被缓存错失率较高的核心611过度的占用,从而达到较佳的效能。
相反地,若命中计数器811c的存取命中数与存取计数器811b的存取数之间的比值较高时,即代表缓存错失率较低。此时,同样可经由将控制区段91a的控制参数设置为1,再配合比率区段91b中的插入比率参数及位置区段91c中的插入位置参数来调整核心611对于末级缓存620的使用策略,借以延长目标缓存线存在于末级缓存620中的时间。举例而言,当核心611的缓存错失率较低时,可通过调整插入比率参数来将N值设定为较小的值和/或通过调整插入位置参数来指定位置设定为较远离LRU位置的缓存线。
如此一来,在将目标缓存线插入至末级缓存620的指定位置之后,此存取即会因较远离LRU位置而较缓慢地随着后续新存取的插入而被推移至LRU位置,进而延长存在于末级缓存620中的时间。借此,末级缓存620的缓存空间即可被配置给缓存错失率较低的核心611,进而达到更有效率的使用。
相似地,利用配置寄存器805也可通过区段912-918来分别调整核心612-618对于末级缓存620的使用策略,其细节于此不再赘述。
请参照图10,其是依据本发明之一实施例绘示的缓存系统的运作方法流程图。首先,在步骤S1010中,可通过末级缓存的目录的状态指示值记录上级缓存单元对末级缓存的使用状态。在步骤S1020中,可通过末级缓存的多个计数器分别依据状态指示值的变化递增或递减计数值、记录来自上级缓存单元的存取数以及记录上级缓存单元存取末级缓存的存取命中数。在步骤S1030中,可通过末级缓存的利用配置寄存器依据计数值、存取数及存取命中数调整上级缓存单元对于末级缓存的使用策略。
以上各步骤的细节可参照先前实施例中的说明,于此不再赘述。
综上所述,本发明提出的缓存系统及其运作方法可通过设置于末级缓存中的目录、利用配置寄存器及对应于各上级缓存单元的利用计数器的计数值、存取计数器的存取数及命中计数器的存取命中数调整上级缓存单元对于末级缓存的使用策略。具体而言,通过配置利用配置寄存器中各区段的控制区段、比率区段及位置区段,可令连续(N-1)个在末级缓存发生缓存缺失的目标缓存线被插入至位置区段的插入位置参数所定义的指定位置,而第N个在末级缓存发生缓存缺失的被插入至MRU位置。借此,可使得各上级缓单元对于末级缓存的使用策略更具弹性,从而改善整体的运作效能,并避免例如缓存污染等问题。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视后附的权利要求书所界定者为准。

Claims (26)

1.一种缓存系统,包括:
第一上级缓存单元;
末级缓存,耦接于该第一上级缓存单元,包括:
目录,包括第一状态指示值,该第一状态指示值指示该第一上级缓存单元对该末级缓存的使用状态;
多个第一计数器,分别执行依据该第一状态指示值递增或递减第一计数值,记录来自该第一上级缓存单元的第一存取数以及记录该第一上级缓存单元存取该末级缓存的第一存取命中数的操作;以及
寄存器,依据该第一计数值,该第一存取数及该第一存取命中数选取第一参数,以调整该第一上级缓存单元对该末级缓存的使用策略。
2.如权利要求1所述的缓存系统,其中该末级缓存还包括多个缓存线,该第一参数决定对应于该第一上级缓存单元的目标缓存线插入至该多个缓存线的插入位置。
3.如权利要求2所述的缓存系统,其中该多个缓存线的数量为K个,K为正整数,该多个缓存线中的第一个最常使用,位于第一缓存线位置,该多个缓存线中的第K个最少使用,位于第K缓存线位置,其中当该目标缓存线插入至该插入位置,排序在该插入位置之后的该多个缓存线的顺序递增,原该多个缓存线中的第K个被移除。
4.如权利要求1所述的缓存系统,其中该寄存器包括:
第一控制区段,记录控制参数,该控制参数指示将对应于该第一上级缓存单元的目标缓存线插入至指定位置或第一缓存线位置;
第一比率区段,记录插入比率参数,该插入比率参数指示在每(N-1)个该存取之后,将对应于该第一上级缓存单元的第N个该目标缓存线插入至该第一缓存线位置,其中N为正整数;以及
第一位置区段,记录插入位置参数,该插入位置参数定义该指定位置,
其中,该第一参数包括该控制参数,该比率参数以及该插入位置参数。
5.如权利要求4所述的缓存系统,其中当该控制参数为第一值时,对应于该第一上级缓存单元的多个该缓存线被插入至该第一缓存线位置;以及
当该控制参数为第二值时,对应于该第一上级缓存单元的连续(N-1)个该目标缓存线被插入至该指定位置,对应于该第一上级缓存单元的第N个该目标缓存线被插入至该第一缓存线位置。
6.如权利要求1所述的缓存系统,其中当该第一状态指示值由该第一值变为该第二值时,递增该第一计数值,当该第一状态指示值由该第二值变为该第一值时,递减该第一计数值。
7.如权利要求1所述的缓存系统,其中该第一上级缓存单元为第一级缓存,该末级缓存为第二级缓存。
8.如权利要求1所述的缓存系统,还包括耦接于该末级缓存的第二上级缓存单元,该末级缓存的该目录还包括第二状态指示值,该第二状态指示值用于记录该第二上级缓存单元对该末级缓存的使用状态,且该末级缓存还包括:
多个第二计数器,分别执行依据该第二状态指示值递增或递减第二计数值,记录来自该第二上级缓存单元的第二存取数以及记录该第二上级缓存单元存取该末级缓存的第二存取命中数的操作,
该寄存器接收该第二计数值,该第二存取数及该第二存取命中数控制第二参数,以调整第二上级缓存单元对该末级缓存的使用策略。
9.如权利要求8所述的缓存系统,其中该寄存器包括:
第一控制区段,记录第一控制参数,该第一控制参数指示将对应于该第一上级缓存单元的目标缓存线插入至第一指定位置或第一缓存线位置;
第一比率区段,记录第一插入比率参数,该第一插入比率参数指示在每(N-1)个对应于该第一上级缓存单元的该目标缓存线之后,将对应于该第一上级缓存单元的第N个该目标缓存线插入至该第一缓存线位置,其中N为正整数;
第一位置区段,记录第一位置参数,其定义该第一指定位置;
第二控制区段,记录第二控制参数,该第二控制参数指示将对应于该第二上级缓存单元的该目标缓存线插入至第二指定位置或该第一缓存线位置;
第二比率区段,记录第二插入比率参数,该第二插入比率参数指示在每(M-1)个对应于该第二上级缓存单元的该目标缓存线之后,将对应于该第二上级缓存单元的第M个该目标缓存线插入至该第一缓存线位置,其中M为正整数;以及
第二位置区段,记录第二位置参数,其定义该第二指定位置,
其中,该第二参数包括该第二控制参数,该第二插入比率参数以及该第二位置参数。
10.如权利要求8所述的缓存系统,其中该第一上级缓存单元及该第二上级缓存单元为第一级缓存,该末级缓存为第二级缓存,该第一上级缓存单元及该第二上级缓存单元属于同一个核心。
11.如权利要求8所述的缓存系统,其中该第一上级缓存单元及该第二上级缓存单元为第一级缓存,该末级缓存为第二级缓存,该第一上级缓存单元及该第二上级缓存单元属于不同的核心。
12.如权利要求8所述的缓存系统,其中该第一上级缓存单元及该第二上级缓存单元属于不同的核心且分别包括第一级缓存及第二级缓存,该末级缓存为第三级缓存。
13.如权利要求8所述的缓存系统,其中该目录还包括共享状态指示值,该共享状态指示值指示该第一上级缓存单元及该第二上级缓存单元是否处于共享状态。
14.一种缓存系统的运作方法,其中该缓存系统包括相互耦接的第一上级缓存单元及末级缓存,所述方法包括:
通过该末级缓存的目录的第一状态指示值记录该第一上级缓存单元对该末级缓存的使用状态;
通过该末级缓存的多个第一计数器分别执行依据该第一状态指示值递增或递减第一计数值,记录来自该第一上级缓存单元的第一存取数以及记录该第一上级缓存单元存取该末级缓存的第一存取命中数的操作;以及
依据该第一计数值,该第一存取数及该第一存取命中数选取该末级缓存的寄存器的第一参数,以调整该第一上级缓存单元对该末级缓存的使用策略。
15.如权利要求14所述的方法,其中该末级缓存还包括多个缓存线,且所述方法包括:
通过该第一参数决定对应于该第一上级缓存单元的目标缓存线插入至该多个缓存线的插入位置。
16.如权利要求15所述的方法,其中该多个缓存线的数量为K个,K为正整数,该多个缓存线中的第一个最常使用,位于第一缓存线位置,该多个缓存线中的第K个最少使用,位于第K缓存线位置,其中当该缓存线插入至该插入位置,所述方法还包括:
递增排序在该插入位置之后的该多个缓存线的顺序,移除原该多个缓存线中的第K个。
17.如权利要求14所述的方法,其中该寄存器包括第一控制区段,第一比率区段及第一位置区段,且所述方法包括:
通过该第一控制区段记录控制参数,其中该控制参数指示将对应于该第一上级缓存单元的目标缓存线插入至指定位置或第一缓存线位置;
通过该第一比率区段记录插入比率参数,其中该插入比率参数指示在每(N-1)个该存取之后,将对应于该第一上级缓存单元的第N个该目标缓存线插入至该第一缓存线位置,其中N为正整数;以及
通过该第一位置区段记录插入位置参数,其中该插入位置参数定义该指定位置,
其中,该第一参数包括该控制参数,该比率参数以及该插入位置参数。
18.如权利要求17所述的方法,其中当该控制参数为第一值时,将对应于该第一上级缓存单元的多个该目标缓存线插入至该第一缓存线位置;以及
当该控制参数为第二值时,将对应于该第一上级缓存单元的连续(N-1)个该目标缓存线插入至该指定位置,将对应于该第一上级缓存单元的第N个该目标缓存线插入至该第一缓存线位置。
19.如权利要求14所述的方法,其中当该第一状态指示值由该第一值变为该第二值时递增该第一计数值;以及
当该第一状态指示值由该第二值变为该第一值时,递减该第一计数值。
20.如权利要求14所述的方法,其中该第一上级缓存单元为第一级缓存,该末级缓存为第二级缓存。
21.如权利要求14所述的方法,其中该缓存系统还包括耦接于该末级缓存的第二上级缓存单元,且所述方法还包括:
通过该末级缓存的该目录的第二状态指示值记录该第二上级缓存单元对该末级缓存的第二使用状态;
通过该末级缓存的多个第二计数器分别执行依据该第二状态指示值递增或递减第二计数值,记录来自该第二上级缓存单元的第二存取数以及记录该第二上级缓存单元存取该末级缓存的第二存取命中数的操作;以及
依据该第二计数值,该第二存取数及该第二存取命中数选取该寄存器的第二参数,以调整该第二上级缓存单元对于该末级缓存的第二使用策略。
22.如权利要求21所述的方法,其中该寄存器包括第一控制区段,第一比率区段,第一位置区段,第二控制区段,第二比率区段及第二位置区段,且所述方法包括:
通过该第一控制区段记录第一控制参数,其中该第一控制参数指示将对应于该第一上级缓存单元的目标缓存线插入至第一指定位置或第一缓存线位置;
通过该第一比率区段记录第一插入比率参数,其中该第一插入比率参数指示在每(N-1)个对应于该第一上级缓存单元的该目标缓存线之后,将对应于该第一上级缓存单元的第N个该目标缓存线插入至该第一缓存线位置,其中N为正整数;
通过该第一位置区段记录第一位置参数,其定义该第一指定位置;
通过该第二控制区段记录第二控制参数,其中该第二控制参数指示将对应于该第二上级缓存单元的该目标缓存线插入至该第二指定位置或该第一缓存线位置;
通过该第二比率区段记录第二插入比率参数,其中该第二插入比率参数指示在每(M-1)个对应于该第二上级缓存单元的该目标缓存线之后,将对应于该第二上级缓存单元的第M个该目标缓存线插入至该第一缓存线位置,其中M为正整数;以及
通过该第二位置区段记录第二位置参数,其定义该第二指定位置,
其中,该第二参数包括该第二控制参数,该第二插入比率参数以及该第二位置参数。
23.如权利要求21所述的方法,其中该第一上级缓存单元及该第二上级缓存单元为第一级缓存,该末级缓存为第二级缓存,该第一上级缓存单元及该第二上级缓存单元属于同一个核心。
24.如权利要求21所述的方法,其中该第一上级缓存单元及该第二上级缓存单元为第一级缓存,该末级缓存为第二级缓存,该第一上级缓存单元及该第二上级缓存单元属于不同的核心。
25.如权利要求21所述的缓存系统,其中该第一上级缓存单元及该第二上级缓存单元属于不同的核心且分别包括第一级缓存及第二级缓存,该末级缓存为第三级缓存。
26.如权利要求21所述的方法,其中该目录还包括共享状态指示值,该共享状态指示值指示该第一上级缓存单元及该第二上级缓存单元是否处于共享状态。
CN201910940890.7A 2019-09-30 2019-09-30 缓存系统及其运作方法 Active CN110688072B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910940890.7A CN110688072B (zh) 2019-09-30 2019-09-30 缓存系统及其运作方法
US16/662,034 US11016892B2 (en) 2019-09-30 2019-10-24 Cache system and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910940890.7A CN110688072B (zh) 2019-09-30 2019-09-30 缓存系统及其运作方法

Publications (2)

Publication Number Publication Date
CN110688072A true CN110688072A (zh) 2020-01-14
CN110688072B CN110688072B (zh) 2023-05-12

Family

ID=69111395

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910940890.7A Active CN110688072B (zh) 2019-09-30 2019-09-30 缓存系统及其运作方法

Country Status (2)

Country Link
US (1) US11016892B2 (zh)
CN (1) CN110688072B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117217977A (zh) * 2023-05-26 2023-12-12 摩尔线程智能科技(北京)有限责任公司 Gpu的数据访问处理方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569960A (zh) * 2016-11-08 2017-04-19 郑州云海信息技术有限公司 一种混合主存的末级缓存管理方法
CN106909515A (zh) * 2017-02-11 2017-06-30 郑州云海信息技术有限公司 面向混合主存的多核共享末级缓存管理方法及装置
CN107577616A (zh) * 2017-09-05 2018-01-12 郑州云海信息技术有限公司 一种划分末级共享缓存的方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6338120B1 (en) * 1999-02-26 2002-01-08 International Business Machines Corporation Apparatus for cache use history encoding and decoding including next lru and next mru and method therefor
US7228534B2 (en) * 2003-06-14 2007-06-05 Intel Corporation Optimizing performance of a program or a computer system
US8688915B2 (en) * 2011-12-09 2014-04-01 International Business Machines Corporation Weighted history allocation predictor algorithm in a hybrid cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569960A (zh) * 2016-11-08 2017-04-19 郑州云海信息技术有限公司 一种混合主存的末级缓存管理方法
CN106909515A (zh) * 2017-02-11 2017-06-30 郑州云海信息技术有限公司 面向混合主存的多核共享末级缓存管理方法及装置
CN107577616A (zh) * 2017-09-05 2018-01-12 郑州云海信息技术有限公司 一种划分末级共享缓存的方法及系统

Also Published As

Publication number Publication date
US11016892B2 (en) 2021-05-25
CN110688072B (zh) 2023-05-12
US20210096991A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
EP3408748B1 (en) Adaptive value range profiling for enhanced system performance
Jaleel et al. High performance cache replacement using re-reference interval prediction (RRIP)
US6493800B1 (en) Method and system for dynamically partitioning a shared cache
JP5413001B2 (ja) キャッシュメモリ
TWI238935B (en) Reconfigurable cache controller for nonuniform memory access computer systems
US10133678B2 (en) Method and apparatus for memory management
US11126555B2 (en) Multi-line data prefetching using dynamic prefetch depth
CN106909515B (zh) 面向混合主存的多核共享末级缓存管理方法及装置
US20130097387A1 (en) Memory-based apparatus and method
CN107810491B (zh) 用于管理并控制存储器高速缓存的方法和系统
US20160055100A1 (en) System and method for reverse inclusion in multilevel cache hierarchy
WO2014107148A1 (en) Adaptive data prefetching
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
US20090132769A1 (en) Statistical counting for memory hierarchy optimization
US20150143059A1 (en) Dynamic write priority based on virtual write queue high water mark
Li et al. Elastic-cache: GPU cache architecture for efficient fine-and coarse-grained cache-line management
US6026470A (en) Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels
US9128856B2 (en) Selective cache fills in response to write misses
CN110688072B (zh) 缓存系统及其运作方法
WO2021118645A1 (en) Systems and methods for adaptive hybrid hardware pre-fetch
Snir et al. On the theory of spatial and temporal locality
US7603522B1 (en) Blocking aggressive neighbors in a cache subsystem
US10331560B2 (en) Cache coherence in multi-compute-engine systems
US8312221B2 (en) Cache system, cache system control method, and information processing apparatus
US8065485B2 (en) Method and apparatus for determining cache storage locations based on latency requirements

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203

Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd.

Address before: Room 301, No. 2537 Jinke Road, Zhangjiang High tech Park, Pudong New Area, Shanghai, October 2012

Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.