高速缓存存储器、存储器系统、数据复制方法及数据改写方法

文档序号:6594807阅读:170来源:国知局
专利名称:高速缓存存储器、存储器系统、数据复制方法及数据改写方法
技术领域
本发明涉及高速缓存存储器、存储器系统、数据复制方法及数据改写方法。特别涉及具有多个路、将保存在存储器中的数据的一部分进行保存的高速缓存存储器。
背景技术
在近年来的存储器系统中,例如将由SRAM (Static Random Access Memory/静态随机访问存储器)等构成的小容量且高速的高速缓存存储器配置在微处理器的内部、或其附近。在这样的存储器系统中,通过高速缓存存储器将微处理器从主存储器读出的数据的一部分、以及写入到主存储器中的数据的一部分存储(高速缓存),使微处理器的存储器访问高速化(例如参照专利文献1)。这样的以往的高速缓存存储器在发生了从处理器向主存储器的访问的情况下,判断是否自己已经保存有该访问目标的地址的数据,在保存有的情况下(以下称作命中),将该保存的数据输出给处理器(读时)、或将该数据更新(写时)。此外,高速缓存存储器在没有保存该访问目标的地址的数据的情况下(以下称作高速缓存未命中),将从处理器输出的该地址及数据保存(写时),或者在将该地址的数据从主存储器读出后保存,并且将读出的数据输出给处理器(读时)。此外,在高速缓存未命中的情况下,高速缓存存储器判断在该高速缓存存储器内是否有保存新的地址及数据的空闲区域,在没有空闲区域的情况下,进行行替换(替代), 以及根据需要而进行回写(清除)等的处理。此外,高速缓存存储器根据来自处理器的命令(command),进行预取出及接触等的处理。该预取出及接触是为了提高高速缓存存储器的效率(命中率提高、以及高速缓存未命中延迟降低)而进行的处理。所谓预取出,是在发生高速缓存未命中之前、将较近的未来使用的数据预先保存到高速缓存存储器中的动作。通过该预取出,对于该数据不发生高速缓存未命中,所以能够高速地进行数据读出动作。此外,所谓接触,是在发生高速缓存未命中之前、为了在较近的未来进行改写的数据而预先确保高速缓存存储器内的区域(高速缓存条目)的动作。通过该接触,在该数据的写入动作时,不发生高速缓存未命中,所以能够高速地进行向主存储器的数据写入。这样,处理器通过对高速缓存存储器指示预取出命令及接触命令,能够使向主存储器的数据改写高速化。先行技术文献专利文献专利文献1 国际公开第05/091146号小册子

发明内容
发明的概要发明要解决的课题但是,希望将这样的数据改写动作更高速地执行。所以,本发明的目的是提供一种高速缓存存储器及存储器系统,能够由处理器高速地改写主存储器的数据。解决课题的手段为了达到上述目的,有关本发明的高速缓存存储器,是具有多个分别包括标签地址、行数据、和脏标志(dirty flag)在内的条目的高速缓存存储器,具备命令执行部,在由处理器指示了第1命令的情况下,将在上述多个条目中的、由上述处理器指定的1个以上的条目中包含的上述标签地址改写为对应于由上述处理器指定的地址的标签地址,并且设置对应于该条目的上述脏标志;以及回写部,将包含在设置了上述脏标志的条目中的上述行数据回写到主存储器中。根据该结构,处理器通过对有关本发明的高速缓存存储器指示第1命令,能够指定条目而变更保存在高速缓存存储器中的标签地址。由此,在使用有关本发明的高速缓存存储器将主存储器的数据复制到其他地址的情况下,能够指定保存有复制源的数据的条目而将标签地址从对应于复制源的地址的标签地址变更为对应于复制目标的地址的标签地址。进而,有关本发明的高速缓存存储器在更新标签地址的同时设置脏标志。由此,通过在执行第1命令后进行回写(向存储器的数据的写回),将变更了标签地址的条目的数据回写。即,将复制源的数据复制到复制目标的地址。另一方面,在使用以往的高速缓存存储器的存储器系统中,为了进行同样的复制动作,例如需要处理器将保存在高速缓存存储器中的复制源的数据读出、并且对高速缓存存储器指示以往的接触(仅变更标签地址)之后、将读出的数据指定复制目标的地址而写入到存储器中。这样,通过使用有关本发明的高速缓存存储器,处理器能够将读出及写入动作省略。此外,在使用以往的高速缓存存储器的复制动作中需要两个条目,相对于此,在使用有关本发明的高速缓存存储器的情况下,能够仅通过一个条目实现复制动作,所以能够削减高速缓存存储器中的行替换处理的发生次数。由此,通过使用有关本发明的高速缓存存储器,处理器能够将主存储器的数据高速地复制到其他地址中。此外,上述高速缓存存储器也可以还具备禁止部,该禁止部禁止上述多个条目中的、由上述处理器指定的1个以上的条目中包含的行数据的替代;在由上述处理器指示了第1命令的情况下,上述命令执行部将由上述禁止部禁止了行数据的替代的条目中包含的上述标签地址改写为对应于由上述处理器指定的上述地址的标签地址,并且设置对应于该条目的上述脏标志。根据该结构,处理器通过将在复制动作中使用的条目锁定(指定该条目),能够防止在该复制动作中、用于复制动作的数据被通过通常的高速缓存动作或其他命令替代(删除)。此外,也可以是,在由上述处理器指示了第2命令的情况下,上述命令执行部还从上述主存储器读出由上述处理器指定的地址的数据,将上述多个条目中的、由上述处理器指定的1个以上的条目中包含的上述标签地址改写为对应于上述地址的标签地址,并且将
6包含在该条目中的上述行数据改写为上述读出的数据;在由上述处理器指示了第1命令的情况下,上述命令执行部将由上述禁止部禁止了行数据的替代的条目中包含的上述标签地址改写为对应于由上述处理器指定的上述地址的标签地址,并且设置对应于该条目的上述脏标志。根据该结构,处理器通过对有关本发明的高速缓存存储器指示第2命令,能够使用第1命令改写标签地址的数据保存到指定的条目中。由此,处理器能够掌握保存复制源的数据的条目,所以能够指定该条目而执行第1命令。此外,也可以是,在由上述处理器指示了第3命令的情况下,上述回写部将上述多个条目中的、由上述处理器指定的条目中包含的上述行数据回写到上述主存储器中。根据该结构,处理器通过对高速缓存存储器指示第3命令,能够仅指定保存用于复制动作的数据的条目而指示回写。由此,与对全部条目进行回写的情况相比能够高速地进行复制动作。此外,也可以是,上述高速缓存存储器具有包括1个以上的上述条目的多个路;在由上述处理器指示了上述第1命令的情况下,上述命令执行部选择上述多个路中的、包含在由上述处理器指定的1个以上的路中的条目,将包含在所选择的条目中包含的上述标签地址改写为对应于由上述处理器指定的上述地址的标签地址,并且设置对应于该条目的上述脏标志。此外,有关本发明的高速缓存存储器,是具有多个分别包括标签地址、行数据、和脏标志在内的条目的高速缓存存储器,其特征在于,具备命令执行部,在由处理器指示了第4命令的情况下,将在上述多个条目中的某个条目中包含的上述标签地址改写为对应于由上述处理器指定的地址的标签地址,设置包含在该条目中的上述脏标志,将包含在该条目中的上述行数据变更为预先设定的数据;以及回写部,将包含在设置了上述脏标志的条目中的上述行数据回写到主存储器中。根据该结构,处理器通过对有关本发明的高速缓存存储器指示第4命令,能够通过一个命令实现标签地址的更新、脏标志的设置、和行数据的更新。由此,通过在执行第4 命令后进行回写(向存储器的数据的写回),将更新后的行数据写入到对应于更新后的标签地址的存储器内的区域中。即,在希望的地址中写入预先设定的数据。另一方面,在使用以往的高速缓存存储器的存储器系统中,为了进行同样的写入动作,需要例如处理器在对高速缓存存储器指示以往的接触(仅变更地址)后写入数据。这样,通过使用有关本发明的高速缓存存储器,处理器能够省略写入动作。由此, 通过使用有关本发明的高速缓存存储器,处理器能够将主存储器的数据高速地改写为预先设定的数据。此外,上述预先设定的数据也可以是全部的位都相同的数据。此外,有关本发明的存储器系统是具备处理器、1级高速缓存存储器、2级高速缓存存储器、和存储器的存储器系统,上述2级高速缓存存储器是上述高速缓存存储器。根据该结构,有关本发明的高速缓存存储器被用在2级高速缓存中。这里,在进行使用有关本发明的高速缓存存储器的上述复制动作、或上述写入动作的情况下,将高速缓存存储器内的一部分的条目用于该复制动作、或该写入动作,所以通常的高速缓存动作等的处理能力有可能暂时下降。这里,2级高速缓存与1级高速缓存相比,处理能力的下降给存储器系统整体带来的影响较小。具体而言,在1级高速缓存中采用有关本发明的高速缓存存储器的情况下,来自处理器的1级高速缓存能够妨碍命中时的访问。另一方面,通过在 2级高速缓存中采用本发明的高速缓存存储器,能够减小上述命中时的访问的妨碍。即,通过将有关本发明的高速缓存存储器应用在2级高速缓存中,能够减轻对存储器系统整体的不良影响。此外,有关本发明的数据复制方法,是将保存在主存储器的第1地址中的第1数据复制到该主存储器的第2地址中的数据复制方法,其特征在于,包括保存步骤,将对应于上述第1地址的标签地址及上述第1数据保存到高速缓存存储器中;更新步骤,将对应于保存在上述高速缓存存储器中的上述第1地址的上述标签地址改写为对应于上述第2地址的标签地址,并且设置对应于该第1数据的脏标志;回写步骤,将该第1数据从上述高速缓存存储器回写到上述主存储器中。由此,将对应于保存在高速缓存存储器内的复制源的第1数据的标签地址变更为对应于复制目标的第2地址的标签地址。进而,在与该标签地址的更新同时,设置脏标志。 由此,通过进行回写(向存储器的数据的写回),将保存在复制源的第1地址中的第1数据复制到复制目标的第2地址。这样,有关本发明的数据复制方法能够不从高速缓存存储器向处理器发送数据, 而通过高速缓存存储器内的标签地址的变更来实现复制动作。由此,有关本发明的数据复制方法能够将主存储器的数据高速地复制到其他地址。此外,上述数据复制方法也可以还包括禁止步骤,该禁止步骤禁止在从上述保存步骤之后到上述更新步骤完成的期间替代保存在上述高速缓存存储器中的上述第1数据。由此,能够防止在复制动作中、保存在高速缓存存储器中的第1数据被通常的高速缓存动作等替代(删除)。此外,也可以是,上述保存步骤包括指定上述高速缓存存储器具有的多个条目中的第1条目的步骤;在指定的上述第1条目中保存对应于上述第1地址的标签地址及上述第1数据的步骤;上述更新步骤包括指定上述第1条目的步骤;将对应于包含在指定的上述第1条目中的上述第1地址的上述标签地址改写为对应于上述第2地址的标签地址,并且设置对应于该第1数据的脏标志的步骤。由此,处理器能够掌握保存复制源的第1数据的第1条目,所以能够指定该第1条目而变更标签地址。此外,也可以是,上述保存步骤包括指定上述高速缓存存储器具有的多个条目中的第1条目的步骤;在指定的上述第1条目中保存对应于上述第1地址的标签地址及上述第1数据的步骤;上述回写步骤包括指定上述第1条目的步骤;将包含在指定的上述条目中的上述第1数据从上述高速缓存存储器回写到上述主存储器中的步骤。由此,能够不将全部的条目回写而仅将在复制动作中使用的第1条目回写,所以能够提高处理速度。此外,也可以是,上述高速缓存存储器具有分别包括多个条目的多个路;上述第1 地址及上述第2地址分别包括指定上述路内的条目的集合索引;上述第1地址和上述第2 地址具有相同的上述集合索引;上述更新步骤包括指定包括保存上述第1数据的条目的路的步骤;选择包含在指定的上述路中的多个条目中的、由包含在上述第2地址中的上述
8集合索引指定的条目的步骤;将对应于包含在选择的上述条目中的上述第1地址的上述标签地址改写为对应于上述第2地址的标签地址、并且设置对应于该第1数据的脏标志的步骤。由此,即使是在各路中包含多个条目的情况,通过使第1地址与第2地址的集合索引相同,也能够仅通过指定路来指定高速缓存存储器内的任意的条目。即,处理器通过指定路,能够变更保存在高速缓存存储器内的希望的条目的标签地址。此外,有关本发明的数据改写方法,是将保存在主存储器的第1地址中的数据改写为预先设定的第1数据的数据改写方法,包括更新步骤,将在高速缓存存储器具有的多个条目中的某个条目中包含的标签地址改写为对应于上述第1地址的标签地址,设置包含在该条目中的上述脏标志,将包含在该条目中的行数据变更为上述第1数据;回写步骤,从上述高速缓存存储器对上述主存储器回写上述第1数据。由此,有关本发明的数据改写方法能够同时实现标签地址的更新、将脏标志变更为更新状态的动作、和行数据的更新。由此,通过在进行上述更新后进行回写(向存储器的数据的写回),在主存储器内的第1地址中写入预先设定的第1数据。这样,有关本发明的数据改写方法能够将主存储器的数据高速地改写为预先设定的数据。通过以上,本发明能够提供高速缓存存储器、存储器系统、数据复制方法及数据改写方法,能够由处理器将主存储器的数据高速地改写。


