CN104572494A - 存储系统及标记存储器 - Google Patents
存储系统及标记存储器 Download PDFInfo
- Publication number
- CN104572494A CN104572494A CN201410105335.XA CN201410105335A CN104572494A CN 104572494 A CN104572494 A CN 104572494A CN 201410105335 A CN201410105335 A CN 201410105335A CN 104572494 A CN104572494 A CN 104572494A
- Authority
- CN
- China
- Prior art keywords
- tag
- data
- tag entry
- specific
- data storage
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0851—Cache with interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
Abstract
本发明提供一种存储系统及标记存储器。其中该存储系统包括:数据存储器;标记存储器,包括:多个第一标记条目,该多个第一标记条目中的每一个与分配于该数据存储器中的多个数据存储线中的一个数据存储线相关联;以及多个第二标记条目;以及控制器,耦接于该数据存储器和该标记存储器之间,该控制器将在该标记存储器中的特定的第二标记条目设置为与特定的数据存储线相关联,该特定的数据存储线与在该标记存储器中的特定的第一标记条目相关联。本发明所提供的存储系统与及标记存储器,可以增加命中率并降低访存流量。
Description
技术领域
本发明有关于存取缓冲数据(例如,高速缓存数据),特别是有关于具有与相同数据存储线(例如,相同的高速缓存线)相关联、用于数据回收的多个标记条目的存储系统以及相关的标记存储器。
背景技术
在现有的存储系统中,当与处理数据的时间相比时,处理器存取数据(例如,指令)时间很长。因此,在处理器的输入端形成了瓶颈。高速缓冲存储器有利于减少处理器存取信息的时间。当高速缓冲存储器包括请求的信息时,该事务处理(transaction)被认为是高速缓存命中(cache hit)。当高速缓冲存储器不包括请求的信息时,该事务处理被认为是高速缓存缺失(cache miss)。在通常情况下,命中率为高速缓冲存储器的关键性能指标。如何提高命中率成为本领域的一个问题。
高速缓冲存储器可以为全相联高速缓存(fully associative cache)、直接映射高速缓存(direct-mapped cache)、组相联高速缓存(set-associativecache)。组相联高速缓存是全相联高速缓存和直接映射高速缓存之间的混合形式,并且组相联高速缓存的硬件复杂性/延迟被认为是介于全相联高速缓存和直接映射高速缓存的硬件复杂性/延迟之间。现有的设计可能会尝试增加组路来提高组相联高速缓存的命中率。然而,增加组路的益处有限。举例来说,当组路数由8变为16时,命中率将不会提高太多,但是门数和复杂性将会增加。除增加组路之外,现有的设计还可以修改采用的替换规则(replacement rule),但是此方法也使提高命中率受到限制。
发明内容
有鉴于此,本发明提出一种存储系统及标记存储器。
依据本发明第一实施方式,提供一种存储系统。该存储系统包括:数据存储器;标记存储器,包括:多个第一标记条目,该多个第一标记条目中的每一个与分配于该数据存储器中的多个数据存储线中的一个数据存储线相关联;以及多个第二标记条目;以及控制器,耦接于该数据存储器和该标记存储器之间,该控制器将在该标记存储器中的特定的第二标记条目设置为与特定的数据存储线相关联,该特定的数据存储线与在该标记存储器中的特定的第一标记条目相关联。
依据本发明第二实施方式,提供一种标记存储器。该标记存储器包括:多个第一标记条目,该多个第一标记条目中的每一个与分配于该数据存储器中的多个数据存储线中的一个数据存储线相关联;以及多个第二标记条目;其中,将特定的第二标记条目设置为与特定的数据存储线相关联;该特定的数据存储线与特定的第一标记条目相关联。
本发明所提出的存储系统及标记存储器,可以增加命中率并降低访存流量。
附图说明
图1为根据本发明实施方式的存储系统的示意图。
图2为图1所示的存储系统中用于侦测高速缓存命中/缺失的决策逻辑的实施方式的示意图。
图3为通过图1所示的存储系统执行读操作的流程图。
图4为根据本发明实施方式的在标记存储器中的标记条目的第一布置的示意图。
图5为根据本发明实施方式的在标记存储器中的标记条目的第二布置的示意图。
具体实施方式
在说明书及权利要求书当中使用了某些词汇来指称特定的元件。本领域技术人员应当理解,电子设备制造商可能会用不同的名词来称呼同样的元件。本说明书及权利要求书并不以名称的差异作为区分元件的方式,而是以元件在功能上的差异作为区分的准则。在通篇说明书及权利要求书当中所提及的“包含”为开放式的用语,故应解释成“包含但不限定于”。另外,“耦接”一词在此为包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表所述第一装置可直接电气连接于所述第二装置,或通过其他装置或连接手段间接地电气连接至所述第二装置。
本发明的概念为使用备用(spare)标记条目(例如,回收标记)以与数据存储线(例如,高速缓存线)相关联,其中该数据存储线与通过用于高速缓存缺失事件的替换规则选择出的标记条目相关联(例如,主标记)。因此,在通过由另一个数据存储器(例如,主存储器或下一级高速缓存)提供的抓取数据来更新数据存储线之前,通过将备用标记条目和另一个传入地址(incoming address)进行比较而可能发生高速缓存命中事件,以及抓取在数据存储线中当前维持的原始数据,然后返回处理器以响应高速缓存命中事件。这样,存储于数据存储线中的原始数据在被淘汰(phased out)之前回收,这提高了命中率并降低了访存流量(memory traffic)。以下将详细描述。
请参考图1,图1为根据本发明实施方式的存储系统的示意图。存储系统100为高速缓存存储器(例如,具有较快数据存取速度的存储器),该高速缓存存储器实现于在处理器和存储器(例如,具有较慢数据存取速度的存储器)之间请求快速信息处理的图形系统或其他任意应用中。在此实施方式中,存储系统100包括数据存储器102、标记存储器104、以及控制器106。数据存储器102包括多个数据存储线112。举例来说,数据存储器102使用静态随机存储器(static random access memory,SRAM)来实现以用于存储高速缓存数据,以及数据存储线112中的每一个为具有指定的高速缓存线尺寸的高速缓存线。标记存储器104为标记随机存储器,并具有存储于其中的多个第一标记条目114和多个第二标记条目116。根据本发明的一个实施方式,数据存储器102和标记存储器104可以分配于相同存储器的不同存储空间中。根据本发明的另一个实施方式,数据存储器102和标记存储器104可以分配于不同的存储器中。控制器106设置在标记存储器104中的特定的第二标记条目116与特定的数据存储线112相关联,特定的数据存储线112与在标记存储器104中的特定的第一标记条目114相关联。
为简洁起见,高速缓冲存储器作为存储系统100的举例来描述本发明的技术特征。因此,在下文中,术语“数据存储线”与“高速缓存线”是可互换的。然而,提出的回收标记设计并非仅限于高速缓存应用。使用提出的回收标记设计以允许单一的数据存储线关联多个标记条目的任意数据存储器/缓冲器均落入本发明的保护范围。
在此实施方式中,第一标记条目114中的每一个作为与分配于数据存储器102中的一个数据存储线112(例如,高速缓存线)相关联的主标记。就第二标记条目116而言,每一个第二标记条目116可用于作为备用标记(例如,回收标记)。举例来说,当数据存储线(例如,高速缓存线)的尺寸被控制器106编程而具有第一值时,每一个第二标记条目116作为与分配于数据存储器102中的一个数据存储线112(例如,高速缓存线)相关联的主标记(即,第一标记条目114和第二标记条目116分别为与分配于数据存储器102中的一个数据存储线112相关联);以及当数据存储线(例如,高速缓存线)的尺寸被控制器106编程而具有大于第一值的第二值时,每一个第二标记条目116作为备用标记(例如,回收标记)。换句话说,第二标记条目116作为主标记或备用标记取决于由控制器106编程的数据存储器102的配置。然而,这仅用于解释说明的目的,而并非用于限制本发明。根据本发明的另一个实施方式,每一个第二标记条目116可仅作为专用的回收标记。此实施方式也落入本发明的保护范围。当第二标记条目116作为回收标记时,第二标记条目116可以被视为第一标记条目114的复制;并且当需要时,第二标记条目116能用于存储第一标记条目114的标记内容。
第一标记条目114和第二标记条目116中的每一个具有多个状态位(例如,有效位122(在图式中用V表示)、修改标志位(dirty bit)124(在图式中用D表示)、以及中断位126(在图式中用P表示))以及标记域128。有效位122记录与这个标记条目相关联的数据存储线112(例如,高速缓存线)是否包括有效数据。每一个标记条目的有效位122被初始设置为指示无效状态(即,有效位122=0)。当从数据存储器(例如,主存储器或下一级高速缓存)140中抓取的数据被存入数据存储线112(例如,高速缓存线)时,与这个数据存储线112(例如,高速缓存线)相关联的对应的标记条目的有效位122被设置为指示有效状态(即,有效位122=1)。修改标志位124记录与这个标记条目相关联的高速缓存数据是否应该被写回主存储器。请注意,修改标志位124仅由写回高速缓存使用。当存储系统100为写通高速缓存时,省略每个标记条目中的修改标志位124。中断位126记录由于高速缓存丢失这个标记条目是否正等待从数据存储器140中抓取数据。每一个标记条目的中断位126被初始设置为指示非中断状态(即,中断位126=0)。在此实施方式中,即使一个特定标记条目的中断位126被设置为指示特定标记条目进入中断状态(即,中断位126=1),与这个特定标记条目相关联的数据存储线112(例如,高速缓存线)仍然是可存取的。其原因在于,回收标记(即,第二标记条目116中的一个)被特定设置为与数据存储线112(例如,高速缓存线)相关联。与回收数据存储线(例如,高速缓存线)数据有关的细节将在下文中进一步详述。关于标记域128,标记域128包括一部分地址,该部分地址对应于存储于这个标记条目相关联的数据存储线112(例如,高速缓存线)中的数据。
控制器106耦接于数据存储器102和标记存储器104之间,并且控制器106控制存储系统100的操作。举例来说,控制器106可为探听(snoop)处理器130总线活动的高速缓存控制器,并且控制器106确定请求的数据DATAR的地址ADDR是否引起高速缓存命中或高速缓存缺失。当通过控制器106确定高速缓存命中时,控制器106从一个数据存储线112(例如,高速缓存线)中抓取请求的数据DATAR并返回请求的数据DATAR至处理器130。当通过控制器106确定高速缓存缺失时,控制器106遵循替换规则而更新一个数据存储线112(例如,高速缓存线)和相关联的标记条目,并返回从数据存储器140中抓取的请求的数据DATAR至处理器130。
请参考图2,图2为图1所示的存储系统100中用于侦测高速缓存命中/缺失的决策逻辑的实施方式的示意图。假定存储系统100为N-路组相联高速缓存,数据存储器102的容量为M字节,每一个数据存储线112(例如,高速缓存线)的数据存储线尺寸为P字节,以及处理器130使用k位地址ADDR。因此,分配于数据存储器102中的数据存储线(例如,高速缓存线)的数目NCL等于M/P;在N-路组相联高速缓存中的组数目Ns等于NCL/N;选择一个组的地址位的数目m等于log2Ns;以及在同一数据存储线(例如,高速缓存线)中对应于字节的地址位的数目n等于log2P。k比特地址线ADDER的剩余地址线作为数据存储线(例如,高速缓存线)的标记。因此,在每一个标记条目中的标记域为(k-m-n)比特。若有j个状态位(例如,有效位,修改标志位及/或中断位),每一个标记条目为(k-m-n)+j比特。当每一个数据存储线(例如,高速缓存线)与一个标记条目(即,一个主标记)相关联时,标记存储器104的容量为[(k-m-n)+j]×NCL比特。
如图2所示,地址位ADDR[0]-ADDR[n-1]代表偏移,该偏移不用于高速缓存命中/缺失决策;地址位ADDR[n]-ADDR[m+n-1]由控制器106使用以在N路组相联高速缓存中选择一个Ns组;以及地址位ADDR[m+n]-ADDR[k-1]分别代表请求的标记,该请求的标记将通过比较电路与属于已选择的组的所有标记条目中的标记域的标记内容进行比较。当请求的标记与标记条目中存储的标记内容匹配时,比较电路的比较输出CR可以设置为“1”;以及当请求的标记与标记条目中存储的标记内容不匹配时,比较电路的比较输出CR可以设置为“0”。比较电路202_1-202_N的比较输出CR分别被馈入多个与门204_1-204_N。与门的逻辑输出依据接收的比较结果和对应的标记条目的状态位(例如,有效位和中断位)。在此实施方式中,当有效位122=1、中断位126=0以及比较输出CR=1时,与门的逻辑输出被设置为“1”。基于与门204_1-204_N的逻辑输出,或门206将指示是否高速缓存命中或高速缓存缺失。
在较佳的实施方式中,本发明的控制器106能够根据应用/计算需求而编程分配于数据存储器102中的每一个数据存储线(例如,高速缓存线)的数据存储线尺寸。由于数据存储线(例如,高速缓存线)尺寸可编程,当控制器106改变数据存储线(例如,高速缓存线)尺寸为更大值时,一些标记条目将变为备用条目。举例来说,每一个数据存储线112(例如,高速缓存线)的数据存储线尺寸可以编程为P’字节,其中P’>P。因此,分配于数据存储器102中的数据存储线(例如,高速缓存线)的数目NCL’等于M/P’,其中M/P’<M/P。在N路组相联高速缓存中的组数目Ns’等于NCL’/N,其中NCL’/N<NCL/N。选择一个组的地址位的数目m’等于log2Ns’,其中m’<m。对应于在相同数据存储线(例如,高速缓存线)中的字节的地址位n’的数目为log2P’,其中n’>n。因此,在每一个标记条目中的标记域具有(k-m’-n’)比特。在根据本发明的一个实施方式,由于m’<m并且n’>n,(k-m’-n’)可以等于(k-m-n)。如上所述,NCL’<NCL,根据本发明的一个实施方式,若标记条目的数目为NCL、数据存储线(例如,高速缓存线)的数目为NCL’且数据存储线(例如,高速缓存线)中的每一个具有较大的数据存储线尺寸P’,则意味着仅一部分标记条目的需要视为与NCL’个数据存储线(例如,高速缓存线)关联的NCL’个主标记。在此实施方式中,NCL标记条目的剩余标记条目可以视为数据存储线(例如,高速缓存线)数据回收的回收标记。
举例来说,关于具有128字节的数据存储线(例如,高速缓存线)和4路组相联的64KB静态随机存储器,数据存储线(例如,高速缓存线)的数目等于64K字节/128字节(即,64*1024/128=512),选择一个组的地址位的数目等于log2(512/4)=7,以及在相同数据存储线(例如,高速缓存线)中的128字节的地址位的数目等于log2(128)=7。此外,若使用32位存储地址以及每一个标记条目具有两个状态位(例如,一个有效位和一个中断位),则标记条目尺寸等于32–(7+7)+2=20。关于具有64字节的数据存储线(例如,高速缓存线)和4路组相联的64KB静态随机存储器,数据存储线(例如,高速缓存线)的数目等于64K字节/64字节(即,64*1024/64=1024),选择一个组的地址位的数目等于log2(1024/4)=8,以及在相同数据存储线(例如,高速缓存线)中的64字节的地址位的数目等于log2(64)=6。此外,若使用32位存储地址以及每一个标记条目具有两个状态位(例如,一个有效位和一个中断位),则标记条目尺寸等于32–(8+6)+2=20。为设计配置/编程数据存储线(例如,高速缓存线)尺寸,由于数据存储器102的容量是固定的,数据存储线(例如,高速缓存线)102的总数会改变。对于128字节的数据存储线(例如,高速缓存线)尺寸,需要521个标记条目与分配于数据存储器102中的512个数据存储线(例如,高速缓存线)相关联,其中标记条目尺寸为20比特。对于64字节的数据存储线(例如,高速缓存线)尺寸,需要1024个标记条目与分配于数据存储器102中的1024个数据存储线(例如,高速缓存线)相关联,其中标记条目尺寸也为20比特。请注意,与具有128字节的数据存储线(例如,高速缓存线)尺寸的高速缓存存储器需要的主标记数相比,具有64字节的数据存储线(例如,高速缓存线)尺寸的高速缓存存储器需要的主标记数为前者的2倍。为支持128字节的数据存储线(例如,高速缓存线)尺寸和64字节的数据存储线(例如,高速缓存线)尺寸,标记存储器104可以使用具有容量为1024*20比特的静态随机存储器来实现。根据本发明的较佳实施方式,在标记存储器104中的标记条目可以分类为奇数标记和偶数标记。本发明以此实施方式来说明,而并非用于限制本发明。如图1所示的第一标记条目114具有偶数标记,以及如图1所示的第二标记条目116具有奇数标记。当使用64字节的数据存储线(例如,高速缓存线)尺寸和32位存储地址时,地址位ADDR[6]由控制器106引用以选择偶数标记或奇数标记用于标记匹配检测(即,高速缓存命中测试/高速缓存缺失测试)。举例来说,当地址位ADDR[6]=0时,控制器106选择偶数标记来执行标记匹配检测,以及当地址位ADDR[6]=1时,控制器106选择奇数标记来执行标记匹配检测。当使用128字节数据存储线(例如,高速缓存线)尺寸时,仅偶数标记作为主标记来使用,而奇数标记作为回收标记来使用。用于提高命中率和降低访存流量的回收数据存储线(例如,高速缓存线)数据的细节将在下文中详述。
图3为通过图1所示的存储系统100执行读操作的流程图。若提供的结果实质上相同的话,则本发明的步骤并不需要按图3所示的步骤顺序来严格执行。在步骤302中,控制器106接收从处理器130发出的传入(incoming)的地址ADDR以得到请求的数据DATAA。基于地址ADDR,控制器106执行主标记(main tag,MTAG)匹配检测,即检测是否主标记匹配(步骤304)。当使用如图2所示的决策逻辑检测到高速缓存命中(即,主标记匹配)时,控制器106直接从相应的数据存储线112(例如,高速缓存线)抓取请求的数据DATAA,其中数据存储线112(例如,高速缓存线)与指示高速缓存命中的主标记(即,一个第一标记条目114)相关联(步骤306)。接下来,控制器106返回请求的数据DATAA至处理器130以响应地址ADDR(步骤308)。
当使用如图2所示的决策逻辑检测到高速缓存缺失(即,主标记不匹配)时(步骤304),控制器106执行回收标记(recycling tag,RTAG)匹配检测,即检测是否回收标记匹配(步骤310)。回收标记匹配检测的操作与主标记匹配检测的操作相同。因此,当使用如图2所示的决策逻辑检测高速缓存命中(即,回收标记匹配)时,控制器106直接从数据存储线112(例如,高速缓存线)抓取请求的数据DATAA,其中数据存储线112(例如,高速缓存线)与指示高速缓存命中的回收标记(即,一个第二标记条目116)相关联(步骤306)。接下来,控制器106返回请求的数据DATAA至处理器130以响应地址ADDR(步骤308)
当在回收标记匹配检测期间使用如图2所示的决策逻辑检测到高速缓存缺失(即,回收标记不匹配)时,(步骤310),控制器106采用替换算法,例如最近使用(Least Recently Used,LRU)算法,以替换由地址ADDR选择的组中的一个主标记(步骤312)。在步骤312中的特定的第一标记条目114由控制器106选择之后,控制器106检测特定的第一标记条目114是否具有有效状态,即控制器106检测特定的第一标记条目114的有效位122以确定特定的第一标记条目114相关联的高速缓存是否包括有效数据(步骤314)。若特定的第一标记条目114的有效位122指示在与特定的第一标记条目114相关联的数据存储线(例如,高速缓存线)中没有存储有效数据,则不需要数据存储线(例如,高速缓存线)数据回收。因此,步骤流程转至步骤318。然而,若特定的第一标记条目114的有效位122指示有效数据存储于与特定的第一标记条目114相关联的数据存储线(例如,高速缓存线)中,则激活提出的数据存储线(例如,高速缓存线)数据回收方案。在此实施方式中,当第二标记条目116视为回收标记时,第二标记条目116可被视为第一标记条目114的副本。在步骤316中,复制存储于特定的第一标记条目114的标记域128中的标记内容至与特定的第二标记条目116的标记域128中;其中,特定的第二标记条目116与特定的第一标记条目114对应,特定的第一标记条目114和特定的第二标记条目116均与相同的数据存储线(例如,高速缓存线)关联。此外,设置特定的第二标记条目进入有效状态,即控制器106将特定的第二标记条目116的有效位122设置为一个值(例如,“1”)以指示与特定的第二标记条目116相关联的数据存储线(例如,高速缓存线)包括有效数据。在步骤318中,特定的第一标记条目114的标记域通过从地址ADDR取得的新标记内容来更新,以及设置特定的第一标记条目进入中断状态。即控制器106将特定的第一标记条目114的中断位126设置为一个值(例如,“1”)以指示与特定的第一标记条目114相关联的数据存储线(例如,高速缓存线)正等待对于地址ADDR的请求的数据DATAA,该请求的数据DATAA从数据存储器140抓取。因此,特定的第一标记条目114不应用于主标记匹配检测。在步骤320中,控制器106从数据存储器140中抓取对于地址ADDR的请求的数据DATAA。
在与特定的第一标记条目114关联的高速缓存由请求的数据DATAA更新/覆写以用于地址ADDR之前,原始数据仍然维持在与特定的第一标记条目114相关联的数据存储线(例如,高速缓存线)中,原始数据的原始标记被复制至特定的第二标记条目116的标记域。由于数据存储器140具有较慢的数据存取速度,从数据存储器140中抓取请求的数据具有数百个时钟周期的延迟。在特定的第一标记条目114保持为中断状态的期间,原始的数据存储线(例如,高速缓存线)数据仍然有用并通过一个或多个传入的地址而命中(步骤310)。
在控制器106接收从数据存储器140中抓取的请求的数据DATAA之后,设置特定的第二标记条目116进入无效状态。即控制器106设置特定的第二标记条目116的有效位122为另一个值(例如,“0”),以禁能与特定的第一标记条目114相关联的数据存储线112(例如,高速缓存线)的高速缓存数据回收(步骤322)。在步骤324中,设置特定的第一标记条目114离开中断状态,即控制器106通过另一个值(例如,“0”)设置特定的第一标记条目114的中断位126。在步骤326中,控制器106通过从数据存储器140中抓取请求的数据DATAA,而覆写存储于与特定的第一标记条目相关联的数据存储线112(例如,高速缓存线)中的原始数据。需要注意的是,根据本发明的另一实施方式,步骤324与步骤326可以同时进行。接下来,控制器106返回请求的数据DATAA至处理器130以响应地址ADDR(步骤308)。
允许第一标记条目(例如,偶数标记)114和第二标记条目(例如,奇数标记)116随机地分配在标记存储器104中。在实践中,第一标记条目(例如,偶数标记)114和第二标记条目(例如,奇数标记)116可被恰当地布置于标记存储器104中以用于取得更佳的标记存取效率。请参考图4,图4为根据本发明实施方式的在标记存储器104中的标记条目的第一布置的示意图。在此实施方式中,标记存储器104具有第一存储体(在图式中标记为“Bank0”)以及第二存储体(在图式中标记为“Bank1”)。第一存储体和第二存储体中的每一个具有以交叉(interleaving)的方式布置的第一存储行(例如,偶数行)和第二存储行(例如,奇数行)。在此实施方式中,第一标记条目114仅存储于第一存储行(例如,偶数行)中,以及第二标记条目116仅存储于第二存储行(例如,奇数行)中。如图4所示,在一个存储体中的每一个存储行能够存储4个标记条目。考虑本发明的一个实施方式,高速缓存为8路组相联。当由于更小的数据存储线(例如,高速缓存线)尺寸(例如,64字节)而使得第一标记条目114和第二标记条目116均被用于主标记时,若由地址ADDR选择一个组,则应该读出属于同一组的8个第一标记条目114以用于标记比较;以及若由地址ADDR选择一个组,则应该读出属于同一组的8个第二标记条目116以用于标记比较。为减少属于相同组的标记条目的抓取时间,属于相同组的第一标记条目114被存储于不同的存储体中,以及属于相同组的第二标记条目116被存储于不同的存储体中。这样,可以同时地读出第一存储体和第二存储体,以使得先前一半请求的标记内容可以从第一存储体中得到以及后面一半请求的标记内容可以同时从第二存储体中得到。具体地,控制器106可以在一个周期内得到请求的主标记。
在上述实施方式中,数据存储线(例如,高速缓存线)尺寸通过控制器106而编程,以具有不同应用/计算要求的不同值。在本发明的实施方式中,控制器106也可设计为编程存储系统100关联程度。举例来说,基于不同的应用/计算要求,存储系统100可编程为N路组相联高速缓存或M路组相联高速缓存,其中M和N为不同的整数。请参考图5,图5为根据本发明实施方式的在标记存储器104中的标记条目的第二布置的示意图。如上所述,标记存储器104具有第一存储体(在图式中标记为“Bank0”)以及第二存储体(在图式中标记为“Bank1”)。考虑本发明的一个实施方式,上述的8路组相联高速缓存由控制器106编程以变为4路组相联。当由于更大的高速缓存尺寸(例如,128字节)而使得第一标记条目114用于主标记以及第二标记条目116用于回收标记时,若由地址ADDR选择一个组,则应该读出属于同一组的4个第一标记条目114以用于标记比较(步骤304);以及若由地址ADDR选择一个组,则应该读出属于同一组的4个第二标记条目116以用于标记比较(步骤310)。在此实施方式中,第一存储体和第二存储体的每一个存储行能够存储4个标记条目,第一标记条目114仅存储于第二存储体中,以及第二标记条目116仅存储于第一存储体中。这样,主标记和回收标记可同时由控制器106从存储体中读出。
在图3所示的上述实施方式中,使用回收标记来回收数据存储线(例如,高速缓存线)数据的概念应用于存储系统100,其中存储系统100为读高速缓存。然而,相同的概念可以应用于存储系统100,其中存储系统100为读/写高速缓存。即,使用适当的回收标记设计的任意高速缓冲存储器均落入本发明的保护范围。
总的来说,在由于高速缓存缺失事件,改变与数据存储线(例如,高速缓存线)相关联的主标记之后,以及在由对于接收地址的请求的数据更新数据存储线(例如,高速缓存线)之前,提出的回收标记设计利用与数据存储线(例如,高速缓存线)相关联的回收标记。因此,在数据存储线(例如,高速缓存线)中的原始数据在读数据覆写之前仍然有用。当从处理器发出另一个地址时,高速缓存命中/缺失首先应用于主标记。当应用于主标记的高速缓存命中/缺失测试指示高速缓存缺失时,高速缓存命中/缺失测试应用于回收标记以查看是否有对于逐渐淘汰(phasing out)的数据存储线(例如,高速缓存线)的重新使用的数据(reusing data)的高速缓存命中。因此,提出的回收标记设计能够增加命中率并降低访存流量。具体地,当存储延迟较大时,提出的回收标记设计可以降低更多的访存流量。此外,当降低存储存取量时,功率消耗将降低。
虽然本发明已以较佳实施例揭露如上,然而必须了解其并非用以限定本发明。相反,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围应当以权利要求书所界定的保护范围为准。
Claims (21)
1.一种存储系统,其特征在于,包括:
数据存储器;
标记存储器,包括:
多个第一标记条目,该多个第一标记条目中的每一个与分配于该数据存储器中的多个数据存储线中的一个数据存储线相关联;以及
多个第二标记条目;以及
控制器,耦接于该数据存储器和该标记存储器之间,该控制器将在该标记存储器中的特定的第二标记条目设置为与特定的数据存储线相关联,该特定的数据存储线与在该标记存储器中的特定的第一标记条目相关联。
2.根据权利要求1所述的存储系统,其特征在于,
该多个第一标记条目和该多个第二标记条目中的每一个具有标记域;以及
该控制器复制该特定的第一标记条目的该标记域的原始标记内容至该特定的第二标记条目的该标记域,然后通过新的标记内容更新该特定的第一标记条目的该标记域。
3.根据权利要求2所述的存储系统,其特征在于,
当确定在该数据存储器中不能得到对于地址的请求的数据时,该控制器从该第一标记条目选择该特定的第一标记条目,其中该新的标记内容是该地址的一部分。
4.根据权利要求3所述的存储系统,其特征在于,
该特定的第一标记条目进一步包括状态位;以及
当该特定的第一标记条目的该标记域由该新的标记内容更新时,该控制器通过第一值设置该状态位;然后该控制器通过第二值设置该状态位,该特定的数据存储线通过从另一个数据存储器中抓取的该请求的数据来更新。
5.根据权利要求3所述的存储系统,其特征在于,
该特定的第二标记条目进一步包括状态位;以及
当该特定的第二标记条目的该标记域存储该特定的第一标记条目的该标记域的原始标记内容时,该控制器通过第一值设置该状态位;然后通过从另一个数据存储器中抓取的该请求的数据来更新该特定的数据存储线,并且该控制器通过第二值设置该状态位。
6.根据权利要求3所述的存储系统,其特征在于,
在从另一个数据存储器中抓取的对于该地址的该请求的数据更新该特定的数据存储线之前,当该特定的第二标记条目指示在该特定的数据存储线中得到对于另一个地址的请求的数据时,该控制器抓取并输出存储于该特定的数据存储线中的原始数据以响应该另一个地址。
7.根据权利要求1所述的存储系统,其特征在于,
该控制器进一步编程在该数据存储器中分配的该多个数据存储线中的每一个的数据存储线的尺寸。
8.根据权利要求7所述的存储系统,其特征在于,
当该多个数据存储线的尺寸由第一值编程时,该多个第一标记条目和该多个第二标记条目分别与分配于该数据存储器中的多个第一数据存储线相关联;以及
当该多个数据存储线的尺寸由第二值编程时,仅在该标记存储器中的该多个第一标记条目分别与分配于该数据存储器中的多个第二数据存储线相关联。
9.根据权利要求8所述的存储系统,其特征在于,
该第二值大于该第一值;以及
分配于该数据存储器中的该多个第一数据线的数目大于分配于该数据存储器中的该多个第二数据存储线的数目。
10.根据权利要求1所述的存储系统,其特征在于,该控制器进一步编程该存储系统的关联程度。
11.根据权利要求1所述的存储系统,其特征在于,
该标记存储器具有多个存储体,该多个存储体中的每一个具有以交叉方式布置的多个第一存储行和多个第二存储行;
该多个第一标记条目仅存储于该多个存储体的该多个第一存储行中;
该多个第二标记条目仅存储于该多个存储体的该多个第二存储行中;以及
属于相同组的第一标记条目被存储于不同的存储体中;以及属于相同组的第二标记条目被存储于不同的存储体中。
12.根据权利要求1所述的存储系统,其特征在于,
该标记存储器具有多个存储体;
该多个第一标记条目仅存储于一个存储体中;以及
该多个第二标记条目仅存储于另一个存储体中。
13.根据权利要求1所述的存储系统,其特征在于,该数据存储器为读高速缓存,或者该数据存储器为读/写高速缓存。
14.一种标记存储器,其特征在于,包括:
多个第一标记条目,该多个第一标记条目中的每一个与分配于该数据存储器中的多个数据存储线中的一个数据存储线相关联;以及
多个第二标记条目;
其中,将特定的第二标记条目设置为与特定的数据存储线相关联;该特定的数据存储线与特定的第一标记条目相关联。
15.根据权利要求14所述的标记存储器,其特征在于,
该多个第一标记条目和该多个第二标记条目中的每一个具有标记域;
该特定的第二标记条目的该标记域存储该特定第一标记条目的该标记域的原始标记内容;以及
该特定的第二标记条目的该标记域通过覆写该原始标记内容来存储新的标记内容。
16.根据权利要求15所述的标记存储器,其特征在于,
该特定的第一标记条目进一步包括状态位;以及
当该特定的第一标记条目的该标记域由该新的标记内容更新时,该状态位具有第一值;然后该特定的数据存储线由对应于该新的标记内容的数据来更新,该状态位具有第二值。
17.根据权利要求15所述的标记存储器,其特征在于,
该特定的第二标记条目进一步包括状态位;以及
当该特定的第二标记条目的该标记域存储该特定的第一标记条目的该标记域的该原始标记内容时,该状态位具有第一值;然后该特定的数据存储线由对应于该新的标记内容的数据来更新,该状态位具有第二值。
18.根据权利要求14所述的标记存储器,其特征在于,
当该多个数据存储线的尺寸由第一值设置时,该多个第一标记条目和该多个第二标记条目分别与分配于该数据存储器中的多个数据存储线相关联;以及
当该多个数据存储线的尺寸由第二值设置时,仅在该标记存储器中的该多个第一标记条目分别与分配于该数据存储器中的多个数据存储线相关联。
19.根据权利要求18所述的标记存储器,其特征在于,该第二值大于该第一值。
20.根据权利要求14所述的标记存储器,其特征在于,
该标记存储器具有多个存储体,该多个存储体中的每一个具有以交叉方式布置的多个第一存储行和多个第二存储行;
该多个第一标记条目仅存储于该多个存储体的该多个第一存储行中;
该多个第二标记条目仅存储于该多个存储体的该多个第二存储行中;
属于相同组的第一标记条目被存储于不同的存储体中;以及属于相同组的第二标记条目被存储于不同的存储体中。
21.根据权利要求14所述的标记存储器,其特征在于,
该标记存储器具有多个存储体;
该多个第一标记条目仅存储于一个存储体中;以及
该多个第二标记条目仅存储于另一个标记条目中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/061,765 US9304929B2 (en) | 2013-10-24 | 2013-10-24 | Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device |
US14/061,765 | 2013-10-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572494A true CN104572494A (zh) | 2015-04-29 |
CN104572494B CN104572494B (zh) | 2018-02-06 |
Family
ID=49641593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410105335.XA Active CN104572494B (zh) | 2013-10-24 | 2014-03-20 | 存储系统及标记存储器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9304929B2 (zh) |
EP (1) | EP2866148B1 (zh) |
CN (1) | CN104572494B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9846648B2 (en) | 2015-05-11 | 2017-12-19 | Intel Corporation | Create page locality in cache controller cache allocation |
US10248422B2 (en) * | 2016-07-02 | 2019-04-02 | Intel Corporation | Systems, apparatuses, and methods for snooping persistent memory store addresses |
US10922230B2 (en) * | 2016-07-15 | 2021-02-16 | Advanced Micro Devices, Inc. | System and method for identifying pendency of a memory access request at a cache entry |
TWI719720B (zh) * | 2019-11-18 | 2021-02-21 | 瑞昱半導體股份有限公司 | 資料寫入系統與方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1707447A (zh) * | 2004-05-28 | 2005-12-14 | 三星电子株式会社 | 高速缓冲存储器的高速缓存命中逻辑 |
CN101558388A (zh) * | 2006-09-29 | 2009-10-14 | Mips技术公司 | 数据高速缓存虚拟提示路线预测及其应用 |
US20110082980A1 (en) * | 2009-10-02 | 2011-04-07 | International Business Machines Corporation | High performance unaligned cache access |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7856523B2 (en) * | 2005-06-01 | 2010-12-21 | Microsoft Corporation | Random Access Memory (RAM) based Content Addressable Memory (CAM) management |
US8514237B2 (en) | 2007-05-22 | 2013-08-20 | International Business Machines Corporation | Two dimensional memory caching apparatus for high definition video |
JP5348146B2 (ja) * | 2009-01-28 | 2013-11-20 | 日本電気株式会社 | キャッシュメモリおよびその制御方法 |
US8266409B2 (en) | 2009-03-03 | 2012-09-11 | Qualcomm Incorporated | Configurable cache and method to configure same |
JP5622155B2 (ja) | 2009-10-20 | 2014-11-12 | 国立大学法人電気通信大学 | キャッシュメモリおよびその制御方法 |
-
2013
- 2013-10-24 US US14/061,765 patent/US9304929B2/en active Active
- 2013-11-21 EP EP13193834.2A patent/EP2866148B1/en active Active
-
2014
- 2014-03-20 CN CN201410105335.XA patent/CN104572494B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1707447A (zh) * | 2004-05-28 | 2005-12-14 | 三星电子株式会社 | 高速缓冲存储器的高速缓存命中逻辑 |
CN101558388A (zh) * | 2006-09-29 | 2009-10-14 | Mips技术公司 | 数据高速缓存虚拟提示路线预测及其应用 |
US20110082980A1 (en) * | 2009-10-02 | 2011-04-07 | International Business Machines Corporation | High performance unaligned cache access |
Also Published As
Publication number | Publication date |
---|---|
EP2866148A1 (en) | 2015-04-29 |
EP2866148B1 (en) | 2018-05-30 |
US9304929B2 (en) | 2016-04-05 |
US20150121011A1 (en) | 2015-04-30 |
CN104572494B (zh) | 2018-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109983536B (zh) | 响应标签匹配命令的存储电路 | |
US6470437B1 (en) | Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design | |
US6192458B1 (en) | High performance cache directory addressing scheme for variable cache sizes utilizing associativity | |
CN103383672B (zh) | 高速缓存控制以减少事务回滚 | |
US6493812B1 (en) | Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache | |
CN104572494A (zh) | 存储系统及标记存储器 | |
GB2546245A (en) | Cache memory | |
US20100005241A1 (en) | Detection of streaming data in cache | |
US7461212B2 (en) | Non-inclusive cache system with simple control operation | |
EP0675443A1 (en) | Apparatus and method for accessing direct mapped cache | |
US5749087A (en) | Method and apparatus for maintaining n-way associative directories utilizing a content addressable memory | |
US7007135B2 (en) | Multi-level cache system with simplified miss/replacement control | |
CN110046107A (zh) | 存储器地址转换 | |
US5555379A (en) | Cache controller index address generator | |
CN111124954B (zh) | 一种两级转换旁路缓冲的管理装置及方法 | |
US5581730A (en) | Condition detector and prioritizer with associativity determination logic | |
US7865691B2 (en) | Virtual address cache and method for sharing data using a unique task identifier | |
US20040015669A1 (en) | Method, system, and apparatus for an efficient cache to support multiple configurations | |
CA1309181C (en) | High availability cache memory | |
US20060143397A1 (en) | Dirty line hint array for cache flushing | |
CN101419543B (zh) | 预测高速寄存器的存取位置的方法及系统 | |
US6763431B2 (en) | Cache memory system having block replacement function | |
US20240054073A1 (en) | Circuitry and Method | |
JP2013097637A (ja) | キャッシュ装置、メモリシステム及びデータ転送方法 | |
JPH04175945A (ja) | キャッシュメモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |