CN100517274C - 高速缓冲存储器及其控制方法 - Google Patents
高速缓冲存储器及其控制方法 Download PDFInfo
- Publication number
- CN100517274C CN100517274C CNB2005800092267A CN200580009226A CN100517274C CN 100517274 C CN100517274 C CN 100517274C CN B2005800092267 A CNB2005800092267 A CN B2005800092267A CN 200580009226 A CN200580009226 A CN 200580009226A CN 100517274 C CN100517274 C CN 100517274C
- Authority
- CN
- China
- Prior art keywords
- condition
- address
- mentioned
- unit
- cache memory
- 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.)
- Expired - Fee Related
Links
Images
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
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
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
本发明的高速缓冲存储器具有预测处理部(39),该预测处理部(39)根据由处理器所输出的存储器的访问的进行状况来预测下一个应该预取的线地址;预测处理部(39)具有预取部(414)和触摸部(415),该预取部(414)从存储器中将所预测的线地址的数据预取到高速缓冲存储器中,该触摸部(415)不将数据从存储器中加载到高速缓冲存储器上,而是将所预测的线地址作为标签设定到高速缓存项,并使有效标志有效。
Description
技术领域
本发明涉及用于提高处理器内存访问速度的高速缓冲存储器及其控制方法。
背景技术
近几年,在微处理器领域,例如有由SRAM(静态随机存储器StaticRandom Access Memory)所构成的小容量的、高速的、高速缓冲存储器,将这样的高速缓冲存储器设置在微处理器内部,或设置在其周边,通过将数据的一部分存储到高速缓冲存储器,从而提高微处理器的内存访问速度。
为了提高高速缓存的效率(提高命中率、减少高速缓存谷值延误时间),在高速缓存故障(未命中)发生之前,有预加载(pre-load)(或预取(pre-fetch))技术,该技术是把将要使用的数据预先填充到高速缓存内的技术(例如,专利文献1)。
在以往的预取技术中,将含有地址的线加载到高速缓存中,该地址是由预取命令指定的。据此,试图降低高速缓存故障。
专利文献1:日本特开平7-295882号公报
然而,通过上述以往的技术,例如,通过软件在循环的外侧进行一次性的预取的情况下,由于预先在高速缓存中确保了在循环中所必要的所有的数据区域,当高速缓存的容量小时,除此之外所必要的数据被逐出高速缓存,从而发生高速缓存故障。并且,数据的高速缓存结束后,在循环的外侧进行一次性的无效化等情况下,由于到循环处理结束为止,通过这些动作不能使高速缓存为空,而导致高速缓存的容量不足,发生高速缓存故障。
而且,将由软件所进行高速缓存操作的命令***到循环中的情况下,进行高速缓存操作的地址需要在循环中由软件来管理。即,由于进行高速缓存操作的命令需要在循环中描述,因此发生性能的低下。
再者,向存储器的访问状况由硬件来监视,在由硬件自动地进行高速缓存操作的情况下,若不进行正确的预测则将发生徒劳的转送,或者,若没有来自软件的正确的信息,则将失去高速缓存上的数据和外部存储器上的数据的匹配性,因此,通过硬件的预测来进行上述的操作是困难的。
发明内容
本发明的目的是提供一种高速缓冲存储器***,根据由处理器预先设定的信息,硬件对处理器的程序动作的状况进行监视,并同步以适当的定时对高速缓存进行操作。
为了达到上述目的,本发明的高速缓冲存储器***,其特征在于,包括:条件生成用信息保持单元,保持信息,该信息用于生成从处理器给出的新的条件;指令保持单元,保持从处理器给出的操作指令;条件保持单元,保持条件,该条件与处理器的状态有关;判断单元,利用条件保持单元中保持的条件,判断当前的处理器的状态是否满足上述条件;地址生成单元,生成成为操作对象的地址;操作单元,在上述判断单元判断为满足条件的情况下,利用由上述地址生成单元所生成的地址,按照指令保持单元中保持的操作指令,对高速缓冲存储器进行操作;及条件生成单元,利用当前的处理器的状态或者条件保持单元保持的条件以及用于生成条件生成用信息保持单元保持的新的条件的信息,生成新的条件,并使该新的条件保持在条件保持单元中。
在此,可以是上述条件生成单元在上述判断单元判断为满足上述条件的情况下,生成新的条件。
据此构成,由于当处理器的动作状态成为满足条件时对高速缓存进行操作,因此,可以与处理器的动作的进行状况同步,对高速缓冲存储器进行操作。并且,由于未涉及到软件,因此,对处理器不产生负荷,从而可以高效率地使高速缓存动作,且不会招致性能的劣化。
在此,也可以是上述条件生成单元生成条件,该条件与处理器内的特定的寄存器的值有关。也可以是上述特定寄存器为程序计数器。
据此构成,可以将存储器访问地址或程序读取地址作为上述条件,从而能够监视处理器的状态。
在此,也可以还具有第2条件保持单元,该第2条件保持单元保持条件,该条件表示处理器生成的、向特定的地址范围内的存储器访问以及向特定的地址范围外的存储器访问中的某一个。
并且,也可以是上述条件生成单元,将处理器执行特定命令作为上述条件来生成。
在此,也可以是上述条件生成单元,通过对当前的条件实施特定的运算,来生成上述新的条件。
并且,也可以是上述条件生成单元将存储器访问地址作为条件来生成;在上述判断单元判断为满足条件的情况下,通过对当前的条件加上常数,来生成上述新的条件。
在此,也可以是上述常数为增量值或减量值以及地址的差分值中的某一个,该增量值或减量值为由处理器所执行的附有后增量的加载/存储命令中的增量值或减量值,该地址的差分值为由处理器所执行的2次的加载/存储命令中的差分值。
在此,也可以是上述条件生成单元生成多个条件;上述判断单元,判断是否满足所有的多个条件。
并且,也可以是上述条件生成单元生成多个条件;上述判断单元,判断是否满足多个条件中的某一个。
在此,也可以是上述操作单元包括:数据判断单元,在上述判断单元判断为满足条件时,判断数据是否被保存在高速缓冲存储器中,该数据是与由上述地址生成单元所生成的地址相对应的数据;选择单元,在判断为未被保存的情况下,选择高速缓冲存储器中的线;回写单元,当上述所选择的线有效且为脏,则进行回写;转送单元,将与上述地址对应的数据从存储器中转送到回写后所选择的线上;以及注册单元,将上述地址作为标签,注册到上述所选择的线上。
据此构成,可以与监视处理器的动作状况同步,以适当的定时进行高速缓冲存储器的预取。
在此,也可以是上述操作单元包括:数据判断单元,在上述判断单元判断为满足条件时,判断数据是否被保存在高速缓冲存储器中,该数据是与由上述地址生成单元所生成的地址相对应的数据;选择单元,在判断为未被保存的情况下,选择高速缓冲存储器中的线;回写单元,当上述被选择的线有效且为脏,则进行回写;注册单元,从存储器中不将数据转送到所选择的线上,而将上述生成的地址作为标签,注册到所选择的线上。
据此构成,可以不必将数据转送到高速缓冲存储器的线上,而对数据进行确保(在此称为触摸),且该确保是可以与监视处理器的动作状况同步,且以适当的定时进行的。
在此,也可以是上述操作单元包括:数据判断单元,在上述判断单元判断为满足条件时,判断数据是否被保存在高速缓冲存储器中,该数据是与由上述地址生成单元所生成的地址相对应的数据;选择单元,在判断为被保存的情况下,选择高速缓冲存储器中保存了数据的线;标志设置单元,在所选择的线的预定的位中设置标志;以及回写单元,当设置了上述标志的的线有效且为脏,则进行回写。
据此构成,可以与监视处理器的动作状况同步,以适当的定时进行高速缓冲存储器的线数据的回写(高速缓存结束)。
在此,也可以是上述操作单元包括:数据判断单元,在上述判断单元判断为满足条件时,判断数据是否被保存在高速缓冲存储器中,该数据是与由上述地址生成单元所生成的地址相对应的数据;选择单元,在判断为被保存的情况下,选择高速缓冲存储器中保存了数据的线;标志设置单元,在所选择的线的预定的位中设置标志;以及无效化单元,对设置了上述标志的线进行无效化。
据此构成,可以与监视处理器的动作状况同步,以适当的定时进行高速缓冲存储器的线的无效化。
在此,也可以是上述操作单元包括:数据判断单元,在上述判断单元判断为满足条件时,判断数据是否被保存在高速缓冲存储器中,该数据是与由上述地址生成单元所生成的地址相对应的数据;选择单元,在判断为被保存的情况下,选择高速缓冲存储器中保存了数据的线;以及变更单元,对于表示线的访问顺序的顺序信息,变更所选择的线的访问顺序。
据此构成,可以与监视处理器的动作状况同步,以适当的定时进行高速缓冲存储器的线的访问顺序信息的变更。据此,或换而言之根据LRU,可以使高速缓存的置换顺序提早或延迟。
在此,也可以包括:调整单元,在上述第2条件保持单元中保持的存储器地址示出线的中途的情况下,通过进行调整以便示出该线的开头、下一个线的开头、以及上一个线的开头的某一个,来生成地址。
据此构成,处理器不论在地址升顺访问的情况下,还是在地址降顺访问的情况下,均可以适当地算出下一个所需要的线的地址。
并且,有关本发明的高速缓冲存储器的控制方法,具有与上述同样的单元及作用。
本发明的高速缓冲存储器的控制方法也可以是,在上述条件生成用信息保持步骤中执行的命令以及在上述指令保持步骤中执行的命令是转送命令。
本发明的高速缓冲存储器***也可以是,用于生成向上述条件生成用信息保持单元的新的条件的信息的保存以及向上述指令保持单元的操作指令的保存是通过转送命令来执行的。
本发明的高速缓冲存储器***,其特征在于,包括:条件生成用信息保持单元,保持信息,该信息用于生成从处理器给出的新的条件;指令保持单元,保持从处理器给出的操作指令;条件保持单元,保持条件,该条件与处理器的状态有关;判断单元,利用条件保持单元中保持的条件,判断当前的处理器的状态是否满足条件;操作单元,在判断单元判断为满足条件时,按照指令保持单元中保持的操作指令,对高速缓冲存储器进行操作;以及条件生成单元,利用当前的处理器的状态或者条件保持单元保持的条件以及用于生成条件生成用信息保持单元保持的新的条件的信息,生成新的条件,该新的条件保持在条件保持单元中。
根据本发明的高速缓冲存储器,可以与处理器的动作的进行状况同步,对高速缓冲存储器进行操作。并且,由于没有涉及到软件,因此不对处理器产生负荷,从而高效率地使高速缓冲存储器动作,且不会招致性能的劣化。
例如,处理器根据付有后增量的加载命令在顺序地进行存储器访问的情况下,可以高效率地进行预取。并且,处理器根据付有后增量的存储命令在顺序地写入数据的情况下,可以删除从存储器将数据加载到高速缓冲存储器的惩罚,从而可以进一步高效率地触摸(确保)高速缓存项。
并且,处理器根据付有后增量的存储命令在顺序地写入数据的情况下,由于按照处理器的存储命令的进行状况,预测存储结束的线,并在预测后的线上设定高速缓存操作结束属性或无效化属性,因此,在处理器无需识别高速缓冲存储器的线大小或线边界,也可以在高速缓冲存储器中预测应该回写的线,从而可以高效率地进行清理(回写)或进行缓存项的解除(无效化)。
而且,处理器根据付有后增量的加载命令在顺序地读出数据的情况下,在保持读出结束的线数据的高速缓存项中设定置换属性,由于作为马上将要选择的置换对象,因此可以降低由访问次数低的数据残留在高速缓冲存储器中所导致的缓存故障。
发明效果
根据本发明的高速缓冲存储器,可以与处理器的动作的进行状况同步,操作高速缓冲存储器。并且,由于未涉及软件,因此不会对处理器产生负荷,从而可以高效率地使高速缓冲存储器动作,且不会招致性能的劣化。并且,可以将存储器访问地址或程序读取地址作为条件来监视处理器的状态。
例如,不将数据转送到高速缓冲存储器的线上,而是进行确保(在此称为触摸),且该确保可以与监视处理器的动作状况同步,以适当的定时来进行。
并且,高速缓冲存储器的线数据的回写(高速缓存结束),可以与监视处理器的动作状况同步,以适当的定时来进行。高速缓冲存储器的线的无效化也可以在监视处理器的动作状况的同时以适当的定时来进行。
而且,高速缓冲存储器的线的访问顺序信息也可以与监视处理器的动作状况同步,以适当的定时来变更。据此,也就是说根据LRU,可以使高速缓存的置换顺序提早或延迟。
并且,不论处理器在地址升顺进行访问的情况下,还是在地址降顺进行访问的情况下,均可以适当地算出下一个必要的线的地址。
附图说明
图1是示出在本发明的实施方式1中,包括处理器、高速缓冲存储器、存储器的***的简要构成的方框图。
图2是示出高速缓冲存储器的构成例的方框图。
图3是示出预测处理部的构成例的方框图。
图4(a)是示出在开始地址寄存器中写入开始地址的命令的一示例图。
图4(b)是示出在大小寄存器中写入大小的命令的一示例图。
图4(c)是示出在指令寄存器中写入指令的命令的一示例图。
图4(d)是示出指令的一示例图。
图5是示出开始调整器及结束调整器的说明图。
图6(a)是示出根据预取部进行预测预取的说明图。
图6(b)是示出根据触摸部进行预测触摸的说明图。
图7是示出在预取部进行预测预取处理一例的流程图。
图8是示出在触摸部进行预测触摸处理一例的流程图。
图9是示出在本发明的实施方式2中高速缓冲存储器的构成的方框图。
图10是示出高速缓存项的位构成的图。
图11是示出由控制部所使用标志的更新例的图。
图12(a)是示出在弱标志不存在的情况下,高速缓存项被替换的样子的图。
图12(b)是示出在替换处理中弱标志W的作用的说明图。
图13是示出预测处理部的构成的方框图。
图14(a)是示出根据C设定部进行C标志设定处理的说明图。
图14(b)是示出根据W设定部进行W标志设定处理的说明图。
图15是示出在C标志设定部进行C标志设定处理一例的流程图。
图16是示出在W标志设定部进行W标志设定处理一例的流程图。
图17是示出在控制部进行清理处理的一例的流程图。
图18是示出在控制部进行U标志更新处理的流程图。
图19是示出在控制部进行替换处理的流程图。
符号说明
1处理器
2存储器
3高速缓冲存储器
20地址寄存器
21存储器I/F
30解码器
31a~31d通路
32a~32d比较器
33a~33d AND电路(与电路)
34OR电路(或电路)
35选择器
36选择器
37分路器
38控制部
39预测处理部
131a通路
131a~131d通路
131b~131d通路
138控制部
139预测处理部
401指令寄存器
402开始地址寄存器
403大小寄存器
404加法器
405a、405b开始调整器
406a、406b结束调整器
407访问地址寄存器
408预测值寄存器
409常数寄存器
410选择器
411加法器
412比较器
413执行部
413a执行部
414预取部
415触摸部
416C设定部
417W设定部
具体实施方式
(实施方式1)
<整体构成>
图1是示出本发明的实施方式1中的包括处理器1、高速缓冲存储器2、存储器3的***的简要构成的方框图。如此图所示,本发明的高速缓冲存储器3被具备在具有处理器1和存储器2的***中。
高速缓冲存储器3的构成是,按照由处理器1所指定的条件,进行预测预取。所谓预测预取是指:根据由处理器1所进行的内存访问的进行状况,预测下一个应该预取的线地址,将预测的线地址的数据在高速缓冲存储器中进行预取。并且,由处理器1所指定的条件是指:地址范围、在进行顺序存取时的地址的增量值或减量值、或者访问方向(地址的升顺或降顺)等。预测预取适于处理器顺序地进行内存访问的情况。
而且,高速缓冲存储器3的构成是,按照由处理器1所指定的条件,进行预测触摸。所谓预测触摸是指:根据由处理器1所进行的内存访问的进行状况,预测下一个应该触摸的线地址,对预测的线地址的数据不进行加载而是通过在高速缓存项中设定有效标志和标签,从而进行确保。预测触摸适于将排列数据等的运算结果,顺序地存储在存储器的情况等。
<高速缓冲存储器的构成>
以下,将高速缓冲存储器3作为具体例子,对本发明适用于4路集联方式的高速缓冲存储器的情况下的构成进行说明。
图2是示出高速缓冲存储器3的构成例的方框图。如此图所示,高速缓冲存储器3包括:地址寄存器20、存储器I/F21、解码器30、4个通路31a~31d(以下略称为通路0~3)、4个比较器32a~32d、4个AND电路(与电路)33a~33d、OR电路(或电路)34、选择器35、36、分路器37、以及控制部38。
地址寄存器20是保持访问存储器2的访问地址的寄存器。此访问地址为32位。如该图所示,访问地址从最上位的位开始,依次包括:21位的标签地址、4位的组索引(set index)(图中的SI)、5位的字索引(word index)(图中的WI)。在此,标签地址是指:存储器中的区域(其大小为组数×块数),该存储器的区域被通路所变换。此区域的大小是以标签地址的下位的地址位(A10~A0)所定的大小,即,2k字节,也是1个通路的大小。组索引(SI)是指跨过通路0~3的多个组中的1个。因组索引为4位,故此组数为16组。以标签地址及组索引所确定的高速缓存项是替换单位,在被存储在高速缓冲存储器的情况下,又被称为线数据或线。线数据的大小是以组索引的下位的地址位所定的大小,即128字节。若1个字为4字节,则1个线数据为32个字。字索引(WI)是指构成线数据的多个字中的1个字。地址寄存器20中的最下位的2位(A1、A0),在字访问时被忽视。
存储器I/F21用于从高速缓冲存储器3向存储器2的数据回写、或从存储器2向高速缓冲存储器3的数据加载等,是为了从高速缓冲存储器3访问存储器2的I/F。
解码器30对组索引的4位进行解码,从跨过4个通路0~3的16组中选择1个。
4个通路0~3是具有相同构成的4个通路,具有4×2k字节的容量。各通路具有16个高速缓存项。1个高速缓存项具有:有效标志V、21位的标签、128字节的线数据,及脏标志(dirty flag)D。标签是21位的标签地址的复制。线数据是由标签地址及组索引确定的块中128字节数据的复制。有效标志V表示该高速缓存项的数据是否有效。脏标志D表示该高速缓存项中是否有来自处理器的写入,即由于在辅助线中存在的被高速缓存的数据,与写入到存储器中的数据不同,因此表示是否有必要写入到高速缓冲存储器。
比较器32a比较地址寄存器20中的标签地址和通路0的标签是否一致,该通路0在由组索引所选择的组中所包含的4个标签中。对于比较器32b~32c而言,除与通路31b~31d相对应之外,其余相同。
AND电路33a比较有效标志和比较器32a的比较结果是否一致。将此比较结果作为h0。在比较结果h0为1的情况下,意味着存在与地址寄存器20中的标签地址及组索引相对应的线数据,即,意味着在通路0中被命中。在比较结果h0为0的情况下,意味着未命中。对于AND电路33b~33d而言,除与通路31b~31d相对应之外,其余相同。其比较结果为h1~h3,意味着在通路1~3是命中还是未命中。
OR电路34取得比较结果h0~h3的OR。将此OR的结果作为hit(命中)。hit表示在高速缓冲存储器中是否命中。
选择器35在被选择的组中的通路0~3的线数据中,选择命中的通路中的线数据。
选择器36在由选择器35所选择的32个字中的线数据中,选择由字索引所表示的1个字。
分路器37在将数据写入高速缓冲存储器中时,将写入数据输出到通路0~3中的一个。该写入数据可以以字为单位。
控制部38包括预测处理部39,对高速缓冲存储器3的整体进行控制。预测处理部39主要进行预取的控制。
<预测处理部的构成>
图3是示出预测处理部39的构成例的方框图。如此图所示,预测处理部39包括:指令寄存器401、开始地址寄存器402、大小寄存器403、加法器404、开始调整器405a、405b、结束调整器406a、406b、访问地址寄存器407、预测值寄存器408、常数寄存器409、选择器410、加法器411、比较器412、及执行部413。
指令寄存器401是由处理器1能够直接访问的寄存器,保持由处理器1所写入的指令。图4(c)是示出在指令寄存器401中写入指令的命令的一示例图。该命令是通常的转送命令(mov命令),指定作为源操作数的指令、以及指定作为目的操作数的指令寄存器(CR)401。图4(d)是示出指令格式的一示例图。该指令格式包括指令内容和常数。在此,指令内容表示预测预取指令和预测触摸指令中的某一个。常数表示增量值或减量值,例如是:+4、+8、-4、-8等,该增量值或减量值是处理器1顺序地进行存储器访问情况下的存储器访问地址的值。另外,也可以包括访问方向(地址是升顺还是降顺)和绝对值(连续访问情况下的地址的差分),来代替指令中的常数。
开始地址寄存器402是可以由处理器1直接访问的寄存器,保持由处理器1所写入的开始地址。此开始地址示出设定C标志(示出是否结束高速缓存的清理标志)所应该的地址范围的开始位置。图4(a)是示出在开始地址寄存器402中写入开始地址的命令的一示例图。此命令与图4(c)同样,是通常的转送命令(mov命令)。
大小寄存器403是可以由处理器1直接访问的寄存器,保持由处理器1所写入的大小。此大小示出来自开始地址的地址范围。图4(b)是示出在大小寄存器403中写入大小的命令的一示例图。此命令与图4(c)同样,是通常的转送命令(mov命令)。另外,大小的单位可以是字节数,也可以是线数(高速缓存项数),只要是预先预定的单位即可。
加法器404对开始地址和大小进行加法运算,上述开始地址被保持在开始地址寄存器402中,上述大小被保持在大小寄存器403中。加法运算的结果是指出地址范围的结束位置的结束地址。加法器404进行加法运算,当大小的单位被指定为字节数的情况下,将大小作为字节地址进行加法运算即可,当大小的单位被指定为线数的情况下,将大小作为线地址进行加法运算即可。
开始调整器405a、405b将开始地址调整到线边界的位置。开始调整器405a向结束地址的方向调整,405b向与结束方向相反的方向调整。据此调整,处理器1可以不受线大小及线边界的任何影响,将任意的地址作为开始地址来指定。
结束调整器406a及406b将结束地址调整到线边界的位置。结束调整器406a向开始地址的方向调整,406b向与开始地址相反的方向调整。据此调整,处理器1可以不受线大小及线边界的任何影响,将任意的大小作为上述大小来指定。
图5是示出开始调整器405a、405b及结束调整器406a、406b的说明图。在此图中,由处理器1所指定的开始地址是指线N途中的任意的位置。开始调整器405a进行调整,使其指向下一个线(N+1)的开头,并将调整后的地址作为调整开始地址a输出。开始调整器405b进行调整,使其指向含有开始地址的数据的线N的开头,并将调整后的地址作为调整开始地址b输出。将调整开始地址指出的线称为开始线。
并且,结束地址是指线M途中的任意的位置。开始调整器406a进行调整,使其指向当前的线(M-1)的开头,并将调整后的地址作为调整开始地址a输出。结束调整器406b进行调整,使其指向含有结束地址的数据的线M的开头,并将调整后的地址作为调整结束地址b输出。将调整结束地址指出的线称为结束线。
如此图所示,开始调整器405a及结束调整器406a以线为单位进行内侧匹配。开始调整器405b及结束调整器406b以线为单位进行外侧匹配。而且,线单位的外侧匹配后,还可以以辅助线为单位进行外侧匹配和内侧匹配。
访问地址寄存器407保持来自处理器1的存储器访问地址。
预测值寄存器408将对作为初期值的访问地址寄存器407的存储器访问地址和常数寄存器409的常数进行加法运算后的值作为预测值来保持,之后,处理器1在执行存储器访问时,若访问地址寄存器407的存储器访问地址和预测值一致,则将预测值和常数寄存器409的常数相加,将相加后的值作为新的预测值进行更新,若不一致,则更新为新的初期值。
常数寄存器409保持来自处理器1的存储器访问地址的增量值或减量值。此增量值(或减量值)是指:在处理器1顺序地访问存储器的情况下的、附有后增量(post-increment)的加载/存储命令的增量值(或减量值),例如,作为图4(d)所示的指令中的常数被指定。
选择器410进行选择,若访问地址寄存器407的存储器访问地址和预测值寄存器408的预测值一致,则选择预测值寄存器408,若不一致,则选择访问地址寄存器407。
加法器411,对选择器410所选择的预测值或存储器访问地址和常数寄存器409的常数进行加法运算。加法运算后的值作为新的预测值或新的初期值,被保持在预测值寄存器408内。
比较器412,判断访问地址寄存器407的存储器访问地址和预测值寄存器408的预测值是否一致。
执行部413包括预取部414和触摸部415。
预取部414按照处理器的加载命令的进行状况,推定下一个被加载的线,进行预取推定的线的预测预取。
触摸部415按照处理器的存储命令的进行状况,推定下一个被存储的线,对用于保持推定的线的高速缓存项进行确保,而不是从存储器加载数据(进行V=1的设定和标签的设定)。
<预测预取>
图6(a)是由预取部414进行预测预取的说明图。在此图(a)中,线N、N+1、…、N+n,表示地址连续的线。开始线及结束线分别作为线N、N+1、…、N+n,该开始线及结束线是由开始地址寄存器402及大小寄存器403所规定的。并且,LD(1)、LD(2)…通过加载命令,表示访问位置。
预取部414在最初的加载命令LD(1)执行时,其存储器访问地址与常数进行加法运算,将加法运算后的值作为初期值保持在预测值寄存器408中。第2次的加载命令LD(2)执行时,在其存储器访问地址和预测值寄存器408的预测值一致的情况下,预取部414推定为附有后增量的加载命令的顺序存取,并预取下一个线N+1。如果下一个线被存储在高速缓冲存储器内的情况下,则什么也不进行。
由处理器1根据附有后增量的加载命令进行顺序存取的情况下,预测值将与每个存储器访问一致。
这样,预测值寄存器408的预测值从线N更新到线N+1,与存储器访问地址一致时,预取部414对线N+2进行预取。预取部414从开始线到结束线执行此预测预取,当结束了结束线的预取时,结束预测预取。
<预测触摸>
图6(b)是由触摸部415进行预测触摸的说明图。与图6(a)相比较而言,在处理器1根据存储命令顺序地访问的情况下,当其存储器访问地址和预测值寄存器408的预测值一致时,推定为附有后增量的存储命令的顺序存取,确保与下一个线N+1相对应的高速缓存项,这一点与图6(a)不同。即,不同之处为,取代预取的是,不将内存数据加载到高速缓存项,而将标签及有效标志设定为1。除此之外因为与预取相同,在此省略说明。
<预测预取处理>
图7是示出预取部414中的预测预取处理的一例的流程图。
在此图中,预取部414将预测预取指令保持到指令寄存器401(S41),在处理器执行加载命令时(S42),相加该存储器访问地址和常数,将相加后的值作为初期值,设定到预测值寄存器408中(S43)。此最初的加载命令的存储器访问地址和预测值寄存器的预测值,自然是不一致的。因为预测值寄存器408或是被清理或是保持了随机的值。
并且,处理器执行加载命令(S44),而且在存储器访问地址和预测值寄存器的预测值一致的情况下(S45),预取部414算出下一个线的线地址(S46),算出的线地址属于从开始线到结束线的地址范围(S47),若下一个线未被存储到高速缓存项(S48),则对下一个线进行预取(S49)。
在此预取中,预取部414以LRU方式选择替换对象的通路(S401),若该通路的高速缓存项为脏(dirty),则进行回写(S402,S403),将下一个线的数据再填充(预取)到该高速缓存项中(S404)。
而且,若预取后的线是结束线的情况下(S50),则预取部414结束预测预取处理。
并且,在上述S45中,在存储器访问地址和预测值寄存器的预测值不一致的情况下,在存储器访问地址上相加了常数的值,则作为新的预测值被设定在预测值寄存器408中。另外,在不一致的情况下,什么也不进行(等待存储器访问的状态)。
这样,预取部414在预测预取中,按照处理器的加载命令的进行状况推定下一个线,由于是要预取推定的线,所以在处理器1中没有必要识别高速缓冲存储器的线大小或线边界,即,在处理器1中没有必要管理预取所用的地址。在高速缓冲存储器中,可以根据推定来进行高效率的预取。
<预测触摸处理>
图8是示出触摸部415的预测触摸处理的一例的流程图。此图与图7的预测预取处理相比较,不同点是:代替S41、S42、S44、S49以及S404各步骤的是,S41a、S42a、S44a、S49a以及S404a。除此之外为相同点,在此对不同点进行说明。
触摸部415在S41a中判断,预测触摸指令是否保持在指令寄存器401中,在S42a和S44a中判断存储命令是否被执行。并且,触摸部415在S49a中代替预取而进行触摸。即,在S404a中,在替换对象的高速缓存项中不加载存储器数据,而将标签及有效标志设定为1。
这样,触摸部415按照处理器的存储命令的进行状况,推定下一个线,由于是对推定的线进行触摸(确保),所以没有必要识别高速缓冲存储器的线大小或线边界,即,在处理器1中没有必要管理预取所用的地址。在高速缓冲存储器中,可以根据推定来进行高效率的触摸。
<变形例>
另外,本发明的高速缓冲存储器不受上述实施方式的构成所制限,可以有各种各样的变形。以下,对几个变形例进行说明。
(1)虽然示出了常数寄存器409的构成是由指令所设定的,也可以是以下几种构成,即:(a)将增量值或减量值作为默认值来保持,(b)算出在多次加载/存储命令中的2个存储器访问地址的差分,作为增量值或减量值来保持,(c)按照由处理器所指定的地址方向(升顺地址或降顺地址),算出上述(b)并保持。
(2)也可以在预取部414预取下一个线的再下一个线等多个线。同样,触摸部415也可以触摸多个线。
(3)预取部414也可以在比较器412多次一致的情况下,使预取开始。触摸部415也是同样。
(4)在上述的实施方式,虽然以4路集联的高速缓冲存储器为例进行了说明,在此,通路数量可以是不受制限的。并且,在上述实施方式,虽然对组数为16进行了举例说明,在此,组数也可以是不受制限的。
(5)在上述实施方式,虽然对组相联的高速缓冲存储器进行了举例说明,也可以是全相联方式或直接映射方式的高速缓冲存储器。
(6)在上述实施方式中,虽然将辅助线的大小作为线的大小的1/4,也可以是1/2、1/8、1/16等其它的大小。此时,各高速缓存项也可以分别保持与辅助线数量相同的有效标志及脏标志。
(7)在上述实施方式中的大小寄存器403也可以是这样的构成,即:代替保持大小而保持应该预取的次数。在这样的情况下,也可以是这样的构成,即:预测处理部39计数实际上预取的次数,当计数值达到应该预取的次数时,停止预取。这样,通过计数预取的次数,可以监视在处理器中的程序进行状态。
(实施方式2)
在实施方式1对推定线的情况的构成进行了说明,该线是指:在说明了预测预取及预测触摸中今后将要访问的线。在本实施方式,将要对以下的构成进行说明,即:对已经访问的线进行推定,并进行预测清理(回写)或预测弱化(地址顺序的最弱化),或预测无效化。
<高速缓冲存储器的构成>
图9是示出在本实施方式2中,高速缓冲存储器的构成的方框图。此图的高速缓冲存储器的构成与图2所示的构成相比较,不同点是,具备通路131a~131d,用来代替通路31a~31d;以及,具备控制部138,用来代替控制部38。以下,以不同点为中心进行说明,对于相同点省略说明。
通路131a与通路31a相比,不同点是:在各高速缓存项中,被追加了C标志、W标志及U标志;具有各辅助线的有效标志V0~V3,用来代替以线为单位的有效标志V;具有各辅助线的脏标志D0~D3,用来代替以线为单位的脏标志D。通路131b~131d也同样。
图10是示出高速缓存项的位构成的图。1个高速缓存项中保持有:有效标志V0~V3、21位的标签、128字节的线数据、弱标志W、使用标志U及脏标志D0~D3。
标签是21比特的标签地址的复制。
线数据是块中的128字节数据的复制,包括32字节的4个辅助线,上述块是由标签地址及组索引所确定的。
有效标志V0~V3与4个辅助线相对应,表示辅助线是否有效。
C标志(清理标志)表示高速缓存操作结束属性,该高速缓存操作结束属性表示是否可以结束高速缓存操作。C=0表示,以后有被写入的可能性。C=1表示,以后没有被写入的可能性,也表示若是脏的情况下,应该通过清理(回写)来结束高速缓存操作。
弱标志W,对于来自处理器的访问,表示是否要进一步使用;对于在高速缓冲存储器中的替换控制,表示最弱的替换对象,该最弱的替换对象可以比其它的高速缓存项先被逐出。
使用标志U,表示是否有向该高速缓存项的访问,在LRU方式中替代高速缓存项之间的访问顺序数据来使用。更准确而言,使用标志U为1表示有访问,0表示没有访问。但是,当1个组内4个通路的使用标志均为1时,复位为0。换而言之,使用标志U表示,被访问的时期是旧还是新的2个相对的状态。即:使用标志U为1的高速缓存项表示,比起使用标志为0的高速缓存项而言为最新被访问的。
脏标志D0~D3表示,与4个辅助线相对应,是否有从处理器写入该辅助线的必要,即表示,由于辅助线中存在的被缓存的数据与写入到存储器中的数据不同,是否有回写存储器的必要。
控制部138与控制部38相比,不同点是:具有预测处理部139,用来替代预测处理部39;通过预测设定C标志;通过预测设定W标志;以及利用使用标志U,用来替代在LRU方式中的访问顺序信息。
<使用标志U的说明>
图11示出控制部138更新使用标志的例子。此图的上层、中层、下层表示,构成跨过通路0~3的组N的4个高速缓存项。4个高速缓存项的右端的1或0是各自的使用标志的值。将此4个使用标志U记作U0~U3。
因为在此图的上层(U0~U3)=(1、0、1、0),所以,表示通路0、2的高速缓存项有访问,通路1、3的高速缓存项无访问。
在此状态,存储器访问命中组N内的通路1的高速缓存项的情况下,如此图中层所示,被更新为(U0~U3)=(1、1、1、0)。即,如实线所示,通路1的使用标志U1从0被更新为1。
另外,在此图中层的状态,存储器访问命中组N内的通路3的高速缓存项的情况下,如此图下层所示,被更新为(U0~U3)=(0、0、0、1)。
即,如实线所示,通路3的使用标志U1从0被更新为1。另外,如虚线所示,通路3以外的使用标志U0~U2从1被更新为0。据此,通路3的高速缓存项表示,比起通路0~2的各高速缓存项而言,是最新被访问的。
若缓存故障时W=1的高速缓存项不存在,控制部138根据使用标志,决定替换对象的高速缓存项,并进行替换。例如,控制部138在图5上层,决定通路1和通路3的某1个为替换对象,在图5中层决定通路3为替换对象,在图5下层决定通路0~2的某1个为替换对象。
<弱标志W的说明>
图12(a)示出假定弱标志不存在的情况下的比较例,是表示高速缓存项被替换的样子的图。在此图中与图11同样,表示构成跨过通路0~3的组N的4个高速缓存项。4个高速缓存项的右端的1或0是各自的使用标志的值。并且,仅将数据E作为访问频度低的数据,将数据A、B、C、D作为访问频度高的数据。
在此图(a)的第1层的状态,当处理器1访问数据E时,发生缓存故障。由于此缓存故障,例如,作为U=0的高速缓存项中的、访问频度高的数据C的高速缓存项,被替换为访问频度低的数据E,成为第2层的状态。
在第2层的状态,当处理器1访问数据C时,发生缓存故障。由于此缓存故障,例如,作为U=0的高速缓存项的、访问频度高的数据D的高速缓存项,被替换为访问频度低的数据C,成为第3层的状态。
在第3层的状态,当处理器1访问数据D时,发生缓存故障。由于此缓存故障,例如,访问频度高的数据C的高速缓存项,被替换为访问频度高的数据D,成为第3层的状态。
同样,第4层也是,作为替换对象不选择使用频度低的数据E,而残留在高速缓冲存储器中。
在第5层的状态,因为使用频度低的数据E最旧(U=0),作为替换对象被选择并被逐出。
这样,在伪LRU方式(通常的LRU方式同样)中,通过访问频度低的数据E,在4通路的情况下,至少会有4次导致缓存故障的情况。
图12(b)是示出替换处理中弱标志W的作用的说明图。
在此图(b)的第1层的状态(与此图(a)的第1层相同),当处理器1访问数据E时,发生缓存故障。由于此缓存故障,例如,来自U=0的高速缓存项中的、访问频度高的数据C的高速缓存项,被替换为访问频度低的数据E。此时,处理器1在数据E的高速缓存项将弱标志W设定为1。据此,下一个缓存故障时,数据E的高速缓存项被最先逐出,成为第2层的状态。
在第2层的状态,当处理器1访问数据C时,发生缓存故障。由于此缓存故障,例如,作为W=1的高速缓存项的、访问频度低的数据E的高速缓存项,作为替换对象被选择,并被替换为访问频度高的数据C,成为第3层的状态。
这样,通过设置弱标志W,可以降低由访问频度低的数据所导致的缓存故障。
<预测处理部的构成>
图13是示出预测处理部139的构成的方框图。此图的预测处理部139与图3所示的预测处理部39不同点是,具备执行部413a,用来替代执行部413。执行部413a与执行部413相比,追加了C设定部416及W设定部417。
C设定部416按照处理器的存储命令的进行状况,对刚刚结束存储的线进行推定,并将推定的线的C标志设定为1。
W设定部417按照处理器的存储命令的进行状况,对刚刚结束存储的线进行推定,并将推定的线的W标志设定为1。
<C标志设定处理的说明图>
图14(a)是示出根据C设定部416进行C标志设定处理的说明图。在此图(a)中,线N、N+1、…、N+n、开始线、及结束线,与图6(a)相同。
在处理器1对线N、N+1…顺序地存储数据的情况下,例如,对线N+1执行存储命令ST(1)、ST(2),当ST(2)的存储器访问地址和预测值一致时,通过对线N顺序地访问,C设定部416推定存储已结束,此时将线N的C标志设定为1。C标志被设定为1的线N,不等缓存故障的发生即由清理处理来回写。
同样,在对线N+2执行存储命令时与预测值一致的情况下,通过对线N+1顺序地访问来推定存储已结束,此时将线N+1的C标志设定为1。
这样,C设定部416在从开始线到结束线的范围内执行C标志的设定。
<W标志设定处理的说明图>
图14(b)是通过W设定部417进行W标志设定处理的说明图。与此图(a)相比,不同点是,不是对C标志进行设定,而是对W标志进行设定,除此以外是相同的,省略其说明。
W标志被设定为1的线,在缓存故障临要发生之前,作为替换对象被选择,被逐出高速缓冲存储器。
<C标志设定处理流程>
图15是示出C设定部416中进行C标志设定处理一例的流程图。
在此图中,C设定部416将C标志设定指令保持在指令寄存器401中(S41b),当处理器执行存储命令时(S42b),将该存储器访问地址与常数相加后的值作为初期值,设定到预测值寄存器408中(S43)。此最初的存储命令的存储器访问地址和预测值寄存器的预测值自然是不一致的。因为预测值寄存器408或是被清理或是保持了随机的值。
进一步,处理器执行存储命令(S44b),且在存储器访问地址和预测值寄存器的预测值一致的情况下(S45),C设定部416算出正前的线的线地址(S46b),算出的线地址属于从开始线到结束线的地址范围(S47),若正前的线被输入到高速缓冲存储器(S48b),则将正前的线的C标志设定为1(S49b)。
进一步,若正前的线为结束线时(S50),则C设定部416结束C标志设定处理。
这样,C设定部416按照处理器的存储命令的进行状况,推定存储即将结束的线,由于推定的线的C标志被设定为1,所以在处理器1中没有识别高速缓冲存储器的线大小或线边界的必要,即,在处理器1中没有将可以清理的线作为线地址来管理的必要。在高速缓冲存储器中根据推定,可以高效率地进行清理。
<W标志设定处理流程>
图16是示出W设定部417中进行W标志设定处理的一例的流程图。此图的流程与图15的C标志设定处理相比,不同点是设定W标志,而不是设定C标志,除此以外是相同的,省略其说明。
这样,W设定部417按照处理器的存储命令的进行状况,推定刚刚存储结束的线,由于推定的线的W标志被设定为1,因此,可以在高速缓冲存储器中根据推定,将刚刚存储结束的线高效率地作为替换对象。此时,在处理器1没有识别高速缓冲存储器的线大小或线边界的必要,即,在处理器1中没有将可以替换的线作为线地址来管理的必要。
<清理处理>
图17是示出控制部138中的清理处理的一例的流程图。
如此图所示,控制部138在循环1的处理(S900~S913),通过顺序地对组索引(SI)0~15进行指定(S901),对全部16个组进行循环2的处理。在循环2的处理(S900~S913),控制部138通过读出组内的通路0~3的C标志(S903),搜索C=1的高速缓存项(S904)。在循环3的处理(S905~S910),控制部138对C=1的高速缓存项读出辅助线单位的脏标志(S906),若为脏(S907),则将该辅助线的数据回写到存储器2(S908),将该脏标志复位为0(S909)。在此辅助线数据的回写中,控制部138如循环4的处理(S920~S923),在空周期(S920)中各回写1个字(S922)。
这样,控制部138对全部的高速缓存项的C标志顺序地进行检查,并搜索C=1的高速缓存项,若为脏,则从高速缓冲存储器3回写到存储器2。
这样,在清理处理中,将持有C标志的高速缓存项在缓存故障发生之前进行回写,缓存故障时只要发生加载惩罚(load penalty),就可以降低回写惩罚(write back penalty)的发生,上述C标志表示在此之上不能再写入。据此,可以提高高速缓冲存储器的效率,从而访问速度得到提高。
<U标志的更新处理>
图18是示出在控制部138进行U标志更新处理的流程图。在此图中,将有效标志为0(无效)的高速缓存项的使用标志U初期化为0。
在此图中,控制部138在高速缓存命中时(步骤S61),将由组索引所选择的组中命中的通路的使用标志U设定为1(步骤S62),读出该组中的其它的通路的使用标志U(步骤S63),判断读出的使用标志U是否全部为1(步骤S64),若全部不为1则结束,若全部为1时,则将其它的通路的所有的使用标志U复位到0(步骤S65)。
这样,控制部138如图11、图12(a)(b)所示的更新例那样,更新使用标志U。
<替换处理>
图19是示出在控制部138中进行替换处理的流程图。在此图中控制部138在存储器访问失败时(步骤S91),读出由组索引所选择的组中的、4个通路的使用标志U及弱标志W(步骤S92),判断W=1的通路是否存在(步骤S93)。当判断为W=1的通路不存在的情况下,选择1个U=0的通路(步骤S94)。此时,当使用标志U为0的通路存在多个的情况下,控制部138随机地选择1个。另外,当判断为W=1的通路存在的情况下,不考虑U标志的值而选择1个W=1的通路(步骤S95)。此时,弱标志W为1的通路存在多个的情况下,控制部138随机地选择1个。
并且,控制部138将在该组中所选择的通路的高速缓存项替换为对象(步骤S96),替换后,将该高速缓存项的使用标志U初期化为1,将弱标志W初期化为0(步骤S97)。并且,此时有效标志V被初期化为1,脏标志D被初期化为0。
这样,当W=1的通路不存在的情况下,替换对象从使用标志U为0的高速缓存项中选择1个。
另外,当W=1的通路存在的情况下,替换对象不管使用标志为0还是为1,从W=1的通路的高速缓存项中选择1个。据此,如图14(a)(b)所示,由于访问频度低的数据残留在高速缓冲存储器中,从而可以降低缓存故障的诱发。
如以上说明,在本实施方式中根据高速缓冲存储器,按照处理器1的存储命令的进行状态,结束存储并推定线,由于对推定的线设定C标志或W标志,所以可以将刚刚结束存储的线高效率地作为替换对象进行指定。此时,高速缓冲存储器的线边界或线大小没有由处理器1管理的必要,从而可以减少由高速缓存管理所带来的负荷。
并且,将弱标志W=1且脏标志D=1的线作为从处理器在此之上不能再写入的线,通过清理处理,可以降低缓存故障时的回写惩罚。
并且,在此之上未被使用的高速缓存项上设定W=1,由于W=1的高速缓存项作为最先被选择的替换对象,因此访问频度低的数据残留在高速缓冲存储器中,据此,可以降低高速缓存故障的诱发。
另外,代替在以往的LRU方式中表示访问顺序的数据而采用伪LRU方式,该伪LRU方式利用1位的使用标志,据此,作为访问顺序数据可以是1位的标志,从而可以使访问顺序数据的数据量减少,并可以使更新简单,据此,可以缩小硬件规模。
<变形例>
(1)、图4(a)(b)(c)中所示的各命令,也可以通过编译程序***到程序中。此时,编译程序例如是排列数据的写入、或是解码压缩动化数据时的块数据的写入等,可以在在此之上不写入程序的位置中***上述各命令。
(2)、在上述清理处理中也可以是进行无效化处理的构成。即,在图17中所示的流程图中,在S907中判断不为脏的情况下,可以进一步追加对该高速缓存项进行无效化(复位V标志)的步骤。而且,也可以在清理处理中的回写之后追加无效化的步骤。
产业上的可利用性
本发明适用于使存储器访问高速化的高速缓冲存储器,例如适用于,片内高速缓冲存储器(on-chip cache)、片外高速缓冲存储器(off-chipcache)、数据高速缓冲存储器、以及命令高速缓冲存储器等。
Claims (16)
1.一种高速缓冲存储器***,其特征在于,包括:
条件生成用信息保持单元,保持信息,该信息为从处理器给出的用于生成新的条件的信息,该条件为存储器访问地址;
指令保持单元,保持从处理器给出的操作指令,所述操作指令为预测预取指令和预测触摸指令之一;
条件保持单元,保持条件,该条件由条件生成用信息保持单元所保持的存储器访问地址与常数寄存器的常数进行加法运算而得到;
判断单元,利用条件保持单元中保持的条件,判断当前的处理器给出的存储器访问地址是否与所述条件一致;
地址生成单元,生成成为操作对象的地址;
操作单元,在上述判断单元判断当前的处理器给出的存储器访问地址与条件保持单元中保持的条件一致的情况下,利用由上述地址生成单元所生成的地址,按照指令保持单元中保持的操作指令,对高速缓冲存储器进行操作;以及
条件生成单元,利用当前的处理器的状态或者条件保持单元保持的条件以及条件生成用信息保持单元保持的、用于生成新的条件的信息,生成新的条件,并使该新的条件保持在条件保持单元中,所述条件由当前处理器给出的存储器访问地址或条件保持单元保持的条件与常数寄存器的常数进行加法运算而得到。
2.根据权利要求1所述的高速缓冲存储器***,其特征在于,
上述条件生成单元生成条件,该条件与处理器内的特定寄存器的保持内容有关。
3.根据权利要求2所述的高速缓冲存储器***,其特征在于,
上述特定寄存器为程序计数器。
4.根据权利要求1所述的高速缓冲存储器***,其特征在于,
还具有第2条件保持单元,该第2条件保持单元保持条件,该条件表示处理器生成的、向特定的地址范围内的存储器访问以及向特定的地址范围外的存储器访问中的某一个。
5.根据权利要求1所述的高速缓冲存储器***,其特征在于,
上述条件生成单元,通过对当前的条件实施加法运算,来生成上述新的条件。
6.根据权利要求5所述的高速缓冲存储器***,其特征在于,上述条件生成单元将存储器访问地址作为条件来生成;
在上述判断单元判断为当前的处理器给出的存储器访问地址与条件保持单元中保持的条件一致的情况下,通过对当前的条件加上常数,来生成上述新的条件。
7.根据权利要求6所述的高速缓冲存储器***,其特征在于,
上述常数为增量值或减量值以及地址的差分值中的某一个,该增量值或减量值为由处理器所执行的附有后增量的加载/存储命令中的增量值或减量值,该地址的差分值为由处理器所执行的2次的加载/存储命令中的差分值。
8.根据权利要求1或权利要求2所述的高速缓冲存储器***,其特征在于,
上述操作单元包括:
数据判断单元,在上述判断单元判断为当前的处理器给出的存储器访问地址与条件保持单元中保持的条件一致时,判断数据是否被保存在高速缓冲存储器中,该数据是与由上述地址生成单元所生成的地址相对应的数据;
选择单元,在判断为未被保存的情况下,选择高速缓冲存储器中的线;
回写单元,当上述所选择的线有效且为脏,则进行回写;
转送单元,将与上述地址对应的数据从存储器中转送到回写后所选择的线上;以及
注册单元,将上述地址作为标签,注册到上述所选择的线上。
9.根据权利要求1或权利要求2所述的高速缓冲存储器***,其特征在于,
上述操作单元包括:
数据判断单元,在上述判断单元判断为当前的处理器给出的存储器访问地址与条件保持单元中保持的条件一致时,判断数据是否被保存在高速缓冲存储器中,该数据是与由上述地址生成单元所生成的地址相对应的数据;
选择单元,在判断为未被保存的情况下,选择高速缓冲存储器中的线;
回写单元,当上述被选择的线有效且为脏,则进行回写;
注册单元,从存储器中不将数据转送到所选择的线上,而将上述生成的地址作为标签,注册到所选择的线上。
10.根据权利要求1或权利要求2所述的高速缓冲存储器***,其特征在于,
上述操作单元包括:
数据判断单元,在上述判断单元判断为当前的处理器给出的存储器访问地址与条件保持单元中保持的条件一致时,判断数据是否被保存在高速缓冲存储器中,该数据是与由上述地址生成单元所生成的地址相对应的数据;
选择单元,在判断为被保存的情况下,选择高速缓冲存储器中保存了数据的线;
标志设置单元,在所选择的线的预定的位中设置标志;以及
回写单元,当设置了上述标志的线有效且为脏,则进行回写。
11.根据权利要求1或权利要求2所述的高速缓冲存储器***,其特征在于,
上述操作单元包括:
数据判断单元,在上述判断单元判断为当前的处理器给出的存储器访问地址与条件保持单元中保持的条件一致时,判断数据是否被保存在高速缓冲存储器中,该数据是与由上述地址生成单元所生成的地址相对应的数据;
选择单元,在判断为被保存的情况下,选择高速缓冲存储器中保存了数据的线;
标志设置单元,在所选择的线的预定的位中设置标志;以及
无效化单元,对设置了上述标志的线进行无效化。
12.根据权利要求1或权利要求2所述的高速缓冲存储器***,其特征在于,
上述操作单元包括:
数据判断单元,在上述判断单元判断为当前的处理器给出的存储器访问地址与条件保持单元中保持的条件一致时,判断数据是否被保存在高速缓冲存储器中,该数据是与由上述地址生成单元所生成的地址相对应的数据;
选择单元,在判断为被保存的情况下,选择高速缓冲存储器中保存了数据的线;以及
变更单元,对于表示线的访问顺序的顺序信息,变更所选择的线的访问顺序。
13.根据权利要求4所述的高速缓冲存储器***,其特征在于,
包括:调整单元,在上述第2条件保持单元中保持的存储器地址示出线的中途的情况下,通过进行调整以便示出该线的开头、下一个线的开头、以及上一个线的开头的某一个,来生成地址。
14.一种控制方法,其是高速缓冲存储器的控制方法,其特征在于,包括:
条件生成用信息保持步骤,保持信息,该信息为从处理器给出的用于生成新的条件的信息,该条件为存储器访问地址;
指令保持步骤,保持从处理器给出的操作指令,所述操作指令为预测预取指令和预测触摸指令之一;
条件保持步骤,在条件保持单元中保持条件,该条件由条件生成用信息保持单元所保持的存储器访问地址与常数寄存器的常数进行加法运算而得到;
判断步骤,利用条件保持单元中保持的条件,判断当前的处理器给出的存储器访问地址是否与所述条件一致;
地址生成步骤,生成成为操作对象的地址;
操作步骤,在上述判断步骤判断为当前的处理器给出的存储器访问地址与条件保持单元中保持的条件一致的情况下,利用在上述地址生成步骤中所生成的地址,按照通过指令保持步骤保持的操作指令,对高速缓冲存储器进行操作;以及
条件生成步骤,利用当前的处理器的状态或者条件保持单元保持的条件以及条件生成用信息保持单元保持的、用于生成新的条件的信息,生成新的条件,并使该新的条件保持在条件保持单元中,所述条件由当前处理器给出的存储器访问地址或条件保持单元保持的条件与常数寄存器的常数进行加法运算而得到。
15.根据权利要求14所述的控制方法,其特征在于,
在上述条件生成用信息保持步骤中执行的命令以及在上述指令保持步骤中执行的命令是转送命令。
16.根据权利要求1所述的高速缓冲存储器***,其特征在于,
用于生成向上述条件生成用信息保持单元的、用于生成新的条件的信息的保存以及向上述指令保持单元的操作指令的保存是通过转送命令来执行的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP086174/2004 | 2004-03-24 | ||
JP2004086174 | 2004-03-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1934543A CN1934543A (zh) | 2007-03-21 |
CN100517274C true CN100517274C (zh) | 2009-07-22 |
Family
ID=34993892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800092267A Expired - Fee Related CN100517274C (zh) | 2004-03-24 | 2005-03-16 | 高速缓冲存储器及其控制方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20070186048A1 (zh) |
EP (1) | EP1729220A4 (zh) |
JP (1) | JP4045296B2 (zh) |
KR (1) | KR20060130120A (zh) |
CN (1) | CN100517274C (zh) |
TW (1) | TW200604808A (zh) |
WO (1) | WO2005091146A1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101151600B (zh) | 2005-04-08 | 2012-02-22 | 松下电器产业株式会社 | 高速缓冲存储器***及其控制方法 |
KR100737741B1 (ko) * | 2006-01-05 | 2007-07-10 | 주식회사 텔레칩스 | 다차원 데이터 선인출 캐쉬를 이용한 메모리 장치 및 그제어 방법 |
US7908236B2 (en) * | 2006-07-20 | 2011-03-15 | International Business Machines Corporation | Using multiple data structures to manage data in cache |
CN101558391B (zh) * | 2006-12-15 | 2013-10-16 | 密克罗奇普技术公司 | 用于微处理器的可配置高速缓冲存储器 |
US7877537B2 (en) | 2006-12-15 | 2011-01-25 | Microchip Technology Incorporated | Configurable cache for a microprocessor |
US9208095B2 (en) | 2006-12-15 | 2015-12-08 | Microchip Technology Incorporated | Configurable cache for a microprocessor |
US7966457B2 (en) | 2006-12-15 | 2011-06-21 | Microchip Technology Incorporated | Configurable cache for a microprocessor |
WO2008090525A2 (en) * | 2007-01-25 | 2008-07-31 | Nxp B.V. | Hardware triggered data cache line pre-allocation |
JP2009230374A (ja) * | 2008-03-21 | 2009-10-08 | Fujitsu Ltd | 情報処理装置,プログラム,及び命令列生成方法 |
US8578104B2 (en) * | 2008-06-17 | 2013-11-05 | Nxp, B.V. | Multiprocessor system with mixed software hardware controlled cache management |
TW201015319A (en) * | 2008-09-17 | 2010-04-16 | Panasonic Corp | Cache memory, memory system, data copying method and data rewriting method |
US8161246B2 (en) * | 2009-03-30 | 2012-04-17 | Via Technologies, Inc. | Prefetching of next physically sequential cache line after cache line that includes loaded page table entry |
US8234464B2 (en) * | 2009-11-05 | 2012-07-31 | International Business Machines Corporation | Hybrid storage data migration by selective data removal |
KR101970712B1 (ko) | 2012-08-23 | 2019-04-22 | 삼성전자주식회사 | 단말기의 데이터 이동장치 및 방법 |
US9892049B2 (en) | 2012-10-31 | 2018-02-13 | Renesas Electronics Corporation | Semiconductor device and method for prefetching to cache memory |
US9558122B2 (en) * | 2014-05-29 | 2017-01-31 | Apple Inc. | Cache reclamation using prioritized record removal |
US9891916B2 (en) | 2014-10-20 | 2018-02-13 | Via Technologies, Inc. | Dynamically updating hardware prefetch trait to exclusive or shared in multi-memory access agent system |
US9971693B2 (en) | 2015-05-13 | 2018-05-15 | Ampere Computing Llc | Prefetch tag for eviction promotion |
US11226741B2 (en) * | 2018-10-31 | 2022-01-18 | EMC IP Holding Company LLC | I/O behavior prediction based on long-term pattern recognition |
US11762777B2 (en) * | 2021-03-31 | 2023-09-19 | Advanced Micro Devices, Inc. | Method and apparatus for a dram cache tag prefetcher |
CN114116528B (zh) * | 2021-11-22 | 2022-11-11 | 深圳大学 | 一种内存访问地址预测方法、装置、存储介质及电子设备 |
CN116708579B (zh) * | 2023-08-04 | 2024-01-12 | 浪潮电子信息产业股份有限公司 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5119453A (en) * | 1974-08-08 | 1976-02-16 | Fujitsu Ltd | Patsufua memoriseigyohoshiki |
JPS6045855A (ja) * | 1983-08-22 | 1985-03-12 | Fujitsu Ltd | 磁気ディスク装置の順次アクセス検出方法 |
JPS6116348A (ja) * | 1984-07-03 | 1986-01-24 | Mitsubishi Electric Corp | バツフア・メモリ装置 |
JPH0452741A (ja) * | 1990-06-14 | 1992-02-20 | Toshiba Corp | キャッシュメモリ装置 |
JPH06348595A (ja) * | 1993-06-07 | 1994-12-22 | Hitachi Ltd | キャッシュ装置 |
JPH0784879A (ja) * | 1993-09-09 | 1995-03-31 | Toshiba Corp | キャッシュメモリ装置 |
JP3175675B2 (ja) * | 1997-12-04 | 2001-06-11 | 日本電気株式会社 | プリフェッチ制御装置 |
US6401192B1 (en) * | 1998-10-05 | 2002-06-04 | International Business Machines Corporation | Apparatus for software initiated prefetch and method therefor |
US6401193B1 (en) * | 1998-10-26 | 2002-06-04 | Infineon Technologies North America Corp. | Dynamic data prefetching based on program counter and addressing mode |
JP3969009B2 (ja) * | 2001-03-29 | 2007-08-29 | 株式会社日立製作所 | ハードウェアプリフェッチシステム |
JP2003223360A (ja) * | 2002-01-29 | 2003-08-08 | Hitachi Ltd | キャッシュメモリシステムおよびマイクロプロセッサ |
JP4067887B2 (ja) * | 2002-06-28 | 2008-03-26 | 富士通株式会社 | プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法 |
-
2005
- 2005-03-16 JP JP2006511207A patent/JP4045296B2/ja not_active Expired - Fee Related
- 2005-03-16 CN CNB2005800092267A patent/CN100517274C/zh not_active Expired - Fee Related
- 2005-03-16 KR KR1020067014612A patent/KR20060130120A/ko active Search and Examination
- 2005-03-16 US US10/599,170 patent/US20070186048A1/en not_active Abandoned
- 2005-03-16 EP EP05720927A patent/EP1729220A4/en not_active Withdrawn
- 2005-03-16 WO PCT/JP2005/004676 patent/WO2005091146A1/ja not_active Application Discontinuation
- 2005-03-23 TW TW094108943A patent/TW200604808A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
JP4045296B2 (ja) | 2008-02-13 |
TW200604808A (en) | 2006-02-01 |
EP1729220A4 (en) | 2008-12-17 |
WO2005091146A1 (ja) | 2005-09-29 |
EP1729220A1 (en) | 2006-12-06 |
KR20060130120A (ko) | 2006-12-18 |
US20070186048A1 (en) | 2007-08-09 |
CN1934543A (zh) | 2007-03-21 |
JPWO2005091146A1 (ja) | 2008-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517274C (zh) | 高速缓冲存储器及其控制方法 | |
US10019369B2 (en) | Apparatuses and methods for pre-fetching and write-back for a segmented cache memory | |
CN102498477B (zh) | Tlb预取 | |
US9311246B2 (en) | Cache memory system | |
US7958317B2 (en) | Cache directed sequential prefetch | |
CN105183663B (zh) | 预取单元和数据预取方法 | |
CN103198026A (zh) | 指令高速缓存功耗降低 | |
JPH1074166A (ja) | 多重レベル・ダイナミック・セット予測方法および装置 | |
EP1869557B1 (en) | Global modified indicator to reduce power consumption on cache miss | |
US7047362B2 (en) | Cache system and method for controlling the cache system comprising direct-mapped cache and fully-associative buffer | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
CN103377036A (zh) | 分支预测功率降低 | |
CN103377146A (zh) | 分支预测功率降低 | |
CN113986774A (zh) | 一种基于指令流和访存模式学习的缓存替换***及方法 | |
CN100517273C (zh) | 高速缓冲存储器及其控制方法 | |
CN114579479A (zh) | 基于指令流混合模式学习的低污染缓存预取***及方法 | |
US7769954B2 (en) | Data processing system and method for processing data | |
CN1662887A (zh) | 低功率组关联缓存 | |
CN100545819C (zh) | 高速缓冲存储器及其控制方法 | |
US11036639B2 (en) | Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays | |
EP0741356A1 (en) | Cache architecture and method of operation | |
US8214601B2 (en) | Purging without write-back of cache lines containing spent data | |
US20030061469A1 (en) | Filtering basic instruction segments in a processor front-end for power conservation | |
KR20240056765A (ko) | 레지스터 이름 어드레싱 및 동적 로드 크기 조정을 이용한 컴퓨터 아키텍처 | |
JP2000040030A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090722 Termination date: 20110316 |