图1是表示有关本发明的实施方式的存储器系统的结构的图。图2是表示有关本发明的实施方式的高速缓存存储器的结构的图。图3是表示有关本发明的实施方式的路的结构的图。图4是表示有关本发明的实施方式的命令处理部的结构的图。图5是表示有关本发明的实施方式的命令的一例的图。图6是表示在有关本发明的实施方式的寄存器中写入数据的命令的一例的图。图7是表示由有关本发明的实施方式的高速缓存存储器进行的预取出动作的流程的流程图。图8是表示由有关本发明的实施方式的高速缓存存储器进行的第1接触动作的流程的流程图。图9是表示由有关本发明的实施方式的高速缓存存储器进行的第2接触动作的流程的流程图。图10是表示由有关本发明的实施方式的高速缓存存储器进行的第3接触动作的流程的流程图。图11是表示由有关本发明的实施方式的高速缓存存储器进行的回写动作的流程的流程图。图12是表示有关本发明的实施方式的存储器系统的数据复制动作的流程的流程图。图13是表示保存在有关本发明的实施方式的存储器中的数据的一例的图。图14是表示在有关本发明的实施方式的数据复制动作中进行了预取出之后的路的状态的图。图15是表示在有关本发明的实施方式的数据复制动作中进行第2接触之后的路的状态的图。图16是表示在进行了有关本发明的实施方式的数据复制动作之后的存储器中保存的数据的图。图17是表示有关本发明的实施方式的存储器系统的数据复制动作的流程的变形例的流程图。图18是表示有关本发明的实施方式的存储器系统的零写入动作的流程的流程图。图19是表示在有关本发明的实施方式的零写入动作中进行第3接触之后的路的状态的图。图20是表示在进行了有关本发明的实施方式的零写入动作之后的存储器中保存的数据的图。
具体实施例方式以下,参照附图对包括有关本发明的高速缓存存储器的存储器系统的实施方式详细地说明。在有关本发明的实施方式的存储器系统中,扩展了高速缓存存储器的功能(命令)。处理器能够使用该高速缓存存储器的功能将主存储器的数据高速地改写。具体而言,有关本发明的实施方式的高速缓存存储器除了具有标签地址的更新以外、还具有指定路径进行将脏标志同时更新的第2接触动作的功能。由此,处理器能够选择保存在高速缓存存储器中的数据中的希望的数据、即复制源的数据来变更标签地址。由此, 通过将第2接触动作后的数据写回到主存储器中,能够实现高速的数据复制。进而,有关本发明的实施方式的高速缓存存储器具有同时进行标签地址的更新、 脏标志的更新、和行数据的更新的第3接触动作的功能。由此,通过在第3接触动作后将数据写回到主存储器中,能够实现高速的数据改写。首先,说明包括有关本发明的实施方式的高速缓存存储器的存储器系统的结构。图1是表示有关本发明的实施方式的存储器系统的概略结构的图。图1所示的存储器系统包括处理器1、L1(1级)高速缓存4、L2Q级)高速缓存3、和存储器2。存储器2是SDRAM等的大容量的主存储器。Ll高速缓存4及L2高速缓存3是比存储器2高速但容量少的高速缓存存储器。 例如,Ll高速缓存4及L2高速缓存3是SRAM。此外,Ll高速缓存4是配置在比L2高速缓存3更靠处理器1附近的优先级较高的高速缓存存储器。该Ll高速缓存4及L2高速缓存3进行将处理器1从存储器2读出的数据的一部分、以及写入到存储器2中的数据的一部分存储的、所谓高速缓存动作。这里,所谓高速缓存动作,是在发生从处理器1向存储器2的访问的情况下、L2高速缓存3判断是否自身已保存有该访问目标的地址的数据、在保存有的情况下(命中)、将该保存的数据对处理器1 输出(读时)、或者将该数据更新(写时)的动作。此外,L2高速缓存3在没有保存有该访问目标的地址的数据的情况下(高速缓存未命中),将从处理器1输出的该地址及数据保存(写时),或者在将该地址的数据从存储器2读出后保存、并将读出的数据输出给处理器 1(读时)。此外,在高速缓存未命中的情况下,Ll高速缓存4及L2高速缓存3判断在该Ll高速缓存4或L2高速缓存3内是否有保存新的地址及数据的空闲区域,在没有空闲区域的情况下进行行替换(替代)、以及根据需要进行回写(清除)等的处理。另外,高速缓存动作是公知的技术,所以省略更详细的说明。此外,图1所示的处理器1、L1高速缓存4、L2高速缓存3、存储器2典型地讲是作为集成电路的LSI实现。它们既可以单独1芯片化,也可以包含一部分或全部而1芯片化。 例如,也可以将处理器1和Ll高速缓存4进行1芯片化。此外,各构成单元也可以由多个芯片实现。以下,对在L2高速缓存3中使用有关本发明的高速缓存存储器的例子进行说明。 此外,作为L2高速缓存3的具体例,对将本发明应用到4路集合关联方式的高速缓存存储器中的情况下的结构进行说明。图2是表示L2高速缓存3的结构例的块图。图2所示的L2高速缓存3具备地址寄存器20、存储器I/F21、解码器30、4个路31a 31d、4个比较器32a 32d、4个与电路 33a 33d、或电路34、选择器35及36、多路信号分离器37和控制部38。另外,在不特别区别4个路31a 31d的情况下记作路31。地址寄存器20是保持向存储器2的访问地址的寄存器。该访问地址是32位。如图2所示,访问地址从最高位起依次包括21位的标签地址51、4位的集合索引(Si) 52、和5 位的字索引(WI) 53。这里,标签地址51指示匹配于路31的存储器2中的区域(该尺寸是集合数X 块)。该区域的尺寸是由比标签地址51低位的地址位(A10 AO)决定的尺寸即业字节, 也是1个路31的尺寸。集合索引52指示跨越路31a 31b的多个集合的1个。该集合数由于集合索引 52为4位,所以有16集合。由标签地址51及集合索引52确定的高速缓存条目是替代单位,在保存在高速缓存存储器中的情况下称作行数据或行。行数据的尺寸是由比集合索引 52低位的地址位(A6 AO)决定的尺寸即1 字节。如果设1字为4字节,则1行数据是 32字。字索引(WI)53指示构成行数据的多个字中的1个字。此外,地址寄存器20中的最低位2位(Al、AO)在字访问时被忽视。存储器I/F21是用来从L2高速缓存3访问存储器2的接口。具体而言,存储器I/ F21进行从L2高速缓存3向存储器2的数据的回写、以及从存储器2向L2高速缓存3的数据的装载等。解码器30将集合索引52的4位解码,选择跨越4个路31a 31d的16集合中的 1个。4个路31a 31d具有相同的结构,各路31具有业字节的容量。图3是表示路31的结构的图。如图3所示,各路31具有16个高速缓存条目40。 各高速缓存条目40具有21位的标签41、有效标志42、脏标志43、和1 字节的行数据44。标签41是存储器2上的地址的一部分,是21位的标签地址51的复制。
行数据44是由标签地址51及集合索引52确定的块中的1 字节数据的复制。有效标志42表示该高速缓存条目40的数据是否是有效的。例如,在数据是有效的情况下,有效标志42是“1”,在数据是无效的情况下,有效标志42是“0”。脏标志43表示对于该高速缓存条目40是否从处理器1有写入、即行数据44是否被更新的状态。换言之,脏标志43表示虽然在该高速缓存条目40中存在被高速缓存的行数据44、但通过来自处理器1的写入,该行数据44与存储器2中的数据不同,所以表示是否需要将该行数据44写回到存储器2中。例如,在行数据44被更新的情况下,脏标志43是 “1”,在行数据44没有被更新的情况下,脏标志43是“0”。此外,将设脏标志43为“1”的动作也称作设置脏标志。比较器32a比较地址寄存器20中的标签地址51、与包含在由集合索引52选择的集合中的4个标签41中的路31a的标签41是否一致。关于比较器32b 32c,也除了对应于路31b 31d以外是同样的。与电路33a比较有效标志42与比较器32a的比较结果是否一致。将该比较结果设为ho。比较结果ho是“1”的情况意味着存在对应于地址寄存器20中的标签地址51及集合索引52的行数据44、即在路31a中命中。此外,比较结果h0是“0”的情况意味着高速缓存未命中。关于与电路33b 33d,也除了对应于路31b 31d以外是同样的。S卩,该比较结果hi h3意味着在路31b 31d中命中还是未命中。或电路34取比较结果h0 h3的或。设该或的结果为hit。Hit表示在高速缓存存储器中是否命中。选择器35选择所选择的集合的路31a 31d的行数据44中的、命中的路31的行数据44。选择器36选择由选择器35选择的32个字的行数据44中的、由字索引53表示的 1个字。多路信号分离器37在对高速缓存条目40写入数据时,对路31a 31d的1个输出写入数据。该写入数据可以是字单位。控制部38进行L2高速缓存3整体的控制。具体而言,控制将处理器1从存储器2 读出的数据的一部分、以及写入到存储器2中的数据的一部分存储的、所谓高速缓存动作。 该控制部38包括命令处理部39。图4是表示命令处理部39的结构的图。命令处理部39执行被从处理器1指定的命令。该命令处理部39具备地址寄存器 100、命令寄存器101、路锁定寄存器104、路指定寄存器105、命令执行部106、和状态寄存器 107。这里,地址寄存器100 (开始地址寄存器102及尺寸寄存器10 、命令寄存器101、 路锁定寄存器104、以及路指定寄存器105是能够从处理器1直接访问(可改写数据)的寄存器。命令寄存器101保持被处理器1指定的命令121。图5是表示命令121的格式的一例的图。该命令121包括命令内容64。这里,命令内容64表示预取出命令、第1接触命令、第2接触命令、第3接触命令、和回写命令中的某个。
地址寄存器100保持被处理器1指定的地址范围。该地址寄存器100具备开始地址寄存器102和尺寸寄存器103。开始地址寄存器102保持作为上述地址范围的最初的地址的、被处理器1指定的开始地址122。另外,开始地址122既可以是存储器2的地址(32位)的全部,也可以是该地址的一部分。例如,开始地址122也可以是仅包括标签地址51及集合索引52的地址。尺寸寄存器103保持被处理器1指定的尺寸123。该尺寸123表示从开始地址122 到上述地址范围的最后的地址为止的大小。另外,尺寸123的单位既可以是字节数也可以是行数(高速缓存条目数),只要是预先设定的单位就可以。路锁定寄存器104保持表示被处理器1指定的1个以上的路31的锁定状态124。 该锁定状态124由4位构成,各位分别对应于4个路31a 31d,表示对应的路31是否被锁定。例如,锁定状态124是“0”的情况表示对应的路31没有被锁定,锁定状态IM是“1” 的情况表示对应的路31被锁定。此外,被锁定的路31被禁止替代,不能被用与除了特定的命令以外的通常的命令动作、以及通常的高速缓存动作。路指定寄存器105保持表示被处理器1指定的1个以上的路31的指定状态125。 该指定状态125由4位构成,各位分别对应于4个路31a 31d。例如,指定状态125是“0” 的情况表示对应的路31没有被指定,指定状态125是“1”的情况表示对应的路31被指定。图6是表示对命令寄存器101、开始地址寄存器102、尺寸寄存器103、路锁定寄存器104、以及路指定寄存器105写入数据的命令的一例的图。图6所示的命令是通常的转移命令(mov命令)61,由源操作数(R)62指定寄存器,作为目标操作数(D)63而指定保存在寄存器中的数据。具体而言,在源操作数62中,指定命令寄存器101、开始地址寄存器102、尺寸寄存器103、路锁定寄存器104、或路指定寄存器105,在目标操作数63中,指定命令121、开始地址122、尺寸123、锁定状态124、或指定状态125。命令执行部106执行由保持在命令寄存器101中的命令121指定的命令。该命令执行部106包括预取出部111、第1接触部112a、第2接触部112b、第3接触部112c、回写部113、和禁止部114。预取出部111在命令寄存器101中保持有预取出命令的情况下执行预取出动作。 此外,预取出部111在指定状态125中指定了某个路31的情况下使用该路31执行预取出动作。这里,所谓预取出动作,是从存储器2读出保持在地址寄存器100中的地址范围的数据、将读出的数据保存在该L2高速缓存3中的动作。具体而言,预取出部111选择多个高速缓存条目40中的某个,将包含在所选择的高速缓存条目40中的标签41改写为对应于保持在地址寄存器100中的地址范围的标签地址51,并且将包含在该高速缓存条目40中的行数据44改写为读出的数据。第1接触部11 在命令寄存器101中保持有第1接触命令的情况下执行第1接触动作。此外,第1接触部11 在指定状态125中指定了某个路31的情况下,使用该路31 执行第1接触动作。这里,所谓第1接触动作,与以往的接触动作同样,是仅改写标签41的动作。具体而言,第ι接触部11 选择包含在多个路31中的多个高速缓存条目40中的某个,将包含
13在所选择的高速缓存条目40中的标签41改写为对应于保持在地址寄存器100中的地址范围的标签地址51。第2接触部112b在命令寄存器101中保持有第2接触命令的情况下执行第2接触动作。此外,第2接触部112b在指定状态125下指定了某个路31的情况下使用该路31 执行第2接触动作。这里,所谓第2接触动作,是除了第1接触动作以外、还将包含在所选择的高速缓存条目40中的脏标志43更新为“ 1,,的动作。第3接触部112c在命令寄存器101中保持有第3接触命令的情况下执行第3接触动作。此外,第3接触部112c在指定状态125中指定了某个路31的情况下使用该路31 执行第3接触动作。这里,所谓第3接触动作,是除了第2接触动作以外、还将包含在所选择的高速缓存条目40中的行数据44全部更新为“0”的动作。回写部113在命令寄存器101中保持有回写命令的情况下执行回写动作。此外, 预取出部111在指定状态125中指定了某个路31的情况下对该路31执行回写动作。这里,所谓回写动作,是将L2高速缓存3保存的数据中的、被处理器1更新后的数据写回到存储器2中的动作。具体而言,回写部113选择脏标志43是“1”的高速缓存条目 40,将包含在所选择的高速缓存条目40中的行数据44写入到对应于包含在该高速缓存条目40中的标签41的存储器2的地址范围中。禁止部114基于保持在路锁定寄存器104中的锁定状态124,控制在控制部38的高速缓存动作及命令执行中使用的路31。即,禁止部114禁止对包含在锁定状态IM为“ 1” 的路31中的行数据44的替代(删除)。这里,所谓替代,是指在全部的条目被使用的情况下、为了新保存数据而基于规定的算法选择高速缓存条目40、将所选择的高速缓存条目40 的行数据44剔除的处理。具体而言,在所选择的高速缓存条目40的脏标志43是“0”的情况下,在该高速缓存条目40中写入新的标签41及行数据44,在所选择的高速缓存条目40 的脏标志43是“1”的情况下,在将该高速缓存条目40的行数据44回写到存储器2中之后, 在该高速缓存条目40中写入新的标签41及行数据44。此外,禁止部114例外地在由指定状态125指定了由锁定状态IM表示的路31的情况下,许可命令执行。状态寄存器107保持表示命令执行部106是否正在执行命令的执行状态127。例如,执行状态127是“0”的情况表示命令执行部106没有执行命令,执行状态127是“1”的情况表示命令执行部106正在执行命令。接着,说明有关本发明的实施方式的L2高速缓存3的动作。首先,对预取出动作进行说明。所谓预取出,是为了高速缓存存储器的效率提高 (命中率提高、以及高速缓存未命中延迟降低)、在发生高速缓存未命中之前、将在较近的未来使用的数据预先保存到高速缓存存储器中的动作。具体而言,L2高速缓存3保存被从处理器1指定的地址范围的数据。此外,在有关本发明的实施方式的L2高速缓存3中,基于保持在路锁定寄存器104 中的锁定状态124、和保持在路指定寄存器105中的指定状态125,选择保存数据的路31。图7是表示L2高速缓存3的预取出动作的流程的流程图。
在命令寄存器101中保持有预取出命令的情况下(S101中是),预取出部111通过参照保持在路指定寄存器105中的指定状态125,判断是否指定了路31 (S102)。在没有指定路31的情况下,即在包含在指定状态125中的、对应于4个路31a 31d的位全部是“0”的情况下(S102中否),接着,预取出部111通过参照保持在路锁定寄存器104中的锁定状态124,判断路31是否被锁定(S103)。在路31没有被锁定的情况下,即在包含在锁定状态IM中的、对应于4个路31a 31d的位全部是“0”的情况下(S103中否),预取出部111通过LRU (Least Recently Used/ 最近最少使用)方式从4个路31a 31d中选择数据保存目标的路31 (S104)。另一方面,在路31被锁定的情况下,即在包含在锁定状态124中的4个位中1个以上的位是“1”的情况下(S103中是),预取出部111从没有被锁定的(锁定状态IM是 “0”的)路31中,以LRU方式选择数据保存目标的路31 (S105)。此外,在指定了路31的情况下,即在包含在指定状态125中的4个位中1个以上的位是“1”的情况下(S102中是),预取出部111将被指定的(指定状态125是“1”)的路31选择为数据保存目标的路31 (S106)。接着,预取出部111使用由步骤S104、S105或S106选择的路31进行预取出。首先,预取出部111使用保持在开始地址寄存器102中的开始地址122、和保持在尺寸寄存器103中的尺寸123,选择进行预取出的地址(S107)。具体而言,预取出部111将从开始地址122起尺寸123量的地址范围决定为预取出对象的地址范围,将预取出对象的地址范围的数据以1 字节单位预取出。接着,预取出部111确认包含在由步骤S104、S105或S106选择的路31中、并且通过由步骤S107选择的地址的集合索引52指定的高速缓存条目40的脏标志43(S108)。如果脏标志43是“1”(S108中是),则预取出部111进行回写(S109)。在脏标志43是“0”的情况下(S108中否),或者在回写(S109)之后,预取出部 111将在步骤S107中选择的地址范围的数据从存储器2读出,保存到由步骤S104、S105或 S106选择的路31中(SllO)。具体而言,预取出部111将标签41更新为由步骤S107选择的地址范围的标签地址51,将行数据44更新为从存储器2读出的数据,将有效标志42设定为“ 1 ”,将脏标志43设定为“0”。此外,在没有将从开始地址122起尺寸123量的地址范围的数据全部预取出完的情况下(S111中否),预取出部111选择接下来的1 字节的地址范围(S108),对所选择的地址范围重复进行与上述步骤S108以后同样的处理(S108 S110),直到将全部数据预取出完(S111中是)。以上,有关本发明的实施方式的L2高速缓存3通过保持由处理器1写入的指定状态125,能够使用从处理器1指定的路31进行预取出。进而,有关本发明的实施方式的L2高速缓存3通过保持由处理器1写入的锁定状态124,能够禁止从处理器1指定的路31的更新(替代)。接着,对由L2高速缓存3进行的第1接触动作进行说明。这里,所谓接触,是为了高速缓存存储器的效率提高(命中率提高、及高速缓存未命中延迟低減)、在发生高速缓存未命中之前、为了在较近的未来进行改写的数据而预先确保高速缓存条目40的动作。具体而言,L2高速缓存3确保用来保存从处理器1指定的地址范围的数据的高速缓存条目40。进而,在有关本发明的实施方式的L2高速缓存3中,基于保持在路锁定寄存器104 中的锁定状态124、和保持在路指定寄存器105中的指定状态125,选择用于接触的路31。图8是表示由L2高速缓存3进行的第1接触动作的流程的流程图。在命令寄存器101中保持有第1接触命令的情况下(S201中是),第1接触部 112a通过参照保持在路指定寄存器105中的指定状态125,判断是否指定了路31 (S202)。在没有指定路31的情况下,即在包含在指定状态125中的、对应于4个路31a 31d的位全部是“0”的情况下(S202中否),接着,第1接触部11 通过参照保持在路锁定寄存器104中的锁定状态124,判断路31是否被锁定(S203)。在路31没有被锁定的情况下,即在包含在锁定状态IM中的、对应于4个路31a 31d的位全部是“0”的情况下(S203中否),第1接触部11 以LRU方式从4个路31a 31d中选择用于接触的路31 (S204)。另一方面,在路31被锁定的情况下,即在包含在锁定状态124中的4个位中的1 个以上是“1”的情况下(S203中是),第1接触部11 以LRU方式从没有被锁定的(锁定状态124是“0”的)路31中选择用于接触的路31(S205)。此外,没有指定路31的情况下、即在包含在指定状态125中的4个位中1个以上的位是“1”的情况下(S202中是),第1接触部11 选择被指定的(指定状态125是“1” 的)路31作为用于接触的路31 (S206)。接着,第1接触部11 使用由步骤S204、S205或S206选择的路31进行第1接触。首先,第1接触部11 使用保持在开始地址寄存器102中的开始地址122、和保持在尺寸寄存器103中的尺寸123,选择进行接触的地址(S207)。具体而言,第1接触部11 将从开始地址122起尺寸123量的地址范围决定为接触对象的地址范围,将接触对象的地址范围以对应于1 字节的数据的地址单位接触。接着,第1接触部11 确认包含在由步骤S204、S205或S206选择的路31中、并且由在步骤S207中选择的地址的集合索引52指定的高速缓存条目40的脏标志43(S208)。如果脏标志43是“1”(S208中是),则第1接触部11 进行回写(S209)。在脏标志43是“0”的情况下(S208中否)、或者在回写(S209)之后,第1接触部 11 将包含在由步骤S204、S205或S206选择的路31中、由在步骤S207中选择的地址的集合索引52指定的高速缓存条目40的标签41更新(S210)。具体而言,第1接触部11 将标签41更新为对应于在步骤S207中选择的地址的标签地址51,将有效标志42设定为 “ 1”,将脏标志43设定为“0”。此外,在没有将从开始地址122起尺寸123量的地址范围全部接触完的情况下 (S211中否),第1接触部11 选择对应于下个1 字节的数据的地址(S208),对所选择的地址重复进行与上述的步骤S208以后同样的处理(S208 S210),直到将全部的地址范围接触完(S211中是)。以上,有关本发明的实施方式的L2高速缓存3通过保持由处理器1写入的指定状态125,能够使用从处理器1指定的路31进行接触。进而,有关本发明的实施方式的L2高速缓存3通过保持由处理器1写入的锁定状态124,能够禁止从处理器1指定的路31的更新。接着,说明第2接触动作。第2接触是除了第1接触(标签41的更新)以外还将脏标志43更新的动作。图9是表示由L2高速缓存3进行的第2接触动作的流程的流程图。另外,图9所示的处理相对于图8所示的第1接触动作,步骤S221及S222的处理不同。另外,除此以外的处理与图8所示的第1接触动作是同样,以下仅说明不同点。此外, 图8所示的处理由第1接触部11 执行,但图9所示的处理由第2接触部112b执行。在命令寄存器101中保持有第2接触命令的情况下(S221中是),第2接触部 112b进行与上述的步骤S202以后同样的处理。此外,在脏标志43是“0”的情况下(S208中否)、或者在回写(S209)之后,第2 接触部112b将包含在由步骤S204、S205或S206选择的路31中、由在步骤S207中选择的地址的集合索引52指定的高速缓存条目40中的标签41及脏标志43更新(S22》。具体而言,第2接触部112b将标签41更新为在步骤S207中选择的地址范围的标签地址51,将有效标志42设定为“ 1 ”,将脏标志43设定为“ 1 ”。接着,说明第3接触动作。第3接触是除了第2接触(标签41及脏标志43的更新)以外还将行数据44全部更新为“0”的动作。图10是表示由L2高速缓存3进行的第3接触动作的流程的流程图。另外,图10所示的处理相对于图8所示的第1接触动作,步骤S231及S232的处理不同。另外,除此以外的处理与图8所示的第1接触动作是同样的,以下仅说明不同点。 此外,图8所示的处理由第1接触部11 执行,但图10所示的处理由第3接触部112c执行。在命令寄存器101中保持有第3接触命令的情况下(S231中是),第3接触部 112c进行与上述的步骤S202以后同样的处理。此外,在脏标志43是“0”的情况下(S208中否)、或者在回写(S209)之后,第3 接触部112c将包含在由步骤S204、S205或S206选择的路31中、由在步骤S207中选择的地址的集合索引52指定的高速缓存条目40中的标签41、脏标志43和行数据44更新(S232)。 具体而言,第3接触部112c将标签41更新为在步骤S207中选择的地址范围的标签地址51, 将包含在行数据44中的全部的位更新为“0”,将有效标志42设定为“1”,将脏标志43设定为 “1”。接着,说明回写动作。所谓回写,是将脏标志43为“1”的行数据44写入到存储器 2中的动作。即,所谓回写,是将在高速缓存存储器中被更新的数据写回到存储器2中的动作。图11是表示由L2高速缓存3进行的回写动作的流程的流程图。在命令寄存器101中保持有回写命令的情况下(S301中是),回写部113通过参照保持在路指定寄存器105中的指定状态125,判断是否指定了路31 (S302)。在没有指定路31的情况下、即在包含在指定状态125中的、对应于4个路31a 31d的位全部是“0”的情况下(S302中否),接着,回写部113通过参照保持在路锁定寄存器104中的锁定状态124,判断路31是否被锁定(S303)。在路31没有被锁定的情况下、即在包含在锁定状态IM中的、对应于4个路31a
1731d的位全部是“0”的情况下(S303中否),回写部113选择全部的路31a 31d作为回写对象(S304)。另一方面,在路31被锁定的情况下、即在包含在锁定状态124中的4个位中1个以上的位是“1”的情况下(S303中是),回写部113选择没有被锁定的(锁定状态IM是 “0”的)全部的路31作为回写对象(S305)。此外,在指定了路31的情况下、即在包含在指定状态125中的4个位中1个以上是“1”的情况下(S302中是),回写部113将被指定的(指定状态125是“1”的)路31选择为回写对象(S306)。接着,回写部113对由步骤S304、S305或S306选择的路31进行回写。首先,回写部113确认包含在由步骤S304、S305或S306选择的路31中的各高速缓存条目40的脏标志43 (S307)。接着,回写部113对脏标志43是“1”的高速缓存条目40 (S307中是)进行回写 (S308)。具体而言,回写部113将脏标志43是“1”的高速缓存条目40的行数据44写入到存储器2中,将脏标志43变更为“0”。此外,对于脏标志43是“0”的高速缓存条目40(S307中否),回写部113不进行回写。以上,有关本发明的实施方式的L2高速缓存3通过保持由处理器1写入的指定状态125,能够仅对被从处理器1指定的路31进行回写。进而,有关本发明的实施方式的L2高速缓存3通过保持由处理器1写入的锁定状态124,能够禁止被从处理器1指定的路31的更新。接着,说明在有关本发明的实施方式的存储器系统中将存储器2的数据复制到存储器2内的其他地址中的动作。在有关本发明的实施方式的存储器系统中,处理器1能够使用上述L2高速缓存3 的功能将存储器2的数据复制到其他地址。图12是表示有关本发明的实施方式的存储器系统的、数据复制动作的流程的流程图。此外,图13是表示保存在存储器2中的数据的例子的图。以下,说明将图13所示的地址范围71 (0x00000000 0x00000100)的256字节的数据复制到地址范围72(0x80000000 0x80000100)中的例子。此外,假设在该复制中使用路31a。首先,处理器1对L2高速缓存3指示以使其将路31a锁定(S401)。具体而言,处理器1通过在路锁定寄存器104中写入“0,0,0,1”,将路31a锁定。另外,这里假设保持在路锁定寄存器104中的4位的锁定状态IM从低位位起依次对应于路31a 31d。接着,处理器1在指定路31a后,对L2高速缓存3指示预取出复制源的数据640 。具体而言,处理器1将预取出命令写入到命令寄存器101中,将开始地址 (0x00000000)写入到开始地址寄存器102中,将尺寸(0x100)写入到尺寸寄存器103中,将 “0,0,0,1”写入到路指定寄存器105中。由此,L2高速缓存3将存储器2的地址范围71的数据保存到路31a中。另外,这里,假设保持在路指定寄存器105中的4位的指定状态125 从低位位起依次对应于路31a 31d。图14是表示在步骤402中进行了预取出后的路31a的状态的图。如图14所示,L2高速缓存3将保存在存储器2的地址范围71中的数据A及数据B保存到高速缓存条目 40a 及 40b 中。这里,高速缓存条目40a对应于保持有数据A的地址范围71a的集合索引 52 “0000”,高速缓存条目40b对应于保存有数据B的地址范围71b的集合索引52“0001”。 此外,L2高速缓存3在高速缓存条目40a及40b的标签41中都保存作为地址范围71的标签地址51的标签A (0x000000)。此外,L2高速缓存3将高速缓存条目40a及40b的有效标志42都设定为“1”,将脏标志43都设定为“0”。接着,处理器1等待由L2高速缓存3进行的预取出动作完成(S40;3)。具体而言, 处理器1通过确认保持在状态寄存器107中的执行状态127,判断预取出动作的完成。在由L2高速缓存3进行的预取出动作完成后,接着,处理器1在指定了路31a之后,对L2高速缓存3指示对复制目标的地址的第2接触动作(S404)。具体而言,处理器1 将第2接触命令写入到命令寄存器101中,将开始地址(0x80000000)写入到开始地址寄存器102中,将尺寸(0x100)写入到尺寸寄存器103中,将“0,0,0,1”写入到路指定寄存器 105中。由此,L2高速缓存3设置在步骤S402中保存了数据的路31a的高速缓存条目40a 及40b的标签41及脏标志43。图15是表示在步骤403中进行了第2接触后的路31a的状态的图。如图15所示, L2高速缓存3将高速缓存条目40a及40b的标签41都更新为作为复制目标的地址范围72 的标签地址51的标签B (0x100000)。此外,L2高速缓存3将高速缓存条目40a及40b的脏标志43都设定为“1”。这样,在有关本发明的实施方式的存储器系统中,通过指定路31,能够指定保存在 L2高速缓存3中的复制源的数据而变更标签41。即,通过指定了路31的第2接触,能够在 L2高速缓存3内将复制源的数据的地址变更为复制目标的数据的地址。接着,处理器1等待由L2高速缓存3进行的第2接触动作完成640 。具体而言,处理器1通过确认保持在状态寄存器107中的执行状态127,判断第2接触动作是否已完成。在由L2高速缓存3进行的第2接触动作完成后,接着,处理器1将路31a的锁定解除(S406)。具体而言,处理器1通过对路锁定寄存器104写入“0,0,0,0”,将路31a的锁
定解除。接着,处理器1对L2高速缓存3指示回写动作(S407)。具体而言,处理器1将回写命令写入到命令寄存器101中。由此,L2高速缓存3在对应于由步骤S404更新后的标签B的地址范围71中写入数据A及数据B。具体而言,L2高速缓存3将包含在脏标志43 为“1”的高速缓存条目40中的行数据44写入到存储器2中。这里,在本发明的实施方式中,通过第2接触动作(S404),与标签41的更新同时,将脏标志43设定为“1”。由此,通过在第2接触动作(S404)之后进行回写,将数据复制到对应于更新后的标签41的地址范围 72中。图16是表示回写动作(S407)后的、保存在存储器2中的数据的图。如图16所示, 通过图12所示的处理,将保存在地址范围71 (71a及71b)中的数据A及数据B复制到地址范围72 (7 及72b)中。以上,在步骤S404中,通过处理器1对L2高速缓存3指示指定了路31a的第2接触命令,能够变更保存在L2高速缓存3内的希望的高速缓存条目40的标签41。这里,如上述的例子所示,复制源的地址范围71和复制目标的地址范围72需要具有相同的集合索引52。这是因为,在集合关联方式的高速缓存存储器中,使用路31内的哪个高速缓存条目40由集合索引52决定。即,为了唯一地选择包含在L2高速缓存3中的多个高速缓存条目40中的某个,需要指定路31及集合索引52。由此,处理器1通过由指定状态125指定路31、并且将复制源的地址范围71和复制目标的地址范围72指定为具有相同的集合索引52的地址范围,能够在指定保存有保存在L2高速缓存3中的复制源的地址范围71的数据的高速缓存条目40a及40b后进行接触动作(标签41的更新)。由此,在本发明的实施方式中,能够利用接触而高速地进行数据复制。进而,在第2接触中,在与标签41的更新同时将脏标志43更新为“1”。由此,通过在执行第2接触后进行回写,将变更了标签41的高速缓存条目的数据回写。即,将对应于变更前的标签地址的地址区域的数据复制到对应于变更后的标签地址的地址区域中。另一方面,在使用以往的高速缓存存储器的存储器系统中,为了进行同样的复制动作,例如,处理器1将复制源的数据预取出到高速缓存存储器中,接着,将预取出的复制源的数据从高速缓存存储器读出,使高速缓存存储器将复制目标的地址进行第1接触(仅变更标签41),接着,将读出的复制源的数据指定复制目标的地址而写入到高速缓存存储器中,接着,需要对高速缓存存储器指示回写。这样,通过使用L2高速缓存3,处理器1能够省略上述读出及写入动作。进而,在以往的复制方法中,在复制1 字节的数据的情况下,需要使用两个高速缓存条目40,相对于此,有关本发明的复制方法能够仅使用一个高速缓存条目40实现。由此,能够削减L2高速缓存3中的行替换处理的发生次数。这样,通过使用有关本发明的实施方式的L2高速缓存3,处理器1能够将存储器2的数据高速地复制到其他地址中。进而,在有关本发明的实施方式的存储器系统中,在步骤S401中将用于数据复制动作的路31a锁定。由此,在该数据复制动作中,能够防止将用于数据复制动作的路31a的数据通过通常的高速缓存动作或其他命令删除或更新。进而,在有关本发明的实施方式的存储器系统中,通过步骤S402中的指定了路 31a的预取出,将复制源的数据保存到L2高速缓存3中。由此,处理器1能够掌握保存复制源的数据的路31a,所以个指定该路31a而对L2高速缓存3指示第2接触命令。另外,也可以指定路31a而不进行预取出,而在对通常的预取出、或已经保存的数据进行路31的锁定(S401)之后进行步骤S404以后的处理。此外,在图12中,在进行路锁定解除(S406)之后进行回写(S407),但也可以指定路31a而进行回写。图17是表示有关本发明的实施方式的存储器系统的、数据复制动作的流程的变形例的流程图。如图17所示,在由L2高速缓存3进行的第2接触动作完成后(S405之后),接着, 处理器1对L2高速缓存3指示指定了路31a的回写动作(S411)。具体而言,处理器1在命令寄存器101中写入回写命令,在路指定寄存器105中写入“0,0,0,1”。由此,L2高速缓存 3在对应于由步骤S404更新后的标签B的地址范围71中写入数据A及数据B。具体而言,L2高速缓存3将包含在路31a中的、包含在脏标志43是“1”的高速缓存条目40中的行数据44写入到存储器2中。接着,处理器1将路31a的锁定解除(S412)。在这样的图17所示的处理中,也与图12所示的处理同样,能够将保存在地址范围 71中的数据A及数据B复制到地址范围72中。进而,由于仅指定路31a而进行回写,所以与对全部的路31进行回写的情况相比能够缩短处理时间。此外,在图12所示的步骤S407中,也可以指定路31a而进行回写。此外,在图12所示的步骤S407中,基于由处理器1写入的回写命令,L2高速缓存 3进行回写,但也可以不是基于来自处理器1的命令,而通过在通常的高速缓存动作时进行的回写、或在命令(预取出命令或第1 第3接触)执行时进行的回写,将高速缓存条目 40a及40b的数据写入到存储器2中。接着,在有关本发明的实施方式的存储器系统中,说明将存储器2的指定的地址范围的数据改写为“0”的动作(以下称作零写入动作)进行说明。在有关本发明的实施方式的存储器系统中,处理器1能够使用上述L2高速缓存3 的功能将存储器2的指定的地址范围的数据改写为“0”。图18是表示有关本发明的实施方式的存储器系统的零写入动作的流程的流程图。以下,说明将图13所示的地址范围71 (0x00000000 0x00000100)的256字节的
数据全部改写为“0”的例子。首先,处理器1对L2高速缓存3指示第3接触动作(S501)。具体而言,处理器1在命令寄存器101中写入第3接触命令,在开始地址寄存器102中写入开始地址 (0x00000000),在尺寸寄存器103中写入尺寸(0x100)。由此,L2高速缓存3在将对应于地址范围71的地址接触后将脏标志43更新,再将行数据44全部更新为“0”。另外,这里假设作为用于第3接触的路31而选择了路31a。图19是表示在步骤501中进行第3接触之后的路31a的状态的图。如图19所示, L2高速缓存3将高速缓存条目40a及40b的标签41都更新为作为地址范围71的标签地址 51的标签A (0x000000)。此外,L2高速缓存3将高速缓存条目40a及40b的脏标志43都设定为“1”,将行数据44都改写为全为“0”的数据。接着,处理器1等待由L2高速缓存3进行的第3接触动作完成650 。具体而言,处理器1通过确认保持在状态寄存器107中的执行状态127,判断第3接触动作是否已完成。在由L2高速缓存3进行的第3接触动作完成之后,接着,处理器1对L2高速缓存 3指示回写动作(S503)。具体而言,处理器1在命令寄存器101中写入回写命令。由此,L2 高速缓存3在对应于在步骤S501中更新后的标签A的地址范围71中写入全部为“0”的数据。具体而言,L2高速缓存3将包含在脏标志43是“1”的高速缓存条目40中的行数据44 写入到存储器2中。这里,在本发明的实施方式中,通过第3接触动作(S501),与标签41的更新同时,将脏标志43设定为“1”。由此,通过在第3接触动作(S501)之后进行回写,在对应于所设定的标签41的地址范围71中写入全为“0”的数据。图20是表示回写动作(S503)后的、保存在存储器2中的数据的图。如图20所示,
21通过图18所示的处理,将地址范围71的数据全部改写为“0”。通过以上,有关本发明的实施方式的L2高速缓存3通过第3接触将标签41、脏标志43、和行数据44同时更新。由此,通过在执行第3接触之后进行回写,将更新后的行数据 44写入到对应于更新后的标签41的地址范围71中。另一方面,在使用以往的高速缓存存储器的存储器系统中,为了进行同样的写入动作,例如需要处理器1使高速缓存存储器将写入目标的地址进行第1接触(仅变更标签 41),接着,将全为“0”的数据指定写入目标的地址而写入到高速缓存存储器中,接着,对高速缓存存储器指示回写。这样,通过使用L2高速缓存3,处理器1能够省略写入动作。由此,通过使用有关本发明的L2高速缓存3,处理器1能够将存储器2的数据高速地改写为全为“0”的数据。另外,在上述说明中,在第3接触动作时,L2高速缓存3将行数据44更新为全为 “0”的数据,但也可以将行数据44更新为全为“1”的数据。换言之,L2高速缓存3在第3 接触动作时,也可以将预先决定了行数据44的全部的位更新为相同的数据。进而,L2高速缓存3在第3接触动作时,也可以将行数据44更新为混合存在数据“0”及“1”的数据。此外,在步骤S501中,也可以指定路31而进行第3接触。进而,在步骤S503中, 也可以指定用于第3接触的路31而进行回写。进而,在指定路31而进行第3接触的情况下,也可以在将该路31锁定之后、使用锁定的路31进行第3接触(S501)。以上,对有关本发明的实施方式的高速缓存存储器进行了说明,但本发明并不限定于该实施方式。例如,在上述说明中,叙述了在L2高速缓存3中采用有关本发明的高速缓存存储器的例子,但也可以在Ll高速缓存4中采用有关本发明的高速缓存存储器。这里,在进行使用L2高速缓存3的上述复制动作、或进行上述写入动作的情况下, 将L2高速缓存3内的一部分的保存区域用于该复制动作、或该写入动作。由此,通常的高速缓存动作等的处理能力有可能暂时下降。这里,2级高速缓存与1级高速缓存相比,处理能力的下降给存储器系统整体带来的影响较小。具体而言,在Ll高速缓存4中采用有关本发明的高速缓存存储器的情况下,来自处理器1的Ll高速缓存4被妨碍命中时的访问。另一方面,通过在L2高速缓存3中采用本发明的高速缓存存储器,能够减轻上述命中时的访问的妨碍。即,通过将有关本发明的高速缓存存储器应用到2级高速缓存中,能够降低对存储器系统整体的不良影响。此外,在上述说明中,以具备L2高速缓存3及Ll高速缓存4的存储器系统为例进行了说明,但也可以在仅具备Ll高速缓存4的存储器系统中采用本发明。此外,也可以在具备3级高速缓存以上的存储器系统中采用本发明。在此情况下, 因为上述理由,优选的是在最大级的高速缓存中采用本发明的高速缓存存储器。此外,在上述说明中,地址寄存器100保持开始地址122和尺寸123,但也可以代替尺寸123而保持作为命令对象的地址范围的最后的地址的末尾地址。换言之,地址寄存器 100也可以代替尺寸寄存器103而具备被从处理器1指定末尾地址的末尾地址寄存器。此外,地址寄存器100也可以不保持地址范围、而保持指定的地址。这里,所谓指定的地址,既可以是存储器2上的地址,也可以是存储器2上的地址的一部分(例如,标签地址51和集合索引52,或者仅标签地址)。
此外,在上述说明中,叙述了作为决定行的替换目标的算法而使用LRU方式的例子,但也可以使用循环方式及随机方式等其他算法。此外,在上述说明中,作为将路31锁定的功能,处理器1将保持在路锁定寄存器 104中的锁定状态IM改写,但也可以设置路锁定命令。即,也可以是,在处理器1在命令寄存器101中写入了路锁定命令的情况下,禁止部114将锁定状态IM更新。另外,在使用路锁定命令的情况下,禁止部114也可以将预先设定的路31锁定,也可以在锁定命令中包含指定路31的信息。此外,在上述说明中,在预取出动作及第1 第3接触动作中,L2高速缓存3在包含在保持于路指定寄存器105中的指定状态125中的4位中的某1个以上是“1”的情况下指定路31,进行预取出动作、第1 第3接触动作及回写动作,但也可以将通常的预取出命令、通常的第1 第3接触命令、及通常的回写命令、与路指定的预取出命令、路指定的第 1 第3接触命令、及路指定的回写命令单独地设计。具体而言,L2高速缓存3只要仅在命令寄存器101中写入了路指定的命令的情况下使用由指定状态125表示的指定的路31进行处理、在命令寄存器101中写入有通常的命令的情况下与指定状态125无关地选择用于处理的路31就可以。 此外,在上述说明中,通过指定状态125以路31为单位进行指定,但也可以由包含在路中的1个以上的高速缓存条目40为单位进行指定。即,在上述复制动作时,也可以指定保存有复制源的数据的条目而进行第2接触。此外,在上述说明中,通过锁定状态124以路31为单位进行锁定,但也可以以包含在路中的1个以上的高速缓存条目40为单位进行锁定。此外,在上述说明中,L2高速缓存3具备保持锁定状态124的路锁定寄存器104, 但也可以是,多个高速缓存条目40分别包括与有效标志42及脏标志43同样的锁定标志, 控制部38通过确认该锁定标志而判断该条目是否被锁定。此外,在上述说明中,设为被锁定的路31在通常的高速缓存动作、及通常的命令动作时不被使用,但也可以在不发生替代的情况下将锁定的路31在动作中使用。具体而言,也可以用在通常的高速缓存动作中的读命中时的动作等中。此外,上述说明以L2高速缓存3是4路集合关联方式的高速缓存存储器的情况为例进行了说明,但路31的数量也可以是4个以外。进而,也可以在全关联方式的高速缓存存储器中采用本发明。即,也可以是多个路 31分别仅包括1个高速缓存条目40。在此情况下,仅通过指定路31,能够唯一地选择包含在L2高速缓存3中的希望的高速缓存条目40。由此,没有上述的、数据复制动作中的复制目标的地址范围72的限制(使集合索引52相同的限制),能够将数据高速地复制到希望的地址范围中。产业上的可利用性本发明能够在高速缓存存储器及具备高速缓存存储器的存储器系统中采用。符号说明1处理器2存储器3L2高速缓存
4L1高速缓存20地址寄存器21 存储器 I/F30解码器31、31a、31b、31c、31d 路32a、32b、32c、32d 比较器33a、33b、33c、33d 与电路34或电路35、36 选择器37多路信号分离器38控制部39命令处理部40、40a、40b高速缓存条目41 标签42有效标志43脏标志44行数据51标签地址52集合索引53字索引61转移命令62源操作数63目标操作数64命令内容71、71a、71b、72、72a、72b 地址范围100地址寄存器101命令寄存器102开始地址寄存器103尺寸寄存器104路锁定寄存器105路指定寄存器106命令执行部107状态寄存器111预取出部11加第1接触部11 第2接触部112c第3接触部113回写部114禁止部
121命令
122开始地址
1 尺寸
1 锁定状态
125指定状态
127执行状态
权利要求
1.一种高速缓存存储器,具有多个分别包括标签地址、行数据、和脏标志在内的条目, 其特征在于,具备命令执行部,在由处理器指示了第1命令的情况下,将在上述多个条目中的、由上述处理器指定的1个以上的条目中包含的上述标签地址改写为对应于由上述处理器指定的地址的标签地址,并且设置对应于该条目的上述脏标志;以及回写部,将包含在设置了上述脏标志的条目中的上述行数据回写到主存储器。
2.如权利要求1所述的高速缓存存储器,其特征在于,上述高速缓存存储器还具备禁止部,该禁止部禁止上述多个条目中的、由上述处理器指定的1个以上的条目中包含的行数据的替代;在由上述处理器指示了第1命令的情况下,上述命令执行部将由上述禁止部禁止了行数据的替代的条目中包含的上述标签地址改写为对应于由上述处理器指定的上述地址的标签地址,并且设置对应于该条目的上述脏标志。
3.如权利要求1或2所述的高速缓存存储器,其特征在于,在由上述处理器指示了第2命令的情况下,上述命令执行部还从上述主存储器读出由上述处理器指定的地址的数据,将上述多个条目中的、由上述处理器指定的1个以上的条目中包含的上述标签地址改写为对应于上述地址的标签地址,并且将包含在该条目中的上述行数据改写为读出的上述数据;在由上述处理器指示了第1命令的情况下,上述命令执行部将由上述禁止部禁止了行数据的替代的条目中包含的上述标签地址改写为对应于由上述处理器指定的上述地址的标签地址,并且设置对应于该条目的上述脏标志。
4.如权利要求1 3中任一项所述的高速缓存存储器,其特征在于,在由上述处理器指示了第3命令的情况下,上述回写部将上述多个条目中的、由上述处理器指定的条目中包含的上述行数据回写到上述主存储器。
5.如权利要求1所述的高速缓存存储器,其特征在于,上述高速缓存存储器具有包括1个以上的上述条目的多个路;在由上述处理器指示了上述第1命令的情况下,上述命令执行部选择上述多个路中的、包含在由上述处理器指定的1个以上的路中的条目,将包含在所选择的条目中的上述标签地址改写为对应于由上述处理器指定的上述地址的标签地址,并且设置对应于该条目的上述脏标志。
6.一种高速缓存存储器,具有多个分别包括标签地址、行数据、和脏标志在内的条目, 其特征在于,具备命令执行部,在由处理器指示了第4命令的情况下,将在上述多个条目中的某个条目中包含的上述标签地址改写为对应于由上述处理器指定的地址的标签地址,设置包含在该条目中的上述脏标志,将包含在该条目中的上述行数据变更为预先设定的数据;以及回写部,将包含在设置了上述脏标志的条目中的上述行数据回写到主存储器。
7.如权利要求6所述的高速缓存存储器,其特征在于,上述预先设定的数据是全部位都相同的数据。
8.一种存储器系统,具备处理器、1级高速缓存存储器、2级高速缓存存储器、和存储器,其特征在于,上述2级高速缓存存储器是权利要求1 7中任一项所述的高速缓存存储器。
9.一种数据复制方法,将保存在主存储器的第1地址中的第1数据复制到该主存储器的第2地址中,其特征在于,包括保存步骤,将对应于上述第1地址的标签地址及上述第1数据保存到高速缓存存储器中;更新步骤,将保存在上述高速缓存存储器中的对应于上述第1地址的上述标签地址改写为对应于上述第2地址的标签地址,并且设置对应于该第1数据的脏标志;以及回写步骤,将该第1数据从上述高速缓存存储器回写到上述主存储器。
10.如权利要求9所述的数据复制方法,其特征在于,上述数据复制方法还包括禁止步骤,该禁止步骤禁止在从上述保存步骤之后到上述更新步骤完成为止的期间中替代保存在上述高速缓存存储器中的上述第1数据。
11.如权利要求9或10所述的数据复制方法,其特征在于, 上述保存步骤包括指定上述高速缓存存储器具有的多个条目中的第1条目的步骤;以及在指定的上述第1条目中保存对应于上述第1地址的标签地址及上述第1数据的步骤;上述更新步骤包括 指定上述第1条目的步骤;以及将对应于包含在指定的上述第1条目中的上述第1地址的上述标签地址改写为对应于上述第2地址的标签地址,并且设置对应于该第1数据的脏标志的步骤。
12.如权利要求9或10所述的数据复制方法,其特征在于, 上述保存步骤包括指定上述高速缓存存储器具有的多个条目中的第1条目的步骤;以及在指定的上述第1条目中保存对应于上述第1地址的标签地址及上述第1数据的步骤;上述回写步骤包括 指定上述第1条目的步骤;以及将包含在指定的上述条目中的上述第1数据从上述高速缓存存储器回写到上述主存储器中的步骤。
13.如权利要求9 12中任一项所述的数据复制方法,其特征在于, 上述高速缓存存储器具有多个分别包括多个条目在内的路;上述第1地址及上述第2地址分别包括指定上述路内的条目的集合索引; 上述第1地址和上述第2地址具有相同的上述集合索引; 上述更新步骤包括指定包括保存上述第1数据的条目在内的路的步骤;选择包含在指定的上述路中的多个条目中的、由包含在上述第2地址中的上述集合索引指定的条目的步骤;以及将对应于包含在选择的上述条目中的上述第1地址的上述标签地址改写为对应于上述第2地址的标签地址,并且设置对应于该第1数据的脏标志的步骤。
14. 一种数据改写方法,将保存在主存储器的第1地址中的数据改写为预先设定的第1 数据,其特征在于,包括更新步骤,将在高速缓存存储器具有的多个条目中的某个条目中包含的标签地址改写为对应于上述第1地址的标签地址,设置包含在该条目中的上述脏标志,将包含在该条目中的行数据变更为上述第1数据;以及回写步骤,将上述第1数据从上述高速缓存存储器回写到上述主存储器。
全文摘要
有关本发明的L2高速缓存(3)具备预取出部(111),在被处理器(1)指定了第2接触命令的情况下,将多个高速缓存条目(40)中的、由处理器(1)指定的高速缓存条目(40)中包含的标签(41)改写为对应于由处理器(1)指定的地址的标签地址,设置脏标志(43);回写部(113),将包含在设置了脏标志(43)的高速缓存条目(40)中的行数据(44)回写到存储器(2)。
文档编号G06F12/08GK102160040SQ200980136468
公开日2011年8月17日 申请日期2009年9月15日 优先权日2008年9月17日
发明者礒野贵亘 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1