CN101652760B - 共享缓存控制装置、共享缓存控制方法及集成电路 - Google Patents
共享缓存控制装置、共享缓存控制方法及集成电路 Download PDFInfo
- Publication number
- CN101652760B CN101652760B CN200880006920.7A CN200880006920A CN101652760B CN 101652760 B CN101652760 B CN 101652760B CN 200880006920 A CN200880006920 A CN 200880006920A CN 101652760 B CN101652760 B CN 101652760B
- Authority
- CN
- China
- Prior art keywords
- cache entries
- data
- constantly
- processor
- executing state
- 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
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3246—Power saving characterised by the action undertaken by software initiated power-off
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
本发明提供一种共享缓存控制装置、共享缓存控制方法以及集成电路。监视部(139)监视用于控制让多个操作系统运行的处理器或向多个处理器供给的电力的电力控制命令;缓存条目设定部(141),当从构成缓存存储装置(111)的多个缓存条目之中选择成为置换对象的缓存条目时,利用基于电力控制命令而被变更的多个操作系统或多个处理器的执行状态,将执行了电力控制命令的操作系统或处理器利用过的缓存条目设定为已被使用过的状态;置换对象选择部(136),将设定为已被使用过的状态的缓存条目,作为成为置换对象的缓存条目而选择。据此,多个操作系统或多个处理器能够有效利用一个缓存存储装置。
Description
技术领域
本发明涉及用于有效利用多个操作系统或多个处理器共享的缓存存储装置的缓存条目的共享缓存控制装置、共享缓存控制方法及集成电路。
背景技术
作为近年来的系统LSI的技术潮流,盛行搭载了多个处理器核心的多核结构。特别是,在面向嵌入的系统LSI中,从成本和耗电等观点来看,与安装一个超高速处理器核心相比,搭载多个中等规模程度以下的处理器核心有时更为有利。这种面向嵌入的系统LSI中,近年来,逐渐采用分层缓存存储装置。但是,保持搭载于各个处理器核心的缓存存储装置间的数据一致性(coherency)的技术非常复杂。因此,在面向嵌入的系统LSI中,即使对每个处理器安装一级缓存存储装置时,也多在多个处理器之间共享二级缓存存储装置。
特别是,移动电话和移动终端等为代表的移动式嵌入计算机系统的高性能化显著,如前所述,面向嵌入的系统LSI中,搭载了多个处理器核心的多核体系结构(multi-corearchitecture)、用高性能处理器使多个操作系统运行的虚拟计算机环境也正完备。
另外,随着处理器核心自身的高性能化,很多在一个处理器上使多个操作系统运行的虚拟计算机系统也正被利用。在虚拟计算机系统中,不用导入上述的分层缓存存储装置,一个缓存存储装置被由多个操作系统共享。
如此,在共享缓存存储装置的计算机系统中,各个操作系统、或搭载于各个处理器的操作系统的数据,有可能从缓存存储装置驱逐其他操作系统、或搭载于其他处理器的操作系统的数据。
作为解决这个课题的方法,例如有,日本专利公开公报特开2004-178571号(以下称作“专利文献1”)所公开的将缓存存储装置分割为任意尺寸的区域,并分配给各个操作系统的方法。据此,各个操作系统(程序)不会从缓存存储装置驱逐其他操作系统的数据,多个操作系统能够有效利用一个缓存存储装置。
但是,上述现有技术中,需要预先对各个操作系统分配可利用的缓存存储装置的区域。因此,存在以下课题:即使某一个操作系统转移至休眠状态等时,其他操作系统也无法有 效利用该操作系统所利用的缓存存储装置内的区域。也就是,根据低耗电模式、休眠模式等的操作系统的执行状态,有时分配的区域没有被利用,造成浪费。
发明内容
为了解决上述问题,本发明的目的在于提供一种多个操作系统或多个处理器能够有效利用一个缓存存储装置的共享缓存控制装置、共享缓存控制方法及集成电路。
本发明所涉及的共享缓存控制装置包括:主存储部;缓存存储装置,被多个操作系统或多个处理器共享,且具备存储从上述主存储部读取的数据的多个缓存条目;监视部,监视用于控制让上述多个操作系统运行的处理器或向上述多个处理器供给的电力的电力控制命令;缓存条目设定部,当从上述多个缓存条目之中选择成为置换对象的缓存条目时,利用基于上述电力控制命令而被变更的上述多个操作系统或上述多个处理器的执行状态,将执行了上述电力控制命令的上述操作系统或上述处理器所利用的缓存条目设定为已被使用过的状态;以及置换对象选择部,将由上述缓存条目设定部设定为已被使用过的状态的上述缓存条目,作为成为置换对象的缓存条目而选择。
本发明所涉及的共享缓存控制方法包括以下步骤:缓存存储步骤,将数据存储在被多个操作系统或多个处理器共享,且具备存储从主存储部读取的数据的由多个缓存条目构成的缓存存储装置中;监视步骤,监视用于控制让上述多个操作系统运行的处理器或向上述多个处理器供给的电力的电力控制命令;缓存条目设定步骤,当从上述多个缓存条目之中选择成为置换对象的缓存条目时,利用基于上述电力控制命令而被变更的上述多个操作系统或上述多个处理器的上述执行状态,将执行了上述电力控制命令的上述操作系统或上述处理器所利用的缓存条目设定为已被使用过的状态;以及置换对象选择步骤,将在上述缓存条目设定步骤中设定为已被使用过的状态的上述缓存条目,作为成为置换对象的缓存条目而选择。
本发明所涉及的集成电路包括:缓存存储装置,被多个操作系统或多个处理器共享,且具备存储从主存储装置读取的数据的多个缓存条目;监视电路,监视用于控制让上述多个操作系统运行的处理器或向上述多个处理器供给的电力的电力控制命令;缓存条目设定电路,当从上述多个缓存条目之中选择成为置换对象的缓存条目时,利用基于上述电力控制命令而被变更的上述多个操作系统或上述多个处理器的执行状态,将执行了上述电力控制命令的上述操作系统或上述处理器所利用的缓存条目设定为已被使用过的状态;以及置换对象选择电路,将由上述缓存条目设定电路设定为已被使用过的状态的上述缓存条目, 作为成为置换对象的缓存条目而选择。
根据这些结构,缓存存储装置被多个操作系统或多个处理器共享,且具备存储从主存储部读取的数据的多个缓存条目。用于控制让多个操作系统运行的处理器或向多个处理器供给的电力的电力控制命令被监视。而且,当从多个缓存条目之中选择成为置换对象的缓存条目时,利用基于电力控制命令而被变更的多个操作系统或多个处理器的执行状态,执行了电力控制命令的操作系统或处理器所利用的缓存条目被设定为已被使用过的状态。然后,被设定为已被使用过的状态的缓存条目,作为成为置换对象的缓存条目而被选择。
根据本发明,在多个操作系统或多个处理器共享缓存存储装置的情况下,其他操作系统或其他处理器能够优先利用因执行状态发生变化而一个操作系统或一个处理器没有利用的缓存存储装置内的缓存条目,多个操作系统或多个处理器能够有效利用一个缓存存储装置。
通过以下的详细说明和附图,本发明的目的、特征和优点更加明确。
附图说明
图1是表示本发明的实施例1中的计算机系统的结构的图。
图2是用于对4路集合关联(4-way set associative)方式的缓存存储装置进行说明的图。
图3是表示有关本发明实施例1中的缓存条目选择处理的缓存存储装置的详细结构的图。
图4是表示有关本发明实施例1中的缓存条目置换处理的缓存存储装置的详细结构的图。
图5是表示本发明实施例1中的参照时刻数据可取的值的图。
图6是表示本发明实施例2中的计算机系统的结构的图。
图7是表示有关本发明实施例2中的缓存条目选择处理的二级缓存存储装置的详细结构的图。
图8是表示有关本发明实施例2中的缓存条目置换处理的二级缓存存储装置的详细结构的图。
图9是表示本发明实施例3中的计算机系统的结构的图。
图10是用于说明图9所示的锁定控制部的操作的流程图。
图11是表示本发明实施例4中的计算机系统的结构的图。
图12是表示有关本发明实施例4中的缓存条目置换处理的缓存存储装置的详细结构的图。
图13是表示本发明实施例4中的参照时刻数据的参照计数器位可取的值的图。
图14是表示本发明实施例5中的计算机系统的结构的图。
图15是表示有关本发明实施例5中的缓存条目置换处理的二级缓存存储装置的详细结构的图。
图16是表示本发明实施例6中的计算机系统的结构的图。
具体实施方式
以下,参照附图对本发明的实施方式进行说明。此外,以下的实施方式是将本发明具体化的一例,其不是限定本发明的技术范围的实施方式。
(实施例1)
图1是表示本发明实施例1中的计算机系统的结构的图。计算机系统100是在一个处理器上使多个操作系统运行的虚拟计算机系统。计算机系统100包括:内部总线110、缓存存储装置111、处理器112、存储器113、周边模块群114以及状态寄存器(statusregister)115。
缓存存储装置111、存储器113、周边模块群114以及状态寄存器115分别与内部总线110连接。通过近年来的LSI的高集成化,也可以将构成计算机系统100的多个电路搭载于一个系统LSI内,但在本实施例1中,不限定电路群必须安装在同一系统LSI内,电路群也可以用不同的系统LSI来提供。此外,在图1中,虽然状态寄存器115与内部总线110连接,但也可以与处理器112直接连接。
处理器112读取并执行存储在存储器113中的程序(命令代码)。另外,处理器112在执行程序时,参照存储器113上的数据、来自周边模块群114的输入输出数据而运行。另外,处理器112利用状态寄存器115保持的运行中的状态参数的值进行控制。
存储器113包括第1至第n任务(task)124至129、第1至第3操作系统121、122、123、以及管理程序(hypervisor)120。
第1至第n任务124至129是分别在计算机系统100上运行的包括单一或多个命令代码的执行单位,例如,由处理器112执行的应用程序(application program)。
第1至第3操作系统121、122、123是控制在计算机系统100上运行的软件整体的操作系统,在此,存储器113包括三个操作系统121、122、123。
管理程序(hypervisor)120是在处理器112上运行,用于对第1至第3操作系统121、122、123分别提供犹如各个操作系统正在运行的环境、即、虚拟计算机环境的仿真单元。也就是说,不是在一个处理器上存在一个操作系统,一个操作系统管理该处理器的多个硬件资源,而是可以通过管理程序120,对多个硬件资源进行分割并分配给各个操作系统。此外,就分配方法,根据硬件资源的种类,可以是固定分配方法、或以分时(time sharing)进行分配的方法等。
作为本实施例1的计算机系统的一例,在图1中,编译(compile)为第1及第2任务124、125在第1操作系统121上运行,第3及第4任务126、127在第2操作系统122上运行,第5至第n任务128、129在第3操作系统123上运行。据此,第1操作系统121管理第1及第2任务124、125的执行状态,第2操作系统122管理第3及第4任务126、127的执行状态,第3操作系统123管理第5至第n任务128、129的执行状态。
此外,在此,虽然第1操作系统121、第2操作系统122和第3操作系统123采用不同的操作系统,但也可以是相同的操作系统。此外,任务数、操作系统数、以及任务与操作系统的关系可以与图1所示的例子不一致。例如,变更运行的操作系统的数目也无妨。
缓存存储装置111是集合关联方式的缓存存储装置,包括被分割为多个路(way)的缓存存储数据存储器。在图1中,虽然存在被分割为4路的缓存存储数据存储器130至133,但也可以搭载不满4路或超过4路。在集合关联方式的缓存存储装置中,对于一个地址存在数量相当于路数的可选择的缓存条目(cache entry)。
缓存存储数据存储器130至133,分别包括存储从存储器113读取的数据的多个缓存条目。
图2是用于对4路集合关联方式的缓存存储装置进行说明的图。表示存储器113上的数据的位置的地址信号200包括上位地址标签(upper address tag)201和索引编号202,根据地址信号200,存储器113上的数据被分为标签个数份的组。另外,该存储器113上的一组数据被存储到缓存存储装置的1个路内。也就是说,在此,由于存在4个路,所以4组数据被同时存储到缓存存储装置中。
后面将用图3及图4进行描述,通常,当路数较多时,会存在多个并列运行的比较器,不利于削减耗电。另一方面,当路数较少时,在一个地址上能保存的数据的位置(position)变少,会发生被称作抖动(thrashing)(存储在多个地址中的数据互相从缓存条目驱逐对方)的现象,导致性能劣化。
而且,发生缓存未命中(cache miss),将某个地址的数据存储到缓存存储装置上时, 需要选择任意一个缓存条目并置换数据。作为最能降低缓存未命中的置换算法,有LRU(Least Recently Used)算法,该算法假设最近访问的数据被再利用的概率高,最长时间未访问的数据被再利用的概率低。在本实施例1中,缓存存储装置111以LRU算法进行缓存条目的置换。另外,在各个缓存条目内,搭载表示是否任意操作系统正在使用该缓存条目的操作系统标识符。此外,就操作系统标识符,在图3中进行说明。
缓存存储装置111包括上述的缓存存储数据存储器130至133、置换对象选择部136、访问对象选择部(access object selecting section)137、缓冲器(buffer)138、监视部139、输入输出部140、以及缓存条目设定部(cache entry setting section)141。
输入输出部140,进行输入来自处理器112的数据读取命令或数据写入命令等、对存储器113或周边模块群114上的数据的访问命令,以及向处理器112、存储器113、周边模块群114输出针对访问命令的数据。
监视部139,通过检查状态寄存器115,监视在处理器112上执行的电力控制命令,并将执行该电力控制命令的操作系统的状态变化通知给参照时刻计算部134。监视部139监视用于控制供给到使多个操作系统运行的处理器112的电力的电力控制命令。电力控制命令包括:指示操作系统的运行停止的休眠命令;降低供给到处理器112的电力的电源控制命令;以及降低供给到处理器112的时钟(clock)的时钟控制命令。在本实施例1中,电力控制命令至少包括休眠命令。
此外,第1至第3操作系统121、122、123分别根据在各个操作系统上运行的任务数和任务的状态等而转移至休眠模式时,发出电力控制命令,处理器112执行发出的电力控制命令。而且,处理器112在受到中断等的发生而处理负载变化时,执行从休眠模式返回到通常运行模式的处理。
缓存条目设定部141,在发生缓存未命中,从多个缓存条目之中选择成为置换对象的缓存条目时,利用基于电力控制命令而被变更的多个操作系统的执行状态,将执行了电力控制命令的操作系统所利用的缓存条目设定为已被使用过的状态。在本实施例1中,执行状态至少包括:让操作系统以高速时钟运行的通常运行模式;以及让操作系统的运行停止的休眠模式。缓存条目设定部141,将休眠模式的操作系统所利用的缓存条目的已被使用过的状态设定为比通常运行模式的操作系统所利用的缓存条目的已被使用过的状态更早。
缓存条目设定部141包括:参照时刻计算部134和OS执行状态存储部135。
参照时刻计算部134接收来自监视部139的通知,利用OS执行状态存储部135管理执行电力控制命令的操作系统的运行模式。OS执行状态存储部135,以表格形式保持识 别操作系统的操作系统标识符、以及各操作系统的执行状态(通常运行模式或休眠模式)。
此外,在此,虽然OS执行状态存储部135以表格形式保持操作系统的运行模式,但也可以以其他格式存储操作系统的运行模式。
而且,参照时刻计算部134对于来自置换对象选择部136的查询,计算成为置换对象的候补的多个缓存条目的参照时刻数据,并将计算出的参照时刻数据通知给置换对象选择部136。参照时刻数据是为了选择成为置换对象的缓存条目而利用的数据。此外,关于参照时刻数据的详细内容将在后面叙述。
参照时刻计算部134利用OS执行状态存储部135、设置于各个缓存条目的操作系统标识符、以及后述的参照时刻计数器,将休眠模式的操作系统所利用的缓存条目的参照时刻数据作为最早被使用过的值而输出。此外,缓存存储装置111在不存在休眠模式的操作系统时,以通常的LRU算法进行操作。
置换对象选择部136将由缓存条目设定部141设定为已被使用过的状态的缓存条目,作为成为置换对象的缓存条目而选择。置换对象选择部136因缓存未命中等,从存储器113读取新的数据并存储到缓存存储装置111中时,决定已在缓存存储装置111上存储的数据之中驱逐哪个数据,并将决定的数据置换为新的数据。也就是说,置换对象选择部136从访问对象选择部137通知缓存未命中的发生时,向参照时刻计算部134查询成为置换对象的候补的多个缓存条目。之后,置换对象选择部136按照从参照时刻计算部134输出的计算结果,从多个缓存条目中选择置换对象的缓存条目,并将新的数据存储到选择的缓存条目中。
另外,当存在因置换缓存条目而被驱逐的数据时,需要进行将被驱逐的数据回写至存储器113的处理。此时,置换对象选择部136将与成为置换对象的缓存条目同路的数据写入缓冲器138,将置换前的数据回写至存储器113。
根据以上结构,通过将以休眠模式执行的操作系统所利用的缓存存储装置111上的数据视为最早被使用过的数据,能够与通常运行模式的操作系统的新的数据置换。其结果,能够控制为,通常运行模式的操作系统的数据优先留在缓存存储装置111内。据此,通过操作系统转移至休眠模式,利用的频度减少的缓存条目能够由其他操作系统有效利用,能够提高作为系统整体的性能。
而且,本实施例1并没有采用将转移至休眠模式的操作系统所利用的数据一律从缓存条目无效化从而可让其他操作系统利用的方法。因此,当转移至休眠模式的操作系统再次回到通常运行模式时,如果需要的数据还被保持在缓存上,就能够有效利用已被使用过的 缓存条目。
此外,在本实施例1中,计算机系统100相当于共享缓存控制装置的一例,存储器113相当于主存储部的一例,缓存存储装置111相当于缓存存储装置的一例,监视部139相当于监视部的一例,缓存条目设定部141相当于缓存条目设定部的一例,置换对象选择部136相当于置换对象选择部的一例,OS执行状态存储部135相当于执行状态存储部的一例,参照时刻计算部134相当于参照时刻数据生成部的一例。
图3是表示当根据从处理器112输出的存储器访问命令等,处理器112对缓存存储装置111内进行访问时的、有关缓存条目选择处理的缓存存储装置111的详细结构的图。在图3中,缓存存储数据存储器130至133表示与图1同样的硬件部件。
此外,表示访问对象的数据的地址信号200中,如前所述,包括表示缓存存储数据存储器130至133内的偏置(offset)的索引编号202、以及索引编号202以外的上位地址标签201。在各个缓存存储数据存储器130至133中,由索引编号202指定的处于偏置的缓存条目是可成为访问对象的缓存条目。从这些由索引编号202指定的处于偏置的4个缓存条目之中,进行缓存命中(cache hit)的检测。
另外,在本实施例1中,为了附图记载方便,仅记载了4路缓存存储数据存储器130至133,但本发明并不特别限定于此,缓存存储装置111能够搭载不满4路或超过4路的缓存存储数据存储器,可成为置换对象的缓存条目随着路数进行增减。
另外,各个缓存存储数据存储器内的各缓存条目,至少包括含有上位地址标签210、脏位(dirty bit)211、有效位(significant bit)212、操作系统标识符213、参照时刻计数器(参照时刻计数值)214以及缓存数据215的字段(field)。
上位地址标签210是有关存储在该缓存条目中的数据的地址,存储除了索引编号以外的上位地址的字段。脏位211是表示是否在缓存存储装置111上重写过的字段。当脏位211为ON时,表示最终必须将缓存数据215回写至存储器113上,当脏位211为OFF时,则表示不必将缓存数据215回写至存储器113上。
有效位212是表示该缓存条目是否有效的字段。操作系统标识符213是表示是否任一操作系统正在利用该缓存条目的字段。各个操作系统访问缓存条目时,用于识别该操作系统的编号被存储到该字段中。
参照时刻计数器214是表示该缓存条目的数据在过去多久之前被参照过的字段。例如,当缓存存储装置111构成4路缓存存储数据存储器时,设置2位的参照时刻计数器,每当发生访问时,参照时刻计数器214的值被设定为“0”。使得4路缓存存储数据存储器之 中、未被选择的缓存条目的参照时刻计数器214的值在至“3”的范围内以连续的值增加。据此,参照时刻计数器214的值从过去最早访问的缓存条目开始,以“3”、“2”、“1”和“0”的顺序排列。在利用LRU算法的缓存存储装置中,参照时刻计数器214的值最大的缓存条目成为最终的置换对象。缓存数据215是用于临时存储从存储器113读取的数据的字段。
如此,缓存条目包括:操作系统标识符213,用于识别使用该缓存条目的操作系统;参照时刻计数器(参照时刻计数值)214,根据该缓存条目被参照的时刻被进行计数,且被参照的时刻越早其值越大;以及缓存数据215。
以下,利用图3对选择成为访问对象的缓存条目的缓存条目选择处理的详细内容进行说明。
首先,基于存储器访问命令等,对缓存存储装置111内的数据进行访问时,访问对象选择部137从处理器112经由输入输出部140接收地址信号200,并开始缓存条目选择处理。
访问对象选择部137利用地址信号200内包含的索引编号202,选择缓存存储数据存储器130至133内的4个缓存条目。在此,设被选择的是缓存条目216a至216d。
接下来,比较器400a至400d分别比较地址信号200内的上位地址标签201与缓存条目216a至216d内的上位地址标签210。
当地址信号200内的上位地址标签201与上位地址标签210一致,且存在有效位212为ON的缓存条目时,其缓存条目内就会存在所希望的数据。在图3中,逻辑“与”运算符(AND operator)401a至401d,通过计算来自比较器400a至400d的输出与缓存条目216a至216d内的有效位212的逻辑“与”,来检测缓存命中。
此外,缓存命中是指根据存储器访问命令读取的数据在缓存存储装置111内存在。访问对象选择部137,当地址信号200内的上位地址标签201与上位地址标签210一致,且有效位212为ON时,检测缓存命中。逻辑“与”运算符401a至401d将表示是否缓存命中的控制信号输出到缓冲器402a至402d。
逻辑“与”运算符401a至401d分别控制缓冲器402a至402d的输出。缓冲器402a至402d中,分别输入缓存条目216a至216d内的缓存数据215。缓冲器402a至402d,当来自逻辑“与”运算符401a至401d的控制信号表示缓存命中时,输出与缓存数据215相同的值。另一方面,当控制信号表示不是缓存命中时,缓冲器402a至402d成为高阻抗(高电阻)状态。缓存条目216a至216d之中,实际上缓存命中的条目至多一个。因此, 输入输出部140通过直接输入缓冲器402a至402d的输出信号,能够得到输出数据412。
此外,由于附图的关系而没有记载,访问对象选择部137在缓存条目216a至216d之中、将缓存命中的缓存条目的参照时刻计数器214设定为“0”,将缓存未命中的缓存条目的参照时刻计数器214,按参照时刻计数器214的值从小到大的顺序,再次设定“1”、“2”和“3”的值。据此,如前所述,形成参照时刻计数器214的值从过去最早访问的缓存条目开始按“3”、“2”、“1”和“0”的顺序排列的状态。
另外,访问对象选择部137,通过利用将来自逻辑“与”运算符401a至401d的全部输出作为输入的逻辑“或非”运算符(NOR operator)411,能够检测出缓存条目216a至216d之中、任何一个条目都没有缓存命中。逻辑“或非”运算符411利用来自逻辑“与”运算符401a至401d的输出,计算缓存未命中信号410。当发生了缓存未命中时,访问对象选择部137将缓存未命中信号410通知给置换对象选择部136,置换对象选择部136进行缓存条目置换处理。
图4是表示图3所示的缓存条目选择处理的结果、发生了缓存未命中时的、有关缓存条目置换处理的缓存存储装置111的详细结构的图。在图4中,缓存存储数据存储器130至133表示与图1同样的硬件部件。另外,参照时刻计算部134a至134d相当于图1中说明的参照时刻计算部134。
以下,利用图4对将缓存条目内的数据置换为新的数据的缓存条目置换处理的详细内容进行说明。
首先,当根据缓存未命中等,需要从存储器113读取新的数据,并存储在缓存存储装置111中时,置换对象选择部136从访问对象选择部137接收缓存未命中信号410,开始缓存条目置换处理。
置换对象选择部136利用地址信号200内包含的索引编号202,选择缓存存储数据存储器130至133内的4个缓存条目。在此,设被选择的是缓存条目216a至216d。
作为从这4个缓存条目216a至216d之中选择一个缓存条目作为置换对象的方法,在利用通常的LRU算法的情况下,比较缓存条目216a至216d内的参照时刻计数器214,选择过去最早参照的缓存条目、即参照时刻计数器214的值最大的缓存条目。但是,利用LRU算法的方法,不管是通常运行模式的操作系统的数据,还是最近转移至休眠模式的操作系统的数据都同等对待。
另一方面,在本实施例1的缓存存储装置111中,监视部139监视在处理器112上执行的电力控制命令,将执行该电力控制命令的操作系统的状态变化通知给参照时刻计算 部134,参照时刻计算部134管理各操作系统的执行状态。据此,能够将转移至休眠模式的操作系统所利用的缓存条目设定为最早被使用过的状态,其他操作系统能够有效利用转移至休眠模式的操作系统所利用的缓存条目。
第1至第3操作系统121、122、123分别根据在各个操作系统上运行的任务数和任务的状态等而转移至休眠模式时,发出电力控制命令。另外,第1至第3操作系统121、122、123分别受到中断等的发生而处理负载变化时,从休眠模式返回到通常运行模式。
参照时刻计算部134a至134d利用OS执行状态存储部135a至135d,管理各个操作系统的运行模式。此外,在本实施例1中,虽然采用了在各个缓存条目设定部141a至141d内搭载参照时刻计算部134a至134d以及OS执行状态存储部135a至135d的结构,但也可以在缓存条目设定部141a至141d之间共享一个参照时刻计算部134以及一个OS执行状态存储部135。据此,能够更有效率地保障数据的一致性。
在图4中,仅对OS执行状态存储部135a示出表格内的详细内容。图4的OS执行状态存储部135a存储的表格中存在三个操作系统。三个操作系统的各自的操作系统标识符是“0”、“1”和“2”。假设操作系统标识符“0”的执行状态为通常运行模式,假设操作系统标识符“1”的执行状态为休眠模式,假设操作系统标识符“2”的执行状态为通常运行模式。
此外,在图4中,通常运行模式的操作系统的执行状态表示为“RUN”,休眠模式的操作系统的执行状态表示为“SLEEP”。
OS执行状态存储部135a至135d,如果为通常运行模式则保持“0”来作为与操作系统的执行状态相对应的执行状态值(Val),如果为休眠模式则保持“1”来作为与操作系统的执行状态相对应的执行状态值(Val)。
接下来,参照时刻计算部134a至134d利用被选择的缓存条目216a至216d内的参照时刻计数器214、被选择的缓存条目216a至216d内的有效位212、以及与OS执行状态存储部135a至135d内的与操作系统的执行状态相对应的执行状态值(Val),生成与各缓存条目216a至216d相对应的参照时刻数据。
与缓存条目216a相对应的参照时刻数据221a包括:通过逻辑“非”运算符(NOToperator)220a使有效位212取反的无效位222a;利用了与存储在OS执行状态存储部135a中的操作系统的执行状态相对应的执行状态值(Val)的状态位223a;以及,直接利用了参照时刻计数器214的值的参照计数器位224a。同样地,与缓存条目216b至216d相对应的参照时刻数据221b至221d包括:通过逻辑“非”运算符220b至220d使各自 的缓存条目的有效位212取反的无效位222b至222d;利用了与存储在OS执行状态存储部135b至135d中的操作系统的执行状态相对应的执行状态值(Val)的状态位223b至223d、以及直接利用了各自的缓存条目的参照时刻计数器214的值的参照计数器位224b至224d。
置换对象选择部136接收这些参照时刻数据221a至221d并进行比较,将参照时刻数据的数值最大的缓存条目作为置换对象而选择,并将选择的缓存条目作为置换对象缓存条目230而输出。另外,置换对象选择部136,当存在因置换被选择的缓存条目而被驱逐的数据时,将与成为置换对象的缓存条目同路的数据写入缓冲器138,并将置换前的数据回写至存储器113。
具体而言,当被选择的缓存条目216a至216d之中存在有效位212为OFF的一个缓存条目,则由于参照时刻数据221a至221d中的最上级位、即无效位222a至222d会成为ON,所以该缓存条目的参照时刻数据为最大。
另外,当缓存条目216a至216d全部有效时,即、缓存条目216a至216d的全部有效位222为ON时,参照时刻数据221a至221d中的最上级位、即无效位222a至222d全部成为“0”。此时,在被选择的缓存条目216a至216d之中存在休眠模式的操作系统使用的一个缓存条目的情况下,由于参照时刻数据221a至221d中的上级第二位、即状态位223a至223d会成为ON,所以该缓存条目的参照时刻数据为最大。
而且,当缓存条目216a至216d全部有效,且全部由通常运行模式的操作系统使用时,最上级位、即无效位222a至222d、以及上级第二位、即状态位223a至223d全部成为“0”。此时,与缓存条目216a至216d的参照时刻计数器214的值相对应的参照计数器位224a至224d被直接利用。因此,参照时刻数据221a至221d之中,与过去最早参照的缓存条目相对应的参照时刻数据的值为最大。
图5是表示参照时刻数据221a的可取的值的图。参照时刻数据300是有效位212为OFF时的值。此时,无论无效位222a以外的其他位示出任何值,参照时刻数据300的值都大于其他任何参照时刻数据301至305。
参照时刻数据301是有效位212为ON,但由休眠模式的操作系统利用缓存条目时的值。此时,无论参照计数器位224a示出任何值,参照时刻数据301的值都大于通常运行模式的操作系统所利用的缓存条目的参照时刻数据302至305。
参照时刻数据302至305是有效位212为ON,且由通常运行模式的操作系统利用缓存条目时的值。参照时刻数据302至305根据参照计数器位224a的值被进行大小比较。 此外,参照计数器位224a,在本实施例1中,由于缓存存储数据存储器是4路结构,因此,用2位表示。
如此,OS执行状态存储部135a至135d存储基于电力控制命令而变更的多个操作系统的执行状态;以及作为根据执行状态而预先设定的值、且与休眠模式相对应的值大于与通常运行模式相对应的值的执行状态值。另外,参照时刻计算部134a至134d,按每一多个缓存条目生成包括执行状态值和参照时刻计数值的参照时刻数据221a至221d。
置换对象选择部136,比较由参照时刻计算部134生成的每一多个缓存条目的参照时刻数据221a至221d,将与参照时刻数据中包含的执行状态值最大的参照时刻数据相对应的缓存条目作为成为置换对象的缓存条目而选择。
而且,置换对象选择部136,比较由参照时刻计算部134生成的每一多个缓存条目的参照时刻数据221a至221d,在参照时刻数据中包含的执行状态值全部相同时,将与参照时刻数据中包含的参照时刻计数值最大的参照时刻数据相对应的缓存条目作为成为置换对象的缓存条目而选择。
根据此结构,有效位212不为ON的缓存条目、以及休眠模式的操作系统所利用的缓存条目优先地作为置换对象而被选择。然后,仅在这些缓存条目不存在时,用LRU算法置换缓存条目。据此,在多个操作系统共享缓存存储装置的计算机系统中,其他操作系统能够优先利用一个操作系统不利用的缓存条目,能够有效利用尺寸有限的缓存存储装置。
根据以上所述,能够将非有效的缓存条目最优先地作为置换对象,并且,接着,将在休眠模式执行的操作系统所利用的缓存条目的数据视为最早被使用过的缓存条目的数据并作为置换对象。据此,能够控制成通常运行模式的操作系统的数据优先留在缓存存储装置111内。
另外,本实施例1并不是数据一律地从缓存条目无效化的方法。因此,根据设备等的状态,转移至休眠模式的操作系统再次回到通常运行模式时,能够有效利用已被使用过的缓存条目。当回到通常运行模式时,由于状态位的值回到“0”,因此,用LRU算法选择置换对象。
(实施例2)
图6是表示本发明实施例2中的计算机系统的结构的图。计算机系统500是多个处理器共享存储器和缓存存储装置的多处理器系统。
计算机系统500包括:内部总线110、周边模块群114、状态寄存器115、多个处理 器(第1处理器502及第2处理器503)、多个一级缓存存储装置(第1一级缓存存储装置504及第2一级缓存存储装置505)、二级缓存存储装置501、以及存储器506。内部总线110、周边模块群114以及状态寄存器115的结构要素与图1中说明的结构要素相同。
通过近年来的LSI的高集成化,虽然也能够将构成计算机系统500的多个电路搭载于一个系统LSI内,但是在本实施例2中,不限定电路群是安装在同一系统LSI内,还是分别用不同的LSI来提供。另外,在本实施例2中,虽然示出了仅搭载两个处理器的例子,但处理器个数并不限定于两个,也可以共存三个以上的处理器。另外,状态寄存器115与图1一样,与内部总线110连接,但也可以与第1处理器502及第2处理器503直接连接。
第1处理器502及第2处理器503分别读取并执行存储在存储器506中的程序(命令代码)。另外,第1处理器502及第2处理器503在执行程序时,参照存储器506上的数据、来自周边模块群114的输入输出数据并运行。另外,第1处理器502及第2处理器503,利用状态寄存器115保持的运行中的状态参数的值进行控制。
存储器506包括:第1至第n任务523至527、以及第1及第2操作系统521、522。
第1至第n任务523至527是包括分别在计算机系统500上运行的单一或多个命令代码的执行单位,例如,由第1处理器502执行的应用程序。
第1操作系统521以及第2操作系统522是控制在计算机系统500运行的软件整体的操作系统,在实施例2中包括两个操作系统。
作为本实施例2的多处理器系统的一例,在图6中,编译为第1及第2任务523、524和第1操作系统521在第1处理器502上运行,第3至第n任务525、526、527和第2操作系统522在第2处理器503上运行。
第1操作系统521管理第1及第2任务523、524的执行状态、以及第1处理器502的硬件状态。第2操作系统522管理第3至第n任务525、526、527的执行状态、以及第2处理器503的硬件状态。另外,计算机系统500由于在多个处理器中分别执行一个操作系统,所以不需要提供虚拟计算机环境。因此,本实施例2中不存在实施例1中说明的管理程序120。此外,任务数、操作系统数、以及任务与操作系统的关系也可以与图6所示的例子不一致。
第1及第2一级缓存存储装置504、505是分别用于临时存储第1处理器502及第2处理器503参照的数据以及命令的存储单元。此外,按每一各个处理器搭载缓存存储装置时,需要用于保证共享数据的一致性的侦听控制(Snoop Control),但由于不是本发明的主 要结构要素,所以附图中没有记载。一般而言,在侦听控制中,监视各个处理器中的写入操作,当一个处理器进行写入时,对另一个处理器所利用的缓存存储装置的对应的缓存条目进行无效化或更新。据此,在与多个处理器相对应的缓存存储装置间不会发生逻辑矛盾。
二级缓存存储装置501被由第1处理器502及第2处理器503共享,是第1处理器502及第2处理器503临时存储经由第1及第2一级缓存存储装置504、505参照的数据以及命令的存储单元。二级缓存存储装置501相当于图1中的缓存存储装置111。在实施例1中,缓存存储装置111被由虚拟计算机系统中的多个操作系统共享,但在本实施例2中,二级缓存存储装置501被由多个处理器共享。
二级缓存存储装置501是集合关联方式的缓存存储装置,包括被分割为多个路的缓存存储数据存储器。此外,有关集合关联方式的缓存存储装置,如前所述,在图2中示出。在图6中,虽然存在被分割为4路的缓存存储数据存储器510至513,但也可以搭载不满4路或超过4路。而且,由于二级缓存存储装置501被由多个处理器共享,所以在各个缓存条目内,搭载有表示是否任一的处理器正在使用该缓存条目的处理器标识符。此外,关于处理器标识符,将在图7中进行说明。
二级缓存存储装置501包括:上述的缓存存储数据存储器510至513、置换对象选择部136、访问对象选择部137、缓冲器138、监视部519、输入输出部140、以及缓存条目设定部141。以下,对与实施例1不同的结构要素、即参照时刻计算部514、处理器执行状态存储部515、以及监视部519进行说明。
监视部519通过检查状态寄存器115,来监视在第1处理器502及第2处理器503执行的电力控制命令,将执行该电力控制命令的处理器的状态变化通知给参照时刻计算部514。电力控制命令包括:休眠命令、电源控制命令、以及时钟控制命令。此外,第1处理器502及第2处理器503当分别基于在第1操作系统521或第2操作系统522上运行的任务数及任务的状态等,而转移至休眠模式时,发出电力控制命令,第1处理器502及第2处理器503执行被发出的电力控制命令。另外,第1处理器502及第2处理器503,当受到中断等的发生而处理负载变化时,执行从休眠模式返回到通常运行模式的处理。
缓存条目设定部141,在发生缓存未命中,从多个缓存条目中选择成为置换对象的缓存条目时,利用基于电力控制命令而变更的多个处理器的执行状态,将执行了电力控制命令的处理器所利用的缓存条目设定为已被使用过的状态。缓存条目设定部141将休眠模式的处理器所利用的缓存条目的已被使用过的状态设定为比通常运行模式的处理器所利用的缓存条目的已被使用过的状态更早。
缓存条目设定部141包括:参照时刻计算部514、以及处理器执行状态存储部515。
参照时刻计算部514接收来自监视部519的通知,利用处理器执行状态存储部515管理各个处理器的运行模式。处理器执行状态存储部515以表格形式保持识别处理器的处理器标识符、以及各处理器的执行状态(通常运行模式或休眠模式)。
此外,在此,处理器执行状态存储部515虽然以表格形式保持多个处理器的运行模式,但也可以以其他格式存储多个处理器的运行模式。
另外,参照时刻计算部514对于来自置换对象选择部136的查询,计算成为置换对象的候补的多个缓存条目的参照时刻数据,并将计算出的参照时刻数据通知给置换对象选择部136。参照时刻计算部514利用处理器执行状态存储部515、以及设置于各个缓存条目的处理器标识符,将休眠模式的处理器所利用的缓存条目的参照时刻数据作为最早被使用过的值而输出。此外,二级缓存存储装置501,当不存在休眠模式的处理器时,用通常的LRU算法进行操作。
根据以上结构,能够将以休眠模式执行的处理器所利用的缓存条目上的数据视为最早被使用过的缓存条目上的数据并作为置换对象。据此,能够控制为通常运行模式的处理器的数据优先地留在二级缓存存储装置501内。另外,由于处理器转移至休眠模式而被利用的频度减少的缓存条目能够在其他处理器中有效利用,能够提高作为系统整体的性能。
而且,本实施例2并不是将转移至休眠模式的处理器所利用的数据一律从缓存条目无效化,从而可由其他处理器利用缓存条目的方法。因此,根据设备等的状态而转移至休眠模式的处理器再次回到通常运行模式时,如果需要的数据还被保持在二级缓存存储装置501上,就能够有效利用已被使用过的缓存条目。
此外,在本实施例2中,计算机系统500相当于共享缓存控制装置的一例,存储器506相当于主存储部的一例,缓存存储装置501相当于缓存存储装置的一例,监视部519相当于监视部的一例,缓存条目设定部141相当于缓存条目设定部的一例,置换对象选择部136相当于置换对象选择部的一例,处理器执行状态存储部515相当于执行状态存储部的一例,参照时刻计算部514相当于参照时刻数据生成部的一例。
图7是表示根据存储器访问命令等,第1处理器502或第2处理器503对二级缓存存储装置501内进行访问时的、有关缓存条目选择处理的二级缓存存储装置501的详细结构的图。
表示访问对象的数据的地址信号200包括表示缓存存储数据存储器510至513内的偏置的索引编号202、以及索引编号202以外的上位地址标签201。在各个缓存存储数据存 储器510至513中,用索引编号202指定的处于偏置的缓存条目是可成为访问对象的缓存条目。从这些用索引编号202指定的处于偏置的4个缓存条目之中,进行缓存命中的检测。
另外,在本实施例2中,为了附图记载方便,仅记载了4路缓存存储数据存储器510至513,但本发明并不特别限定于此,二级缓存存储装置501能够搭载不满4路或超过4路的缓存存储数据存储器,可成为置换对象的缓存条目随着路数而增减。
另外,各个缓存存储数据存储器内的各缓存条目,至少包括含有上位地址标签210、脏位211、有效位212、处理器标识符600、参照时刻计数器214以及缓存数据215的字段。在图7中,除了处理器标识符600以外的其他结构要素是与图3同样的结构要素,进行与图3同样的操作,所以省略本实施例2中的说明。各个处理器对缓存条目进行访问时,该处理器的编号被存储在处理器标识符600中。
如此,缓存条目包括:处理器标识符600,用于识别使用该缓存条目的处理器;参照时刻计数器(参照时刻计数值)214,根据该缓存条目被参照的时刻而被进行计数,且被参照的时刻越早其值越大;以及缓存数据215。
图8是表示图7所示的缓存条目选择处理的结果,发生缓存未命中时的有关缓存条目置换处理的二级缓存存储装置501的详细结构的图。在图8中,除了处理器标识符600、参照时刻计算部514a至514d以及处理器执行状态存储部515a至515d以外的其他结构要素是与图4相同的结构要素。另外,参照时刻计算部514a至514d相当于图6中说明的参照时刻计算部514。
以下,利用图8对将缓存条目内的数据置换为新的数据的缓存条目置换处理的详细内容进行说明。
首先,当根据缓存未命中等,需要从存储器506读取新的数据并存储在二级缓存存储装置501中时,置换对象选择部136从访问对象选择部137接收缓存未命中信号410,开始缓存条目置换处理。
置换对象选择部136利用地址信号200内包含的索引编号202,选择缓存存储数据存储器510至513内的4个缓存条目。在此,设被选择的是缓存条目216a至216d。
从这4个缓存条目216a至216d之中选择一个缓存条目作为置换对象。因此,在本实施例2的二级缓存存储装置501中,监视部519监视在第1处理器502及第2处理器503执行的电力控制命令,并将执行该电力控制命令的处理器的状态变化通知给参照时刻计算部514,参照时刻计算部514管理各处理器的执行状态。据此,能够将转移至休眠模式的处理器所利用的缓存条目设定为最早被使用过的状态,其他处理器能够有效利用转移至休 眠模式的处理器所利用的缓存条目。
第1及第2处理器502、503,当分别根据在对应的第1及第2操作系统521、522上运行的任务数及任务的状态等而转移至休眠模式时,发出电力控制命令。另外,第1至第2处理器502、503分别在受到中断等的发生而处理负载变化时,从休眠模式返回到通常运行模式。
参照时刻计算部514a至514d利用处理器执行状态存储部515a至515d,管理各个处理器的运行模式。此外,在本实施例2中,是在各个缓存条目设定部141a至141d内搭载参照时刻计算部514a至514d以及处理器执行状态存储部515a至515d,但也可以在缓存条目设定部141a至141d之间共享一个参照时刻计算部514以及一个处理器执行状态存储部515。据此,能够更有效地保证数据的一致性。
在图8中,仅对处理器执行状态存储部515a示出表格内的详细内容。在图8的处理器执行状态存储部515a存储的表格中,假设存在两个处理器(标识符“0”和“1”),且分别为通常运行模式及休眠模式。此外,在图8中,处理器标识符表示为“0”和“1”,通常运行模式的处理器的执行状态表示为“RUN”,休眠模式的处理器的执行状态表示为“SLEEP”。另外,处理器执行状态存储部515a至515d,如果为通常运行模式则保持“0”来作为与处理器的执行状态相对应的执行状态值(Val);如果为休眠模式则保持“1”来作为与处理器的执行状态相对应的执行状态值(Val)。
接下来,参照时刻计算部514a至514d,利用被选择的缓存条目216a至216d内的参照时刻计数器214、被选择的缓存条目216a至216d内的有效位212、以及处理器执行状态存储部515a至515d内的与处理器的执行状态相对应的执行状态值(Val),生成与各缓存条目216a至216d相对应的参照时刻数据。
作为一例,与缓存条目216a相对应的参照时刻数据221a包括:通过逻辑“非”运算符220a使有效位212取反的无效位222a;利用了存储在处理器执行状态存储部515a中的与处理器的执行状态相对应的执行状态值(Val)的状态位223a;以及直接利用了参照时刻计数器214的参照计数器位224a。同样地,与缓存条目216b至216d相对应的参照时刻数据221b至221d包括:通过逻辑“非”运算符220b至220d使各自的缓存条目的有效位212取反的无效位222b至222d;利用了存储在处理器执行状态存储部515b至515d中的与处理器的执行状态相对应的执行状态值(Val)的状态位223b至223d;以及直接利用了各自的缓存条目的参照时刻计数器214的参照计数器位224b至224d。
置换对象选择部136接收这些参照时刻数据221a至221d并进行比较,将参照时刻 数据的数值最大的缓存条目作为置换对象而选择,并将选择的缓存条目作为置换对象缓存条目230而输出。另外,置换对象选择部136,当存在因置换被选择的缓存条目而被驱逐的数据时,将与置换对象的缓存条目同路的数据写入缓冲器138,将置换前的数据回写至存储器506。
具体而言,在被选择的缓存条目216a至216d之中存在一个有效位212为OFF的缓存条目的情况下,由于参照时刻数据221a至221d中的最上级位、即无效位222a至222d就会成为ON,所以该缓存条目的参照时刻数据为最大。
另外,当缓存条目216a至216d全部有效时,即、缓存条目216a至216d的全部有效位222为ON时,参照时刻数据221a至221d中的最上级位、即无效位222a至222d全部为“0”。此时,在被选择的缓存条目216a至216d之中存在休眠模式的处理器使用的一个缓存条目的情况下,由于参照时刻数据221a至221d中的上级第二位、即状态位223a至223d就会成为ON,所以该缓存条目的参照时刻数据为最大。
而且,当缓存条目216a至216d全部有效,且全部由通常运行模式的处理器使用时,最上级位、即无效位222a至222d、以及上级第二位、即状态位223a至223d全部为“0”。此时,与缓存条目216a至216d的参照时刻计数器214的值相对应的参照计数器位224a至224d被直接使用。因此,参照时刻数据221a至221d之中,过去最早参照的缓存条目的参照时刻数据的值为最大。
如此,处理器执行状态存储部515a至515d存储基于电力控制命令而变更的多个处理器的执行状态;以及作为根据执行状态而预先设定的值、且与休眠模式相对应的值大于与通常运行模式相对应的值的执行状态值。另外,参照时刻计算部514a至514d,按照每一多个缓存条目生成包括执行状态值和参照时刻计数值的参照时刻数据221a至221d。
置换对象选择部136比较由参照时刻计算部514a至514d生成的每一多个缓存条目的参照时刻数据221a至221d,并将与参照时刻数据中包含的执行状态值最大的参照时刻数据相对应的缓存条目作为成为置换对象的缓存条目而选择。另外,置换对象选择部136比较由参照时刻计算部514a至514d生成的每一多个缓存条目的参照时刻数据221a至221d,并且,当参照时刻数据中包含的执行状态值全部相同时,将与参照时刻数据中包含的参照时刻计数值最大的参照时刻数据相对应的缓存条目作为成为置换对象的缓存条目而选择。
根据此结构,有效位212不为ON的缓存条目、以及休眠模式的处理器所利用的缓存条目优先作为置换对象而被选择。然后,仅在这些缓存条目不存在时,用LRU算法置换 缓存条目。据此,在多个处理器共享缓存存储装置的计算机系统中,其他处理器能够优先利用一个处理器不利用的缓存条目,能够有效利用尺寸有限的缓存存储装置。
根据以上所述,能够将非有效的缓存条目最优先作为置换对象,接着,将以休眠模式执行的处理器所利用的缓存条目的数据视为最早被使用过的缓存条目的数据并作为置换对象。据此,能够控制为通常运行模式的处理器的数据优先留在二级缓存存储装置501内。
另外,本实施例2并不是数据一律从缓存条目无效化的方法。因此,当根据设备等的状态,转移至休眠模式的处理器再次回到通常运行模式时,能够有效利用已被使用过的缓存条目。当回到通常运行模式时,由于状态位的值回到“0”,所以用LRU算法选择置换对象。
(实施例3)
图9是表示本发明实施例3中的计算机系统的结构的图。计算机系统800是在一个处理器上运行多个操作系统的虚拟计算机系统。计算机系统800包括:内部总线110、缓存存储装置801、处理器112、存储器813、周边模块群114、以及状态寄存器115。缓存存储装置801、存储器813、周边模块群114以及状态寄存器115分别与内部总线110连接。内部总线110、处理器112、周边模块群114以及状态寄存器115的结构要素与图1中说明的结构要素相同。
存储器813包括:第1至第n任务823至827、第1及第2操作系统821、822、以及管理程序820。图1的存储器113包括三个操作系统,与此相对,图9的存储器813包括两个操作系统的这点不同,各结构要素相同。
缓存存储装置801是与缓存存储装置111同样的集合关联方式的缓存存储装置。此时,缓存存储装置801包括:被分割为多个路的缓存存储数据存储器830至833、置换对象选择部841、访问对象选择部137、缓冲器138、监视部139、输入输出部140、以及缓存条目设定部141。缓存存储数据存储器830至833是与上述的缓存存储数据存储器130至133同样的结构,但不需要在各个缓存条目内搭载操作系统标识符。另外,访问对象选择部137、缓冲器138、监视部139以及输入输出部140的结构是与实施例1相同的结构,所以省略说明。
缓存条目设定部141包括:锁定(lock down)控制部834、以及锁定表格存储部838。
锁定控制部(lock down controlling section)834进行将多个缓存存储数据存储器830至833之中的被指定的路不作为置换对象的设定。例如,在缓存存储数据存储器831被锁定控制部834锁定的情况下,当发生缓存未命中时,则从缓存存储数据存储器830、832、833的任意一个中选择置换对象缓存条目。
锁定表格存储部838存储锁定表格835。锁定表格835是用于指定各个操作系统的执行状态、以及各个操作系统占有的路的表格。锁定表格835中存在表示操作系统执行状态836、以及占有路837的条目。
操作系统执行状态836表示各操作系统的执行状态。在图9中示出了第1操作系统821为通常运行模式,第2操作系统822为休眠模式。此外,在图9中,操作系统标识符表示为“1”及“2”,通常运行模式的操作系统的执行状态表示为“RUN”,休眠模式的操作系统的执行状态表示为“SLEEP”。
占有路837表示各操作系统占有并使用的缓存存储数据存储器(路)。某个操作系统占有的路,其他操作系统不能将其作为置换对象。在图9的例子中,第1操作系统821占有路0的缓存存储数据存储器830及路1的缓存存储数据存储器831,第2操作系统822占有路3的缓存存储数据存储器833。
此时,锁定控制部834监视执行中的操作系统,在第2操作系统822运行时,锁定第1操作系统821占有的路0的缓存存储数据存储器830及路1的缓存存储数据存储器831。据此,在第1操作系统821以外的操作系统运行时,路0的缓存存储数据存储器830及路1的缓存存储数据存储器831不会成为置换对象。
当操作系统为休眠模式时,该操作系统占有缓存存储数据存储器会影响系统整体的性能。因此,锁定控制部834参照锁定表格835内的操作系统执行状态836,若为休眠状态,则不锁定应被该操作系统占有的路的缓存存储数据存储器。
在图9的例子中,第2操作系统822占有路3的缓存存储数据存储器833。此时,锁定控制部834,当判断为第1操作系统821运行,第2操作系统822为休眠模式时,不锁定第2操作系统822本应占有的路3的缓存存储数据存储器833。据此,第1操作系统821能够将路3的缓存存储数据存储器833也作为置换对象,可以期待比通常更高速的程序的执行。
如此,缓存存储装置801包括分别具有多个缓存条目的多个路(缓存存储数据存储器830至833)。锁定表格存储部838存储基于电力控制命令而变更的多个操作系统的执行状态、以及用于识别多个路之中的操作系统所利用的路的路标识符。另外,锁定控制部834参照锁定表格存储部838,将休眠模式的操作系统所利用的路设定为成为置换对象的路,并且,将通常运行模式的操作系统所利用的路设定为不成为置换对象的路。
置换对象选择部841从被锁定控制部834设定为成为置换对象的路的路之中,将最早被使用过的缓存条目作为成为置换对象的缓存条目而选择。
此外,在本实施例3中,缓存存储装置801相当于缓存存储装置的一例,置换对象选择部841相当于置换对象选择部的一例,锁定控制部834相当于锁定控制部的一例,锁定表格存储部838相当于执行状态存储部的一例。
图10是用于说明图9所示的锁定控制部834的操作的流程图。此外,图9所示的锁定控制部834作为缓存存储装置801内的控制电路而记载,但如图10所示,也可以是例如管理程序820内的程序。不论是控制电路还是程序都可以由同样的处理流程来实现。
首先,锁定控制部834转移至操作系统切换等待状态(步骤S1)。
当操作系统被切换了时,锁定控制部834转移至步骤S2的处理,对于下一个应执行的操作系统以外的操作系统,执行步骤S3的处理和步骤S4的处理。即、锁定控制部834,对于下一个应执行的操作系统以外的全部操作系统,判断是否已完成是否处于通常运行模式的检查(步骤S2)。
当对于下一个应执行的操作系统以外的全部操作系统判断为未完成是否处于通常运行模式的检查时(步骤S2中为否),锁定控制部834选择作为下一个应执行的操作系统以外的其他操作系统、且未完成是否处于通常运行模式的检查的操作系统。然后,锁定控制部834参照锁定表格835,判断选择的操作系统是否处于通常运行模式(步骤S3)。
当判断为处于通常运行模式时(步骤S3中为是),锁定控制部834锁定由锁定表格835内的占有路837指定的缓存存储数据存储器(步骤S4)。另一方面,当判断为不是通常运行模式时(步骤S3中为否),锁定控制部834返回到步骤S2的处理。
另一方面,当对于下一个应执行的操作系统以外的全部操作系统判断为已完成是否处于通常运行模式的检查时(步骤S2中为是),锁定控制部834返回到步骤S1的处理,转移至操作系统切换等待状态。
通过利用图9所示的结构,不用在缓存存储装置内搭载操作系统标识符,就可以通过更简单的方法,进行与操作系统的执行状态相对应的缓存存储装置的有效利用。具体而言,由于通常运行模式的操作系统所利用的缓存存储数据存储器被锁定,所以该缓存存储数据存储器不会被其他操作系统驱逐。另外,由于转移至休眠模式的操作系统的缓存存储数据存储器不会被锁定,所以其他操作系统能够有效率地利用缓存存储装置内的缓存条目。
本实施例3,与分割缓存存储装置的存储区域并完全分配给各个操作系统的方法相比,可以期待处理的高速化的效果。而且,本实施例3并不是数据一律从缓存条目无效化的方 法,所以,当根据设备等的状态,转移至休眠模式的操作系统再次回到通常运行模式时,能够有效利用已被使用过的缓存条目。
(实施例4)
在本发明实施例1中,多个操作系统之中的任一个操作系统转移至休眠模式时,该操作系统使用的缓存条目完全优先作为置换对象。但是,有时将通常运行模式的操作系统最早被使用过的缓存条目作为置换对象更为有效。
例如,作为操作系统的执行状态,在休眠模式和通常运行模式以外还设置与通常运行模式相比以低速时钟运行的低耗电模式,当休眠模式时,将该操作系统所利用的缓存条目完全优先作为置换对象,当低耗电模式时,使该操作系统所利用的缓存条目在一定程度上优先作为置换对象。即、也能够应对即使是通常运行模式的操作系统,最早被使用过的缓存条目优先于低耗电模式的操作系统最近访问的缓存条目而置换为宜的情况。
图11是表示考虑了低耗电模式的本发明实施例4中的计算机系统的结构的图。计算机系统1000是在一个处理器上运行多个操作系统的虚拟计算机系统。
计算机系统1000包括:内部总线110、缓存存储装置1001、处理器112、存储器113、周边模块群114、以及状态寄存器115。缓存存储装置1001、存储器113、周边模块群114以及状态寄存器115分别与内部总线110连接。内部总线110、处理器112、存储器113、周边模块群114以及状态寄存器115的结构要素与图1中的说明相同,所以省略说明,仅对不同的结构要素、即缓存存储装置1001进行说明。
另外,通过近年来的LSI的高集成化,也能够将构成计算机系统1000的多个电路搭载于一个系统LSI内,但本实施例4中,不限定电路群是安装在同一系统LSI内,还是分别用不同的LSI来提供。此外,在图11中,状态寄存器115与内部总线110连接,但也可以与处理器112直接连接。
缓存存储装置1001包括:缓存存储数据存储器130至133、置换对象选择部136、访问对象选择部137、缓冲器138、监视部139、输入输出部140、以及缓存条目设定部141。缓存条目设定部141包括:参照时刻计算部1004、以及OS执行状态存储部1005。以下,对与实施例1不同的结构要素、即参照时刻计算部1004以及OS执行状态存储部1005进行说明。
参照时刻计算部1004,接收来自监视部139的通知,利用OS执行状态存储部1005管理执行电力控制命令的操作系统的运行模式。OS执行状态存储部1005以表格形式保持 识别操作系统的操作系统标识符、各操作系统的执行状态(通常运行模式、休眠模式以及低耗电模式)、以及与操作系统的执行状态相对应的未使用时刻加算指标(未使用时刻加算值)。
此外,在此,OS执行状态存储部1005以表格形式保持操作系统的运行模式和未使用时刻加算指标,但也可以以其他格式存储操作系统的运行模式和未使用时刻加算指标。
另外,参照时刻计算部1004,对于来自置换对象选择部136的查询,计算成为置换对象的候补的多个缓存条目的参照时刻数据,并将计算出的参照时刻数据通知给置换对象选择部136。参照时刻计算部1004利用OS执行状态存储部1005、设置于各个缓存条目的操作系统标识符、以及参照时刻计数器,将休眠模式的操作系统所利用的缓存条目的参照时刻数据作为最早被使用过的值,以及将低耗电模式的操作系统所利用的缓存条目的参照时刻数据作为在某种程度上过去曾使用过的值而输出。此外,缓存存储装置1001,在不存在休眠模式和低耗电模式的操作系统时,用通常的LRU算法进行操作。
根据以上结构,以休眠模式执行的操作系统所利用的缓存条目上的数据被视为最早被使用过的数据,另外,以低耗电模式运行的操作系统所利用的缓存条目上的数据被视为在某种程度上曾使用过的数据。因此,能够控制为通常运行模式的操作系统的数据优先地留在缓存存储装置1001内。据此,因操作系统转移至休眠模式或低耗电模式而被利用的频度减少的缓存条目,能够被由其他操作系统有效利用,能够提高作为系统整体的性能。
此外,在本实施例4中,计算机系统1000相当于共享缓存控制装置的一例,存储器113相当于主存储部的一例,缓存存储装置1001相当于缓存存储装置的一例,监视部139相当于监视部的一例,缓存条目设定部141相当于缓存条目设定部的一例,置换对象选择部136相当于置换对象选择部的一例,OS执行状态存储部1005相当于执行状态存储部的一例,参照时刻计算部1004相当于参照时刻数据生成部的一例。
图12是表示缓存条目选择处理的结果、发生缓存未命中时的有关缓存条目置换处理的缓存存储装置1001的详细结构的图。在图12中,除了参照时刻计算部1004a至1004d、OS执行状态存储部1005a至1005d、参照时刻数据1002a至1002d、参照计数器位1003a至1003d、以及加算器1010a至1010d以外的其他结构要素是与图4相同的结构要素。另外,参照时刻计算部1004a至1004d相当于图11中说明的参照时刻计算部1004,OS执行状态存储部1005a至1005d相当于图11中说明的OS执行状态存储部1005。
以下,利用图12对将缓存条目内的数据置换为新的数据的缓存条目置换处理的详细内容进行说明。
首先,当根据缓存未命中等,需要从存储器113读取新的数据,并存储在缓存存储装置1001中时,置换对象选择部136从访问对象选择部137接收缓存未命中信号410,开始缓存条目置换处理。
置换对象选择部136利用地址信号200内包含的索引编号202,选择缓存存储数据存储器130至133内的4个缓存条目。在此,设被选择的是缓存条目216a至216d。
从这4个缓存条目216a至216d之中选择一个缓存条目作为置换对象。因此,在本实施例4的缓存存储装置1001中,监视部139监视在处理器112执行的电力控制命令,并将执行该电力控制命令的操作系统的状态变化通知给参照时刻计算部1004,参照时刻计算部1004管理各操作系统的执行状态。
据此,能够将转移至休眠模式的操作系统所利用的缓存条目设定为最早被使用过的状态,而且,能够将以低耗电模式运行的操作系统所利用的缓存条目设定为在某种程度上过去曾使用过的状态。因此,能够控制为通常运行模式的操作系统的数据优先地留在缓存存储装置1001内,同时,即使是通常运行模式的操作系统,也能够使最早被使用过的缓存条目优先于低耗电模式的操作系统最近访问的缓存条目而置换。
第1至第3操作系统121、122、123当分别根据在各个操作系统上运行的任务数及任务的状态等而转移至休眠模式或低耗电模式时,发出电力控制命令。另外,第1至第3操作系统121、122、123当分别受到中断等的发生而处理负载变化时,从休眠模式或低耗电模式返回到通常运行模式。
参照时刻计算部1004a至1004d,利用OS执行状态存储部1005a至1005d,管理各个操作系统的运行状态(执行状态)和未使用时间加算指标。此外,在本实施例4中,采用了在各个缓存条目设定部141a至141d内搭载参照时刻计算部1004a至1004d以及OS执行状态存储部1005a至1005d的结构,但也可以在缓存条目设定部141a至141d之间共享一个参照时刻计算部1004以及一个OS执行状态存储部1005。据此,能够更有效地保障数据的一致性。
在图12中,仅对OS执行状态存储部1005a示出表格内的详细内容。图12的OS执行状态存储部1005a存储的表格中存在三个操作系统。假设三个操作系统的操作系统标识符分别为“0”、“1”和“2”,执行状态分别为通常运行模式、休眠模式以及低耗电模式,未使用时刻加算指标(Val)分别为“0”、“4”和“2”。
此外,在图12中,通常运行模式的操作系统的执行状态表示为“RUN”,休眠模式的操作系统的执行状态表示为“SLEEP”,低耗电模式的操作系统的执行状态表示为 “SLOW”。
也就是说,OS执行状态存储部1005a至1005d,如果为通常运行模式则保持“0”来作为未使用时刻加算指标;如果为低耗电模式则保持“2”来作为未使用时刻加算指标;如果为休眠模式则保持“4”来作为未使用时刻加算指标。
接下来,参照时刻计算部1004a至1004d利用被选择的缓存条目216a至216d内的参照时刻计数器214、被选择的缓存条目216a至216d内的有效位212、以及OS执行状态存储部1005a至1005d内的未使用时刻加算指标(Val),生成与各缓存条目216a至216d相对应的参照时刻数据。
与缓存条目216a相对应的参照时刻数据1002a包括:通过逻辑“非”运算符220a使有效位212取反的无效位222a、以及利用加算器1010a将各缓存条目的参照时刻计数器214的值与存储于OS执行状态存储部1005a的未使用时刻加算指标(Val)相加的参照计数器位1003a。同样地,与缓存条目216b至216d相对应的参照时刻数据1002b至1002d包括:通过逻辑“非”运算符220b至220d使各自的缓存条目的有效位212取反的无效位222b至222d、以及利用加算器1010b至1010d将各自的缓存条目的参照时刻计数器214的值与存储于OS执行状态存储部1005b至1005d的未使用时间加算指标(Val)相加的参照计数器位1003b至1003d。
置换对象选择部136接收这些参照时刻数据1002a至1002d并进行比较,将参照时刻数据的数值最大的缓存条目作为置换对象而选择,并将选择的缓存条目作为置换对象的缓存条目230而输出。另外,置换对象选择部136,当存在因置换被选择的缓存条目而被驱逐的数据时,将与成为置换对象的缓存条目同路的数据写入缓冲器138,将置换前的数据回写至存储器113。
图13是表示参照时刻数据1002a的参照计数器位1003a的可取的值的图。在图13中示出了操作系统的执行状态处于通常运行模式(“RUN”)、休眠模式(“SLEEP”)以及低耗电模式(“SLOW”)之中的哪种模式、以及根据参照时刻计数器(“Cnt”)214的值的变化,参照计数器位(“CNT”)1003a成为什么值。
例如,记录(record)1103的情况,操作系统的执行状态为低耗电模式,参照时刻计数器214的值为“0”。由于与低耗电模式相对应的未使用时间加算指标为“2”,所以将参照时刻计数器214的值与未使用时间加算指标相加,参照计数器位1003a的值成为“2”。另外,记录1104的情况,操作系统的执行状态为通常运行模式,参照时刻计数器214的值为“3”。由于与通常运行模式相对应的未使用时间加算指标为“0”,所以将参照时刻计数器214的值与未使用时间加算指标相加,参照计数器位1003a的值成为“3”。此外,图13所示的各值以二进制数表示。
在此,比较记录1103与记录1104,则记录1104中的参照计数器位的值大于记录1103中的参照计数器位的值。因此,可以理解为:即使是通常运行模式(记录1104)的操作系统所利用的缓存条目,有时也会比低耗电模式(记录1103)的操作系统所利用的缓存条目更优先地成为置换对象。
如此,OS执行状态存储部1005a至1005d存储操作系统的执行状态、以及表示根据执行状态而加算于参照时刻计数值的值的未使用时刻加算指标。另外,参照时刻计算部1004a至1004d,将与使用缓存条目的操作系统的执行状态相对应的未使用时刻加算指标加算于缓存条目中包含的参照时刻计数值,并按每一多个缓存条目生成包含参照时刻计数值的参照时刻数据1002a至1002d。
置换对象选择部136,将与由参照时刻计算部1004a至1004d生成的多个参照时刻数据1002a至1002d中包含的多个参照时刻计数值之中的、值最大的参照时刻计数值相对应的缓存条目,作为成为置换对象的缓存条目而选择。
此外,与休眠模式相对应的未使用时刻加算指标大于与低耗电模式相对应的未使用时刻加算指标。另外,与低耗电模式相对应的未使用时刻加算指标大于与通常运行模式相对应的未使用时刻加算指标,且小于与休眠模式相对应的未使用时刻加算指标。
根据此结构,将有效位212不为ON的缓存条目作为最优先的置换对象,接着,休眠模式以及低耗电模式的操作系统所利用的缓存条目优先地作为置换对象而被选择。另外,与通常运行模式的操作系统所利用的缓存条目相比,能够将低耗电模式的操作系统所利用的缓存条目一定程度上优先作为置换对象。据此,在多个操作系统共享缓存存储装置的系统中,其他操作系统能够优先利用被由一个操作系统所利用的频度减少的缓存条目,能够有效利用尺寸有限的缓存存储装置。
根据以上所述,能够将非有效的缓存条目最优先作为置换对象,并且,作为操作系统的执行状态,除休眠模式和通常运行模式以外还设置与通常运行模式相比更以低速时钟运行的低耗电模式,当休眠模式时,将该操作系统所利用的缓存条目完全优先作为置换对象,当低耗电模式时,使该操作系统所利用的缓存条目在一定程度上优先作为置换对象。
另外,在一个操作系统从通常运行模式转移至低耗电模式(这里是指以低速时钟运行的模式)的情况等下,低耗电模式中的操作系统与休眠模式不同,虽然低速但还在运行。因此,不是将该低耗电模式的操作系统所利用的缓存条目一律设定为最早被使用过的状态,而是根据操作系统的执行状态,能够改变成为置换对象的缓存条目的优先级。据此,低耗电模式的操作系统在一定程度上优先作为置换对象,所以能够有效利用缓存条目。
另外,本实施例4并不是数据一律从缓存条目无效化的方法,所以根据设备等的状态,转移至休眠模式或低耗电运行模式的操作系统再次回到通常运行模式时,能够有效利用已被使用过的缓存条目。在回到通常运行模式的情况下,缓存存储装置用LRU算法选择置换对象。
(实施例5)
在本发明的实施例2中,多个处理器之中的任一处理器转移至休眠模式时,该处理器使用的缓存条目完全优先作为置换对象。但是,有时将通常运行模式的处理器最早被使用过的缓存条目作为置换对象更为有效。
例如,作为处理器的执行状态,除休眠模式和通常运行模式以外还设置与通常运行模式相比更以低速时钟运行的低耗电模式,当休眠模式时,将该处理器所利用的缓存条目完全优先作为置换对象,当低耗电模式时,使该处理器所利用的缓存条目在一定程度上优先作为置换对象。即、即使是通常运行模式的处理器,最早被使用过的缓存条目优先于低耗电模式的处理器最近访问的缓存条目而置换为宜的情况,也能够应对。
图14是表示考虑了低耗电模式的本发明实施例5中的计算机系统的结构的图。计算机系统1200是多个处理器共享存储器以及缓存存储装置的多处理器系统。
计算机系统1200包括:内部总线110、多个处理器(第1处理器502及第2处理器503)、多个一级缓存存储装置(第1一级缓存存储装置504及第2一级缓存存储装置505)、二级缓存存储装置1201、存储器506、周边模块群114、以及状态寄存器115。内部总线110、多个处理器(第1处理器502及第2处理器503)、多个一级缓存存储装置(第1一级缓存存储装置504及第2一级缓存存储装置505)、存储器506、周边模块群114以及状态寄存器115与图6中说明的结构要素相同,所以省略说明,仅对不同的结构要素、即二级缓存存储装置1201进行说明。
另外,通过近年来的LSI的高集成化,也能够将构成计算机系统1200的多个电路搭载于一个系统LSI内,但在本实施例5中,不限定电路群是安装在同一系统LSI内,还是分别用不同的LSI来提供。此外,在图14中,状态寄存器115与内部总线110连接,但也可以与第1处理器502及第2处理器503直接连接。
二级缓存存储装置1201被由第1处理器502及第2处理器503共享,是用于第1处 理器502及第2处理器503将经由第1一级缓存存储装置504及第2一级缓存存储装置505参照的数据以及命令临时存储的存储单元。二级缓存存储装置1201包括:缓存存储数据存储器510至513、参照时刻计算部1204、处理器执行状态存储部1205、置换对象选择部136、访问对象选择部137、缓冲器138、监视部519、以及输入输出部140。以下,对与实施例2不同的结构要素、即参照时刻计算部1204以及处理器执行状态存储部1205进行说明。
参照时刻计算部1204接收来自监视部519的通知,利用处理器执行状态存储部1205管理各个处理器的运行模式。处理器执行状态存储部1205以表格形式保持识别处理器的处理器标识符、各处理器的执行状态(通常运行模式、休眠模式以及低耗电模式)、以及与处理器的执行状态相对应的未使用时刻加算指标。
此外,这里,处理器执行状态存储部1205以表格形式保持处理器的运行模式和未使用时刻加算指标,但也可以以其他格式存储处理器的运行模式和未使用时刻加算指标。
另外,参照时刻计算部1204对于来自置换对象选择部136的查询,计算成为置换对象的候补的多个缓存条目的参照时刻数据,并将计算出的参照时刻数据通知给置换对象选择部136。参照时刻计算部1204利用处理器执行状态存储部1205、设置于各个缓存条目的处理器标识符、以及参照时刻计数器,将休眠模式的处理器所利用的缓存条目的参照时刻数据作为最早被使用过的值,以及将低耗电模式的处理器所利用的缓存条目的参照时刻数据作为在某种程度上过去曾使用过的值而输出。此外,二级缓存存储装置1201,在不存在休眠模式和低耗电模式的处理器时,用通常的LRU算法进行操作。
根据以上结构,以休眠模式执行的处理器所利用的缓存条目上的数据被视为最早被使用过的数据,另外,以低耗电模式运行的处理器所利用的缓存条目上的数据被视为在某种程度上过去曾使用过的数据。因此,能够控制为通常运行模式的处理器的数据优先地留在缓存存储装置1201内。据此,因处理器转移至休眠模式或低耗电模式而被利用的频度减少的缓存条目,能够被由其他处理器有效利用,能够提高作为系统整体的性能。
此外,在本实施例5中,计算机系统1200相当于共享缓存控制装置的一例,存储器506相当于主存储部的一例,缓存存储装置1201相当于缓存存储装置的一例,监视部519相当于监视部的一例,缓存条目设定部141相当于缓存条目设定部的一例,置换对象选择部136相当于置换对象选择部的一例,处理器执行状态存储部1205相当于执行状态存储部的一例,参照时刻计算部1204相当于参照时刻数据生成部的一例。
图15是表示缓存条目选择处理的结果、发生缓存未命中时的有关缓存条目置换处理 的二级缓存存储装置1201的详细结构的图。在图15中,除了参照时刻计算部1204a至1204d、以及处理器执行状态存储部1205a至1205d以外的其他结构要素是与图8或图12相同的结构要素。另外,参照时刻计算部1204a至1204d相当于图14中说明的参照时刻计算部1204,处理器执行状态存储部1205a至1205d相当于图14中说明的处理器执行状态存储部1205。
以下,利用图15对将缓存条目内的数据置换为新的数据的缓存条目置换处理的详细内容进行说明。
首先,因缓存未命中等,需要从存储器506读取新的数据,并存储在二级缓存存储装置1201中时,置换对象选择部136从访问对象选择部137接收缓存未命中信号410,开始缓存条目置换处理。
置换对象选择部136利用地址信号200内包含的索引编号202,选择缓存存储数据存储器510至513内的4个缓存条目。在此,设被选择的是缓存条目216a至216d。
从这4个缓存条目216a至216d之中选择一个缓存条目作为置换对象。因此,在本实施例5的缓存存储装置1201中,监视部519监视在第1处理器502及第2处理器503执行的电力控制命令,并将执行该电力控制命令的处理器的状态变化通知给参照时刻计算部1204,参照时刻计算部1204管理各处理器的执行状态。
据此,能够将转移至休眠模式的处理器所利用的缓存条目设定为最早被使用过的状态,另外,能够将以低耗电模式运行的处理器所利用的缓存条目设定为在某种程度上过去曾使用过的状态。因此,能够控制为通常运行模式的处理器的数据优先地留在二级缓存存储装置1201内,同时,即使是通常运行模式的处理器,最早被使用过的缓存条目也能够优先于低耗电模式的处理器最近访问的缓存条目而置换。
第1处理器502及第2处理器503当分别根据在对应的第1操作系统521及第2操作系统522上运行的任务数及任务的状态等,而转移至休眠模式或低耗电模式时,发出电力控制命令。另外,第1处理器502至第2处理器503当分别受到中断等的发生而处理负载变化时,从休眠模式或低耗电模式返回到通常运行模式。
参照时刻计算部1204a至1204d利用处理器执行状态存储部1205a至1205d,管理各个处理器的执行状态和未使用时间加算指标。此外,在本实施例5中,采用了在各个缓存条目设定部141a至141d内搭载参照时刻计算部1204a至1204d以及处理器执行状态存储部1205a至1205d的结构,但也可以在缓存条目设定部141a至141d之间共享一个参照时刻计算部1204以及一个处理器执行状态存储部1205。据此,能够更有效地保障数 据的一致性。
在图15中,仅对处理器执行状态存储部1205a示出表格内的详细内容。图15的处理器执行状态存储部1205a存储的表格中存在两个处理器。假设两个处理器的处理器标识符分别为“0”和“1”,执行状态分别为通常运行模式以及低耗电模式,未使用时刻加算指标(Val)分别为“0”和“2”。另外,与休眠模式相对应的未使用时刻加算指标(Val)为“4”。
此外,在图15中,通常运行模式的处理器的执行状态表示为“RUN”,低耗电模式的处理器的执行状态表示为“SLOW”。
也就是说,处理器执行状态存储部1205a至1205d,如果为通常运行模式则保持“0”来作为未使用时刻加算指标;如果为低耗电模式则保持“2”来作为未使用时刻加算指标;如果为休眠模式则保持“4”来作为未使用时刻加算指标。
接下来,参照时刻计算部1204a至1204d利用被选择的缓存条目216a至216d内的参照时刻计数器214、被选择的缓存条目216a至216d内的有效位212、以及处理器执行状态存储部1205a至1205d内的未使用时刻加算指标(Val),生成与各缓存条目216a至216d相对应的参照时刻数据。
与缓存条目216a相对应的参照时刻数据1002a包括:通过逻辑“非”运算符220a使有效位212取反的无效位222a、以及利用加算器1010a将各缓存条目的参照时刻计数器214的值与存储于处理器执行状态存储部1205a的未使用时刻加算指标(Val)相加的参照计数器位1003a。同样地,与缓存条目216b至216d相对应的参照时刻数据1002b至1002d包括:通过逻辑“非”运算符220b至220d使各自的缓存条目的有效位212取反的无效位222b至222d、以及利用加算器1010b至1010d将各自的缓存条目的参照时刻计数器214的值与存储于处理器执行状态存储部1205b至1205d的未使用时间加算指标(Val)相加的参照计数器位1003b至1003d。
置换对象选择部136接收这些参照时刻数据1002a至1002d并进行比较,将参照时刻数据的数值最大的缓存条目作为置换对象而选择,并将选择的缓存条目作为置换对象缓存条目230而输出。另外,置换对象选择部136,当存在因置换被选择的缓存条目而被驱逐的数据时,将与置换对象的缓存条目同路的数据写入缓冲器138,并将置换前的数据回写至存储器506。
如此,处理器执行状态存储部1205a至1205d存储处理器的执行状态、以及表示根据执行状态加算于参照时刻计数值的值的未使用时刻加算指标。参照时刻计算部1204a至 1204d,将与使用缓存条目的处理器的执行状态相对应的未使用时刻加算指标加算于缓存条目中包含的参照时刻计数值,并按照每一多个缓存条目生成包含参照时刻计数值的参照时刻数据1002a至1002d。
置换对象选择部136,将与由参照时刻计算部1204a至1204d生成的多个参照时刻数据1002a至1204d中包含的多个参照时刻计数值之中的、值最大的参照时刻计数值相对应的缓存条目,作为成为置换对象的缓存条目而选择。
此外,与休眠模式相对应的未使用时刻加算指标大于与低耗电模式相对应的未使用时刻加算指标。另外,与低耗电模式相对应的未使用时刻加算指标大于与通常运行模式相对应的未使用时刻加算指标,且小于与休眠模式相对应的未使用时刻加算指标。
根据此结构,将有效位212不为ON的缓存条目作为最优先的置换对象,接着,休眠模式以及低耗电模式的处理器所利用的缓存条目优先作为置换对象而被选择。另外,与通常运行模式的处理器所利用的缓存条目相比,能够将低耗电模式的处理器所利用的缓存条目在一定程度上优先作为置换对象。据此,在多个处理器共享缓存存储装置的系统中,其他处理器能够优先利用被由一个处理器利用频度减少的缓存条目,能够有效利用尺寸有限的缓存存储装置。
根据以上所述,能够将非有效的缓存条目最优先作为置换对象,并且,作为处理器的执行状态,除休眠模式和通常运行模式以外还设置与通常运行模式相比更以低速时钟运行的低耗电模式,当休眠模式时,将该处理器所利用的缓存条目完全优先作为置换对象,当低耗电模式时,使该处理器所利用的缓存条目在一定程度上优先作为置换对象。
另外,在一个处理器从通常运行模式转移至低耗电模式(这里是指以低速时钟运行的模式)的情况等下,低耗电模式中的处理器与休眠模式不同,虽然低速但还在运行。因此,不是将该低耗电模式的处理器所利用的缓存条目一律设定为最早被使用过的状态,而是根据处理器的执行状态,能够变更成为置换对象的缓存条目的优先级。据此,低耗电模式的处理器在一定程度上优先作为置换对象,所以能够有效利用缓存条目。
另外,本实施例5并没有采用数据一律从缓存条目无效化的方法,所以根据设备等的状态,转移至休眠模式或低耗电运行模式的处理器再次回到通常运行模式时,能够有效利用已被使用过的缓存条目。在回到通常运行模式的情况下,二级缓存存储装置用LRU算法选择置换对象。
(实施例6)
图16是表示本发明实施例6中的计算机系统1300的结构的图。图16所示的计算机系统1300包括:存储器113、周边模块群114、以及集成电路1301。
集成电路1301包括:缓存存储装置1302、处理器112、以及状态寄存器115。缓存存储装置1302包括:缓存存储数据存储器1310至1313、缓存条目设定电路1321、置换对象选择电路1316、访问对象选择电路1317、缓冲器1318、监视电路1319、以及输入输出电路1320。缓存条目设定电路1321包括:参照时刻计算电路1314以及OS执行状态存储电路1315。
实施例6中的缓存存储装置1302、缓存存储数据存储器1310至1313、缓存条目设定电路1321、置换对象选择电路1316、访问对象选择电路1317、缓冲器1318、监视电路1319、输入输出电路1320、参照时刻计算电路1314、以及OS执行状态存储电路1315分别具有与实施例1中的缓存存储装置111、缓存存储数据存储器130至133、缓存条目设定部141、置换对象选择部136、访问对象选择部137、缓冲器1318、监视部139、输入输出部140、参照时刻计算部134、以及OS执行状态存储部135相同的功能。
如此,缓存存储装置1302、状态寄存器115、以及处理器112能够搭载在一个集成电路上。
此外,上述的具体实施方式主要包括具有以下结构的发明。
本发明所涉及的共享缓存控制装置包括:主存储部;缓存存储装置,被多个操作系统或多个处理器共享,且具备存储从上述主存储部读取的数据的多个缓存条目;监视部,监视用于控制让上述多个操作系统运行的处理器或向上述多个处理器供给的电力的电力控制命令;缓存条目设定部,发生缓存未命中,从上述多个缓存条目之中选择成为置换对象的缓存条目时,利用基于上述电力控制命令而被变更的上述多个操作系统或上述多个处理器的执行状态,将执行了上述电力控制命令的上述操作系统或上述处理器利用过的缓存条目设定为已被使用过的状态;以及置换对象选择部,将由上述缓存条目设定部设定为已被使用过的状态的上述缓存条目,作为成为置换对象的缓存条目而选择。
本发明所涉及的共享缓存控制方法包括:缓存存储步骤,将数据存储在被多个操作系统或多个处理器共享,且具备存储从主存储部读取的数据的由多个缓存条目构成的缓存存储装置中;监视步骤,监视用于控制让上述多个操作系统运行的处理器或向上述多个处理器供给的电力的电力控制命令;缓存条目设定步骤,当从上述多个缓存条目之中选择成为置换对象的缓存条目时,利用基于上述电力控制命令而被变更的上述多个操作系统或上述多个处理器的上述执行状态,将执行了上述电力控制命令的上述操作系统或上述处理器所 利用的缓存条目设定为已被使用过的状态;以及置换对象选择步骤,将上述缓存条目设定步骤设定为已被使用过的状态的上述缓存条目,作为成为置换对象的缓存条目而选择。
本发明所涉及的集成电路包括:缓存存储装置,被多个操作系统或多个处理器共享,且具备存储从主存储装置读取的数据的多个缓存条目;监视电路,监视用于控制让上述多个操作系统运行的处理器或向上述多个处理器供给的电力的电力控制命令;缓存条目设定电路,当从上述多个缓存条目之中选择成为置换对象的缓存条目时,利用基于上述电力控制命令而被变更的上述多个操作系统或上述多个处理器的执行状态,将执行了上述电力控制命令的上述操作系统或上述处理器所利用的缓存条目设定为已被使用过的状态;以及置换对象选择电路,将由上述缓存条目设定电路设定为已被使用过的状态的上述缓存条目,作为成为置换对象的缓存条目而选择。
根据这些结构,缓存存储装置被多个操作系统或多个处理器共享,且具备存储从主存储部读取的数据的多个缓存条目。用于控制让多个操作系统运行的处理器或向多个处理器供给的电力的电力控制命令被监视。而且,当从多个缓存条目之中选择成为置换对象的缓存条目时,利用基于电力控制命令而被变更的多个操作系统或多个处理器的执行状态,执行了电力控制命令的操作系统或处理器利用过的缓存条目被设定为已被使用过的状态。然后,被设定为已被使用过的状态的缓存条目作为成为置换对象的缓存条目而被选择。
因此,当多个操作系统或多个处理器共享缓存存储装置时,因执行状态发生变化,其他操作系统或其他处理器能够优先利用一个操作系统或一个处理器不利用的缓存存储装置内的缓存条目,多个操作系统或多个处理器能够有效利用一个缓存存储装置。
另外,较为理想的是,上述共享缓存控制装置中,上述电力控制命令至少包括指示上述操作系统的运行停止的休眠命令;上述执行状态至少包含让上述操作系统以高速时钟运行的通常运行模式、以及让上述操作系统的运行停止的休眠模式;上述缓存条目设定部,将上述休眠模式的上述操作系统所利用的缓存条目的已被使用过的状态,设定为比上述通常运行模式的上述操作系统所利用的缓存条目的已被使用过的状态更早,上述置换对象选择部,将由上述缓存条目设定部设定为最早被使用过的状态的上述缓存条目,作为成为置换对象的缓存条目而选择。
根据这种结构,电力控制命令至少包含指示操作系统的运行停止的休眠命令,执行状态至少包含让操作系统以高速时钟运行的通常运行模式、以及让操作系统的运行停止的休眠模式。休眠模式的操作系统所利用的缓存条目的已被使用过的状态被设定为比通常运行模式的操作系统所利用的缓存条目的已被使用过的状态更早。而且,被设定为最早被使用 过的状态的缓存条目,作为成为置换对象的缓存条目而被选择。
因此,通常运行模式的操作系统能够使用休眠模式的操作系统使用的缓存条目,多个操作系统能够有效利用一个缓存存储装置。
另外,较为理想的是,上述共享缓存控制装置中,上述缓存条目包含:用于识别使用该缓存条目的操作系统的操作系统标识符;按照该缓存条目被参照的时刻被进行计数,且被参照的时刻越早其值越大的参照时刻计数值;以及数据,上述缓存条目设定部包含:存储基于上述电力控制命令而变更的上述多个操作系统的执行状态,以及作为根据上述执行状态预先设定的值、且对应于上述通常运行模式的值大于对应于上述休眠模式的值的执行状态值的执行状态存储部;针对每一多个缓存条目分别生成包括上述执行状态值和上述参照时刻计数值的参照时刻数据的参照时刻数据生成部,上述置换对象选择部,比较由上述参照时刻数据生成部生成的各上述多个缓存条目的上述参照时刻数据,将与上述参照时刻数据中包含的上述执行状态值最大的上述参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而选择。
根据这种结构,缓存条目包含:用于识别使用该缓存条目的操作系统的操作系统标识符;根据该缓存条目被参照的时刻被进行计数,且被参照的时刻越早其值越大的参照时刻计数值;以及数据。执行状态存储部存储基于电力控制命令而变更的多个操作系统的执行状态、以及作为根据执行状态预先设定的值、且与休眠模式相对应的值大于与通常运行模式相对应的值的执行状态值。而且,针对每一多个缓存条目分别生成包括执行状态值和参照时刻计数值的参照时刻数据,生成的每一多个缓存条目的参照时刻数据被进行比较,与参照时刻数据中包含的执行状态值最大的参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而被选择。
因此,通过比较与各缓存条目相对应的执行状态值,休眠模式的操作系统使用的缓存条目被确定,能够容易地选择成为置换对象的缓存条目。
另外,较为理想的是,上述共享缓存控制装置中,上述置换对象选择部,比较由上述参照时刻数据生成部生成的每一上述多个缓存条目的上述参照时刻数据,当上述参照时刻数据中包含的上述执行状态值全部相同时,将与上述参照时刻数据中包含的上述参照时刻计数值最大的上述参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而选择。
根据这种结构,每一多个缓存条目的参照时刻数据被进行比较,当参照时刻数据中包含的执行状态值全部相同时,与参照时刻数据中包含的参照时刻计数值最大的参照时刻数 据相对应的缓存条目,作为成为置换对象的缓存条目而被选择。
因此,即使利用多个缓存条目的各操作系统的执行状态相同时,由于根据缓存条目被参照的时刻,成为置换对象的缓存条目被选择,所以能够进一步确实地选择成为置换对象的缓存条目。
另外,较为理想的是,上述共享缓存控制装置中,上述电力控制命令至少包含指示上述处理器的运行停止的休眠命令,上述执行状态至少包含让上述处理器以高速时钟运行的通常运行模式、以及让上述处理器的运行停止的休眠模式;上述缓存条目设定部将上述休眠模式的上述处理器所利用的缓存条目的已被使用过的状态设定为比上述通常运行模式的上述处理器所利用的缓存条目的已被使用过的状态更早,上述置换对象选择部,将由上述缓存条目设定部设定为最早被使用过的状态的上述缓存条目,作为成为置换对象的缓存条目而选择。
根据这种结构,电力控制命令至少包含指示处理器的运行停止的休眠命令,执行状态至少包含让处理器以高速时钟运行的通常运行模式、以及让处理器的运行停止的休眠模式。休眠模式的处理器所利用的缓存条目的已被使用过的状态被设定为比通常运行模式的处理器所利用的缓存条目的已被使用过的状态更早。而且,被设定为最早被使用过的状态的缓存条目,作为成为置换对象的缓存条目而被选择。
因此,通常运行模式的处理器能够使用休眠模式的处理器使用的缓存条目,多个处理器能够有效利用一个缓存存储装置。
另外,较为理想的是,上述共享缓存控制装置中,上述缓存条目包含:用于识别使用该缓存条目的处理器的处理器标识符;根据该缓存条目被参照的时刻被进行计数,且被参照的时刻越早其值越大的参照时刻计数值;以及数据,上述缓存条目设定部包含:存储基于上述电力控制命令而被变更的上述多个处理器的执行状态,以及作为根据上述执行状态预先设定的值、且对应于上述通常运行模式的值大于对应于上述休眠模式的值的执行状态值的执行状态存储部;针对每一上述多个缓存条目分别生成包括上述执行状态值和上述参照时刻计数值的参照时刻数据的参照时刻数据生成部,上述置换对象选择部,比较由上述参照时刻数据生成部生成的每一上述多个缓存条目的上述参照时刻数据,将与上述参照时刻数据中包含的上述执行状态值最大的上述参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而选择。
根据这种结构,缓存条目包含:用于识别使用该缓存条目的处理器的处理器标识符;根据该缓存条目被参照的时刻被进行计数,且被参照的时刻越早其值越大的参照时刻计数 值;以及数据。执行状态存储部存储基于电力控制命令而变更的多个处理器的执行状态、以及作为根据执行状态预先设定的值、且对应于休眠模式值大于对应于通常运行模式的值的执行状态值。而且,针对每一多个缓存条目分别生成包括执行状态值和参照时刻计数值的参照时刻数据,生成的每一多个缓存条目的参照时刻数据被进行比较,与参照时刻数据中包含的执行状态值最大的参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而被选择。
因此,通过比较与各缓存条目相对应的执行状态值,休眠模式的处理器使用的缓存条目被确定,所以能够容易地选择成为置换对象的缓存条目。
另外,较为理想的是,上述共享缓存控制装置中,上述置换对象选择部,比较由上述参照时刻数据生成部生成的每一上述多个缓存条目的上述参照时刻数据,当上述参照时刻数据中包含的上述执行状态值全部相同时,将与上述参照时刻数据中包含的上述参照时刻计数值最大的上述参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而选择。
根据这种结构,每一多个缓存条目的参照时刻数据被进行比较,当参照时刻数据中包含的执行状态值全部相同时,与参照时刻数据中包含的参照时刻计数值最大的参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而被选择。
因此,即使利用多个缓存条目的各处理器的执行状态相同,由于根据缓存条目被参照的时刻,成为置换对象的缓存条目被选择,所以能够进一步确实地选择构成置换对象的缓存条目。
另外,较为理想的是,上述共享缓存控制装置中,上述缓存条目包含:用于识别使用该缓存条目的操作系统的操作系统标识符;根据该缓存条目被参照的时刻被进行计数,且被参照的时刻越早其值越大的参照时刻计数值;以及数据,上述缓存条目设定部包含:存储上述操作系统的执行状态、以及表示根据上述执行状态加算于上述参照时刻计数值的值的未使用时刻加算值的执行状态存储部;将与使用上述缓存条目的上述操作系统的执行状态相对应的上述未使用时刻加算值加算于上述缓存条目中包含的上述参照时刻计数值,并针对按照每一上述多个缓存条目分别生成包括上述参照时刻计数值的参照时刻数据的参照时刻数据生成部,上述置换对象选择部,将与由上述参照时刻数据生成部生成的多个参照时刻数据中包含的多个参照时刻计数值之中的、值最大的上述参照时刻计数值相对应的上述缓存条目,作为成为置换对象的缓存条目而选择。
根据此结构,缓存条目包含:用于识别使用该缓存条目的操作系统的操作系统标识符; 根据该缓存条目被参照的时刻被进行计数,且被参照的时刻越早其值越大的参照时刻计数值;以及数据。另外,执行状态存储部存储操作系统的执行状态、以及表示根据执行状态加算于参照时刻计数值的值的未使用时刻加算值。而且,与使用缓存条目的操作系统的执行状态相对应的未使用时刻加算值加算于缓存条目中包含的参照时刻计数值,针对每一多个缓存条目分别生成包括参照时刻计数值的参照时刻数据。然后,与生成的多个参照时刻数据中包含的多个参照时刻计数值之中的、值最大的参照时刻计数值相对应的缓存条目,作为成为置换对象的缓存条目而被选择。
因此,根据使用缓存条目的操作系统的执行状态、以及该缓存条目被参照的时刻,成为置换对象的缓存条目被选择,所以能够选择使用可能性最少的缓存条目。
另外,较为理想的是,上述共享缓存控制装置中,上述缓存条目包含:用于识别使用该缓存条目的处理器的处理器标识符;根据该缓存条目被参照的时刻被进行计数,且被参照的时刻越早其值越大的参照时刻计数值;以及数据,上述缓存条目设定部包含:存储上述处理器的执行状态、以及表示根据上述执行状态加算于上述参照时刻计数值的值的未使用时刻加算值的执行状态存储部;将与使用上述缓存条目的上述处理器的执行状态相对应的上述未使用时刻加算值加算于上述缓存条目中包含的上述参照时刻计数值,并针对每一上述多个缓存条目分别生成包括上述参照时刻计数值的参照时刻数据的参照时刻数据生成部,上述置换对象选择部,将与由上述参照时刻数据生成部生成的多个参照时刻数据中包含的多个参照时刻计数值之中的、值最大的上述参照时刻计数值相对应的上述缓存条目,作为成为置换对象的缓存条目而选择。
根据此结构,缓存条目包含:用于识别使用该缓存条目的处理器的处理器标识符;根据该缓存条目被参照的时刻被进行计数,且被参照的时刻越早其值越大的参照时刻计数值;以及数据。另外,执行状态存储部存储处理器的执行状态、以及表示根据执行状态加算于参照时刻计数值的值的未使用时刻加算值。而且,与使用缓存条目的处理器的执行状态相对应的未使用时刻加算值加算于缓存条目中包含的参照时刻计数值,针对每一多个缓存条目分别生成包括参照时刻计数值的参照时刻数据。然后,与生成的多个参照时刻数据中包含的多个参照时刻计数值之中的、值最大的参照时刻计数值相对应的缓存条目,作为成为置换对象的缓存条目而被选择。
因此,根据使用缓存条目的处理器的执行状态、以及该缓存条目被参照的时刻,成为置换对象的缓存条目被选择,所以能够选择使用可能性最少的缓存条目。
另外,较为理想的是,上述共享缓存控制装置中,上述电力控制命令包含:降低供给 到上述处理器的电力的电源控制命令和降低供给到上述处理器的时钟的时钟控制命令之中的至少其中之一,上述执行状态还包含以低速时钟运行的低耗电模式,与上述休眠模式相对应的上述未使用时刻加算值大于与上述低耗电模式相对应的上述未使用时刻加算值。
根据此结构,电力控制命令包含:降低供给到处理器的电力的电源控制命令和降低供给到处理器的时钟的时钟控制命令之中的至少其中之一,执行状态进一步包含以低速时钟运行的低耗电模式。与休眠模式相对应的未使用时刻加算值大于与低耗电模式相对应的未使用时刻加算值,所以与低耗电模式的操作系统或处理器使用的缓存条目相比,能够将休眠模式的操作系统或处理器使用的缓存条目更优先选择作为置换对象。
另外,较为理想的是,上述共享缓存控制装置中,与上述低耗电模式相对应的上述未使用时刻加算值大于与上述通常运行模式相对应的上述未使用时刻加算值,且小于与上述休眠模式相对应的上述未使用时刻加算值。
根据此结构,与低耗电模式相对应的未使用时刻加算值大于与通常运行模式相对应的未使用时刻加算值,且小于与休眠模式相对应的未使用时刻加算值,所以与通常运行模式的操作系统或处理器使用的缓存条目相比,能够将低耗电模式的操作系统或处理器使用的缓存条目更优先选择作为置换对象。
另外,较为理想的是,上述共享缓存控制装置中,上述电力控制命令至少包含指示上述操作系统的运行停止的休眠命令,上述执行状态至少包含让上述操作系统以高速时钟运行的通常运行模式;以及让上述操作系统的运行停止的休眠模式,上述缓存存储装置包含:分别具有上述多个缓存条目的多路,上述缓存条目设定部包含:存储基于上述电力控制命令而变更的上述多个操作系统的执行状态、以及用于识别上述多路之中的上述操作系统所利用的路的路标识符的执行状态存储部;参照上述执行状态存储部,将上述休眠模式的上述操作系统所利用的路设定为成为置换对象的路的同时,将上述通常运行模式的上述操作系统所利用的路设定为不成为置换对象的路的锁定控制部,上述置换对象选择部,从由上述锁定控制部设定为构成置换对象的路的路之中,将最早被使用过的上述缓存条目,作为成为置换对象的缓存条目而选择。
根据此结构,电力控制命令至少包括指示操作系统的运行停止的休眠命令,执行状态至少包含让操作系统以高速时钟运行的通常运行模式;以及让操作系统的运行停止的休眠模式,缓存存储装置还包含分别具有多个缓存条目的多路。另外,执行状态存储部存储基于电力控制命令而变更的多个操作系统的执行状态、以及用于识别多路之中的操作系统所利用的路的路标识符。而且,执行状态存储部被参照,休眠模式的操作系统所利用的路被 设定为成为置换对象的路的同时,通常运行模式的操作系统所利用的路被设定为不成为置换对象的路。然后,从被设定为成为置换对象的路的路之中最早被使用过的缓存条目,作为成为置换对象的缓存条目而被选择。
因此,休眠模式的操作系统所利用的路被设定为成为置换对象的路的同时,通常运行模式的操作系统所利用的路被设定为不成为置换对象的路,所以通常运行模式的操作系统能够使用休眠模式的操作系统使用的缓存条目,不必在缓存条目中搭载操作系统标识符,而是根据操作系统的执行状态就能够有效利用缓存存储装置。
产业上的可利用性
本发明的共享缓存控制装置、共享缓存控制方法以及集成电路,多个操作系统或多个处理器能够有效利用一个缓存存储装置,作为搭载了多个处理器核心或多个操作系统的移动电话以及信息家电机器等的面向嵌入的系统LSI等而有用。另外,除了面向嵌入的系统LSI以外,由多个处理器核心或多个操作系统共享缓存存储装置的计算机系统等中也有效。
Claims (15)
1.一种共享缓存控制装置,被多个操作系统或多个处理器共享,且在存储从主存储部读取的数据的多个缓存条目中选择成为置换对象的缓存条目,其特征在于包括:
管理部,将标识符、参照时刻计数值以及执行状态信息相对应地进行管理,其中,所述标识符用于识别参照了所述缓存条目的所述多个操作系统或所述多个处理器,所述参照时刻计数值是表示所述缓存条目在过去多久之前被所述多个操作系统或所述多个处理器参照过的信息,所述执行状态信息是基于所述多个操作系统或所述多个处理器的执行状态的信息;
监视部,监视用于控制向使所述多个操作系统运行的处理器或向所述多个处理器供给的电力的电力控制命令;
缓存条目设定部,根据所述多个操作系统或所述多个处理器的执行状态,将基于电力控制命令而所述执行状态被变更的所述操作系统或所述处理器利用过的缓存条目设定为已被参照过的缓存条目;以及
置换对象选择部,将被设定为所述已被参照过的缓存条目的所述缓存条目作为成为置换对象的缓存条目而选择。
2.根据权利要求1所述的共享缓存控制装置,其特征在于:
所述电力控制命令至少包含指示所述操作系统的运行停止的休眠命令;
所述执行状态至少包含让所述操作系统以高速时钟运行的通常运行模式、以及让所述操作系统的运行停止的休眠模式;
所述缓存条目设定部,将所述休眠模式的所述操作系统所利用的缓存条目设定为比所述通常运行模式的所述操作系统所利用的缓存条目更早地被参照过的缓存条目;
所述置换对象选择部,将由所述缓存条目设定部设定为最早地被参照过的缓存条目的所述缓存条目作为成为置换对象的缓存条目而选择。
3.根据权利要求2所述的共享缓存控制装置,其特征在于:
所述缓存条目包含:作为所述标识符、用于识别使用该缓存条目的操作系统的操作系统标识符;所述参照时刻计数值;以及数据,
所述参照时刻计数值,根据所述缓存条目被参照的时刻被进行计数,且被设定为被参照的时刻越早其值越大,
所述缓存条目设定部包含:存储基于所述电力控制命令而变更的所述多个操作系统的执行状态,以及作为所述执行状态信息并根据所述执行状态而预先设定的值且对应于所述休眠模式的值大于对应于所述通常运行模式的值的执行状态值的执行状态存储部;针对每一所述多个缓存条目分别生成包含所述执行状态值和所述参照时刻计数值的参照时刻数据的参照时刻数据生成部,
所述置换对象选择部,比较由所述参照时刻数据生成部生成的每一所述多个缓存条目的所述参照时刻数据,将与所述参照时刻数据中包含的所述执行状态值最大的所述参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而选择。
4.根据权利要求3所述的共享缓存控制装置,其特征在于:
所述置换对象选择部,比较由所述参照时刻数据生成部生成的每一所述多个缓存条目的所述参照时刻数据,当所述参照时刻数据中包含的所述执行状态值全部相同时,将与所述参照时刻数据中包含的所述参照时刻计数值最大的所述参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而选择。
5.根据权利要求1所述的共享缓存控制装置,其特征在于:
所述电力控制命令至少包含指示所述处理器的运行停止的休眠命令,
所述执行状态包含让所述处理器以高速时钟运行的通常运行模式、以及让所述处理器的运行停止的休眠模式,
所述缓存条目设定部,将所述休眠模式的所述处理器所利用的缓存条目设定为比所述通常运行模式的所述处理器所利用的缓存条目更早被参照过的缓存条目,
所述置换对象选择部,将由所述缓存条目设定部设定为最早被参照过的缓存条目的所述缓存条目作为成为置换对象的缓存条目而选择。
6.根据权利要求5所述的共享缓存控制装置,其特征在于:
所述缓存条目包含:作为所述标识符、用于识别使用该缓存条目的处理器的处理器标识符;所述参照时刻计数值;以及数据,
所述参照时刻计数值,根据所述缓存条目被参照的时刻被进行计数,且被设定为被参照的时刻越早其值越大,
所述缓存条目设定部包含:存储基于所述电力控制命令而变更的所述多个处理器的执行状态,以及作为所述执行状态信息并根据所述执行状态而预先设定的值且对应于所述休眠模式的值大于对应于所述通常运行模式的值的执行状态值的执行状态存储部;针对每一所述多个缓存条目分别生成包含所述执行状态值和所述参照时刻计数值的参照时刻数据的参照时刻数据生成部,
所述置换对象选择部,比较由所述参照时刻数据生成部生成的每一所述多个缓存条目的所述参照时刻数据,将与所述参照时刻数据中包含的所述执行状态值最大的所述参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而选择。
7.根据权利要求6所述的共享缓存控制装置,其特征在于:
所述置换对象选择部,比较由所述参照时刻数据生成部生成的每一所述多个缓存条目的所述参照时刻数据,当所述参照时刻数据中包含的所述执行状态值全部相同时,将与所述参照时刻数据中包含的所述参照时刻计数值最大的所述参照时刻数据相对应的缓存条目,作为成为置换对象的缓存条目而选择。
8.根据权利要求2所述的共享缓存控制装置,其特征在于:
所述缓存条目包含:作为所述标识符、用于识别使用该缓存条目的操作系统的操作系统标识符;所述参照时刻计数值;以及数据,
所述参照时刻计数值,根据所述缓存条目被参照的时刻被进行计数,且被设定为被参照的时刻越早其值越大,
所述缓存条目设定部包含:存储所述操作系统的执行状态、以及作为所述执行状态信息、且表示根据所述执行状态加算于所述参照时刻计数值的值的未使用时刻加算值的执行状态存储部;将与使用所述缓存条目的所述操作系统的执行状态相对应的所述未使用时刻加算值加算于所述缓存条目中所包含的所述参照时刻计数值,并针对每一所述多个缓存条目分别生成包含所述参照时刻计数值的参照时刻数据的参照时刻数据生成部,
所述置换对象选择部,将与由所述参照时刻数据生成部生成的多个参照时刻数据中包含的多个参照时刻计数值之中的、值最大的所述参照时刻计数值相对应的所述缓存条目,作为成为置换对象的缓存条目而选择。
9.根据权利要求5所述的共享缓存控制装置,其特征在于:
所述缓存条目包含:作为所述标识符、用于识别使用该缓存条目的处理器的处理器标识符;所述参照时刻计数值;以及数据,
所述参照时刻计数值,根据所述缓存条目被参照的时刻被进行计数,且被设定为被参照的时刻越早其值越大,
所述缓存条目设定部包含:存储所述处理器的执行状态、以及作为所述执行状态信息、且表示根据所述执行状态加算于所述参照时刻计数值的值的未使用时刻加算值的执行状态存储部;将与使用所述缓存条目的所述处理器的执行状态相对应的所述未使用时刻加算值加算于所述缓存条目中包含的所述参照时刻计数值,并针对每一所述多个缓存条目分别生成包含所述参照时刻计数值的参照时刻数据的参照时刻数据生成部,
所述置换对象选择部,将与由所述参照时刻数据生成部生成的多个参照时刻数据中包含的多个参照时刻计数值之中的、值最大的所述参照时刻计数值相对应的所述缓存条目,作为成为置换对象的缓存条目而选择。
10.根据权利要求8或9所述的共享缓存控制装置,其特征在于:
所述电力控制命令包含降低供给到所述处理器的电力的电源控制命令和降低供给到所述处理器的时钟的时钟控制命令之中的至少其中之一,
所述执行状态还包含以低速时钟运行的低耗电模式,
与所述休眠模式相对应的所述未使用时刻加算值大于与所述低耗电模式相对应的所述未使用时刻加算值。
11.根据权利要求10所述的共享缓存控制装置,其特征在于:
与所述低耗电模式相对应的所述未使用时刻加算值大于与所述通常运行模式相对应的所述未使用时刻加算值,且小于与所述休眠模式相对应的所述未使用时刻加算值。
12.根据权利要求2所述的共享缓存控制装置,其特征在于:
向所述通常运行模式的转移,根据中断的发生而进行。
13.一种共享缓存控制装置,被多个操作系统或多个处理器共享,且在存储从主存储部读取的数据的多个缓存条目中选择成为置换对象的缓存条目,其特征在于包括:
缓存条目设定部,根据所述多个操作系统或所述多个处理器的执行状态,将基于用于控制向使所述多个操作系统运行的处理器或向所述多个处理器供给的电力的电力控制命令而所述执行状态被变更的所述操作系统或所述处理器利用过的缓存条目设定为已被参照过的缓存条目;
置换对象选择部,将被设定为所述已被参照过的缓存条目的所述缓存条目作为成为置换对象的缓存条目而选择。
14.一种共享缓存控制方法,其特征在于,包括以下步骤:
缓存存储步骤,将数据存储在被多个操作系统或多个处理器共享,且存储从主存储部读取的数据的由多个缓存条目构成的缓存存储装置中;
管理步骤,将标识符、参照时刻计数值以及执行状态相对应地进行管理,其中所述标识符用于识别使用所述缓存条目的操作系统或处理器,所述参照时刻计数值是表示所述缓存条目在过去多久之前被参照过的信息,所述执行状态是所述多个操作系统的执行状态;
监视步骤,监视用于控制向使所述多个操作系统运行的处理器或向所述多个处理器供给的电力的电力控制命令;
缓存条目设定步骤,根据所述多个操作系统或所述多个处理器的执行状态,将基于电力控制命令而所述执行状态被变更的所述操作系统或所述处理器利用过的缓存条目设定为已被参照过的缓存条目;以及
置换对象选择步骤,将被设定为所述已被参照过的缓存条目的所述缓存条目作为成为置换对象的缓存条目而选择。
15.一种集成电路,被多个操作系统或多个处理器共享,且在存储从主存储装置读取的数据的多个缓存条目中选择成为置换对象的缓存条目,其特征在于包括:
管理电路,将标识符、参照时刻计数值以及执行状态相对应地进行管理,其中,所述标识符用于识别使用所述缓存条目的操作系统或处理器,所述参照时刻计数值是表示所述缓存条目在过去多久之前被参照过的信息,所述执行状态是所述多个操作系统的执行状态;
监视部,监视用于控制向使所述多个操作系统运行的处理器或向所述多个处理器供给的电力的电力控制命令;
缓存条目设定电路,根据所述多个操作系统或所述多个处理器的执行状态,将基于电力控制命令而所述执行状态被变更的所述操作系统或所述处理器利用过的缓存条目设定为已被参照过的缓存条目;以及
置换对象选择电路,将被设定为所述已被参照过的缓存条目的所述缓存条目作为成为置换对象的缓存条目而选择。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007318134 | 2007-12-10 | ||
JP318134/2007 | 2007-12-10 | ||
PCT/JP2008/003515 WO2009075070A1 (ja) | 2007-12-10 | 2008-11-28 | 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101652760A CN101652760A (zh) | 2010-02-17 |
CN101652760B true CN101652760B (zh) | 2012-12-26 |
Family
ID=40755320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880006920.7A Expired - Fee Related CN101652760B (zh) | 2007-12-10 | 2008-11-28 | 共享缓存控制装置、共享缓存控制方法及集成电路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110208916A1 (zh) |
JP (1) | JP5226010B2 (zh) |
CN (1) | CN101652760B (zh) |
WO (1) | WO2009075070A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218287B2 (en) * | 2011-01-24 | 2015-12-22 | Panasonic Intellectual Property Corporation Of America | Virtual computer system, virtual computer control method, virtual computer control program, recording medium, and integrated circuit |
US9400544B2 (en) | 2013-04-02 | 2016-07-26 | Apple Inc. | Advanced fine-grained cache power management |
US8984227B2 (en) * | 2013-04-02 | 2015-03-17 | Apple Inc. | Advanced coarse-grained cache power management |
US9396122B2 (en) | 2013-04-19 | 2016-07-19 | Apple Inc. | Cache allocation scheme optimized for browsing applications |
US9652270B2 (en) * | 2014-03-21 | 2017-05-16 | Intel Corporation | Apparatus and method for virtualized computing |
KR102236739B1 (ko) | 2014-11-24 | 2021-04-06 | 에스케이하이닉스 주식회사 | 반도체 패키지 및 이를 포함하는 반도체 시스템 |
CN104571464A (zh) * | 2015-01-19 | 2015-04-29 | 宇龙计算机通信科技(深圳)有限公司 | 一种多操作系统的省电模式控制方法、装置和终端 |
JP2020149597A (ja) * | 2019-03-15 | 2020-09-17 | 株式会社デンソーテン | 制御装置および制御方法 |
US11169806B1 (en) * | 2020-08-10 | 2021-11-09 | Arm Limited | Data processing systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1291747A (zh) * | 2000-11-24 | 2001-04-18 | 李楠甍 | 高速缓存设备及其使用方法 |
CN1609823A (zh) * | 2003-10-23 | 2005-04-27 | 英特尔公司 | 用于维持共享高速缓存一致性的方法和设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218704A (en) * | 1989-10-30 | 1993-06-08 | Texas Instruments | Real-time power conservation for portable computers |
JPH11306076A (ja) * | 1998-04-27 | 1999-11-05 | Oki Tsushin System Kk | 共有メモリ制御装置 |
DE60041444D1 (de) * | 2000-08-21 | 2009-03-12 | Texas Instruments Inc | Mikroprozessor |
JP3620473B2 (ja) * | 2001-06-14 | 2005-02-16 | 日本電気株式会社 | 共有キャッシュメモリのリプレイスメント制御方法及びその装置 |
EP1304620A1 (en) * | 2001-10-17 | 2003-04-23 | Texas Instruments Incorporated | Cache with selective write allocation |
JP3900025B2 (ja) * | 2002-06-24 | 2007-04-04 | 日本電気株式会社 | 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式 |
US6961821B2 (en) * | 2002-10-16 | 2005-11-01 | International Business Machines Corporation | Reconfigurable cache controller for nonuniform memory access computer systems |
US20060143396A1 (en) * | 2004-12-29 | 2006-06-29 | Mason Cabot | Method for programmer-controlled cache line eviction policy |
JP3895760B2 (ja) * | 2006-04-03 | 2007-03-22 | 富士通株式会社 | アドレス変換バッファの電力制御方法及びその装置 |
-
2008
- 2008-11-28 US US12/530,040 patent/US20110208916A1/en not_active Abandoned
- 2008-11-28 WO PCT/JP2008/003515 patent/WO2009075070A1/ja active Application Filing
- 2008-11-28 CN CN200880006920.7A patent/CN101652760B/zh not_active Expired - Fee Related
- 2008-11-28 JP JP2009545333A patent/JP5226010B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1291747A (zh) * | 2000-11-24 | 2001-04-18 | 李楠甍 | 高速缓存设备及其使用方法 |
CN1609823A (zh) * | 2003-10-23 | 2005-04-27 | 英特尔公司 | 用于维持共享高速缓存一致性的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
JP5226010B2 (ja) | 2013-07-03 |
JPWO2009075070A1 (ja) | 2011-04-28 |
WO2009075070A1 (ja) | 2009-06-18 |
US20110208916A1 (en) | 2011-08-25 |
CN101652760A (zh) | 2010-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101652760B (zh) | 共享缓存控制装置、共享缓存控制方法及集成电路 | |
CN101689106B (zh) | 多处理器控制装置、多处理器控制方法以及多处理器控制电路 | |
CN102365627B (zh) | 用于缓存中通路分配及通路锁定的方法 | |
US6640286B2 (en) | Cache control system | |
US7925840B2 (en) | Data processing apparatus and method for managing snoop operations | |
US6748501B2 (en) | Microprocessor reservation mechanism for a hashed address system | |
CN103635875B (zh) | 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段 | |
CN1328669C (zh) | 节能高速缓存及其运行方法 | |
CN101523361A (zh) | 数据处理设备中对共享存储器的写访问请求的处理 | |
CN100541452C (zh) | 处理高速缓存未命中的方法和装置 | |
US20090292892A1 (en) | Method to Reduce Power Consumption of a Register File with Multi SMT Support | |
KR20070072848A (ko) | 밀집된 클러스터에서 통신-병렬성 트레이드 오프를동적으로 관리하는 방법 | |
US8019946B2 (en) | Method and system for securing instruction caches using cache line locking | |
US9201806B2 (en) | Anticipatorily loading a page of memory | |
CN105579978A (zh) | 用于动态控制高速缓存存储器的寻址模式的方法、设备和系统 | |
US20140095794A1 (en) | Apparatus and Method For Reducing The Flushing Time Of A Cache | |
KR20120012377A (ko) | 정보 처리 장치 및 정보 처리 방법 | |
CN103678571A (zh) | 应用于单台多核处理器主机的多线程网络爬虫执行方法 | |
CN102750227A (zh) | 具有动态锁步支持的高速缓存存储器 | |
DE102013202995A1 (de) | Energieeinsparung in Verzweigungsvorhersagen | |
DE102013202992A1 (de) | Energieeinsparung bei Verzweigungsvorhersage | |
CN1728111B (zh) | 清除而不用写回包含失效数据的高速缓存行 | |
Choi et al. | Memory harvesting in {Multi-GPU} systems with hierarchical unified virtual memory | |
CN101571836A (zh) | 用于替换缓存块的方法和系统 | |
CN101008921A (zh) | 基于总线侦听的嵌入式异构多核缓存一致性方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121226 Termination date: 20191128 |
|
CF01 | Termination of patent right due to non-payment of annual fee |