运算处理设备、信息处理设备及控制信息处理设备的方法
【专利摘要】本公开涉及运算处理设备、信息处理设备及控制信息处理设备的方法。运算处理设备包括:运算处理单元,被配置成使用由自身的设备管理的第一数据及由另一运算处理设备管理并从其获取的第二数据进行运算处理;主存储器,被配置成存储第一数据和第三数据;以及控制单元,被配置成包括设置单元和高速缓冲存储器,设置单元将运算处理单元设置成工作状态或非工作状态,高速缓冲存储器保存第一数据、第二数据和第三数据,其中当设置单元将运算处理单元设置成非工作状态并由另一运算处理设备请求触发高速缓冲存储器中的高速缓存命中失误的第三数据时,控制单元从主存储器读取所请求的第三数据,将其保存在高速缓冲存储器中,并将其发送给另一运算处理设备。
【专利说明】运算处理设备、信息处理设备及控制信息处理设备的方法
【技术领域】
[0001]本文中所描述的实施方式涉及运算处理设备、信息处理设备以及控制信息处理设备的方法。
【背景技术】
[0002]运算处理设备被应用于用于共享在信息处理设备中的多个处理器核心中的主存储器中所存储的数据的实际应用。在信息处理设备中多个处理器核心与LI高速缓存的对形成处理器核心组。处理器核心组与L2高速缓存、L2高速缓存控制单元以及主存储器相连接。处理器核心组、L2高速缓存、L2高速缓存控制单元以及存储器的集合被称为集群。
[0003]高速缓存是存储具有较大容量的主存储器中所存储的数据中频繁使用的数据的具有较小容量的存储单元。当主存储器中的数据被临时存储在高速缓存中时,减少了耗时的对存储器访问的频率。高速缓存采用层次结构,其中在较高层实现较高速度的处理并且在较低层实现较大的容量。
[0004]在基于目录的高速缓存一致性控制方案中,如上所述的L2高速缓存存储L2高速缓存所属的集群中的处理器核心组所请求的数据。该处理器核心组被配置成更频繁地从更接近该处理器核心组的L2高速缓存获取数据。另外,由主存储器所属的集群对存储在存储器中的数据进行管理以维持数据一致性。
[0005]此外,集群根据该方案对要管理的存储器中的数据处于什么状态以及数据存储在哪个L2高速缓存中进行管理。而且,当集群接收对存储器的用于获取数据的请求时,集群基于数据的当前状态针对数据获取请求进行适当的处理。然后集群针对数据获取请求进行处理并且更新与数据的状态有关的信息。
[0006]如专利文献I所示,提供了用于减少对采用上述集群结构和上述处理方案的运算处理设备中的主存储器的访问所需要的延迟时间的提议。在专利文献I中,当高速缓存中发生高速缓存命中失误(cache miss)并且该高速缓存没有用于存储数据的可用容量时,该高速缓存所属的集群中的存储器中的数据被优先从高速缓存中清除以产生可用容量。
[0007][专利文献]
[0008][专利文献I]日本公开特许公报N0.2000-66955
【发明内容】
[0009]在上述技术中,由于高速缓存是临时存储,进行用于访问主存储器以将数据回写存储器的处理。主存储器具有较大容量并且可以被安装在与用于处理器核心组和高速缓存的芯片不同的芯片上。因此,对主存储器的访问可以是对于减少数据存取延迟时间的瓶颈。
[0010]因此,本文中所公开的技术的一方面的目的是提供一种运算处理设备、信息处理设备以及控制信息处理设备的方法,以减少对主存储器的访问频率。
[0011]根据实施方式的一方面,提供一种与另一运算处理设备连接的运算处理设备,其包括:运算处理单元,被配置成使用由该运算处理设备自己管理的第一数据以及从另一运算处理单元获取的第二数据来进行运算处理,第二数据被另一运算处理设备管理;主存储器,被配置成存储第一数据和第三数据;以及控制单元,被配置成包括设置单元和高速缓冲存储器,该设置单元将该运算处理单元设置成工作状态或非工作状态,该高速缓冲存储器保存第一数据、第二数据和第三数据,其中,当设置单元将运算处理单元设置成非工作状态并且从另一运算处理设备请求触发高速缓冲存储器中的高速缓存命中失误的第三数据时,控制单元从主存储器读取所请求的第三数据并且在高速缓冲存储器中保存所请求的第三数据并且将所读取的第三数据发送给另一运算处理设备。
【专利附图】
【附图说明】
[0012]图1是示出根据比较例的信息处理设备中的集群配置的一部分的图;
[0013]图2是示意性地示出根据比较例的L2高速缓存控制单元的配置的图;
[0014]图3是示出根据比较例的当集群中生成了数据获取请求时的处理的图;
[0015]图4是示出在如图3所示的处理示例中在L2高速缓存控制单元中进行的处理的图;
[0016]图5是示出根据比较例的当集群中生成了数据获取请求时的处理的图;
[0017]图6是示出在如图5所示的比较例中在L2高速缓存控制单元中进行的处理的图;
[0018]图7是示出当在比较例中进行针对数据的回冲(flush back)处理和回写处理时在集群中进行的处理的图;
[0019]图8是示出在如图7所示的处理示例中在L2高速缓存控制单元中进行的处理的示例的图;
[0020]图9是示出在比较例中用于在信息处理设备中专有地获取数据的处理的示例的图;
[0021]图10是示出在如图9所示的处理示例中在L2高速缓存控制单元中进行的处理的图;
[0022]图11是示出在比较例中当保存被从L2高速缓存逐出的数据时进行的处理的图;
[0023]图12是示意性地示出根据实施方式的信息处理设备中的集群配置的一部分的图;
[0024]图13是示出根据实施方式的集群中的L2高速缓存控制单元的图;
[0025]图14是示出根据实施方式的信息处理设备中处于“开启模式”状态的集群中的处理器核心组的工作模式的图;
[0026]图15是示出在本地集群从主集群中的存储器获取数据时进行的处理的图;
[0027]图16是示出在如图15所示的处理示例中由L2高速缓存控制单元进行的处理的图;
[0028]图17是示出形成根据实施方式的控制器的电路的图;
[0029]图18是在如图15至图17所示的处理示例中L2高速缓存控制单元的时序图;
[0030]图19是示出该实施方式中当从属于本地集群的L2高速缓存逐出数据时进行的处理的图;
[0031]图20是示出在如图19所示的处理示例中在L2高速缓存控制单元中进行的处理的图;
[0032]图21是示出形成图19中所示的处理示例中的控制器的电路的图;
[0033]图22是图19至图21中所示的处理示例中的L2高速缓存控制单元的时序图;
[0034]图23是示出其中在实施方式中的信息处理设备中集群形成多个组的示例的图;以及
[0035]图24是示出根据实施方式的L2高速缓存控制单元的配置示例的图。
【具体实施方式】
[0036]首先,参考附图描述根据一个实施方式的信息处理设备的比较例。
[0037](比较例)
[0038]图1示出了根据比较例的信息处理设备中的集群配置的一部分。如图1所示,集群10包括处理器核心组100、L2高速缓存控制单元101以及存储器102,处理器核心组100包括处理器核心与LI高速缓存的η个(η是自然数)组合。L2高速缓存控制单元101包括L2高速缓存103。与集群10类似,集群20也包括处理器核心组200、L2高速缓存控制单元201、存储器202以及L2高速缓存203并且集群30也包括处理器核心组300、L2高速缓存控制单元301、存储器302以及L2高速缓存303。
[0039]在以下描述中,将请求存储在主存储器中的数据的处理器核心所属的集群称为本地(集群)。另外,将存储被请求的数据的存储器所属的集群称为主(home)(集群)。此外,将不是本地集群并且保存所请求的数据的集群称为远程(集群)。因此,根据数据被请求向哪里或者从哪里请求数据,每个集群可以是本地集群、主集群和/或远程集群。而且,本地集群在某些情况下也作用为主集群用于进行与数据获取请求有关的处理。并且远程集群在某些情况下也作用为主集群。此外,将由主集群管理的主存储器中所存储的数据的状态信息称为目录信息。稍后对上述组成部分的详情进行描述。
[0040]如图1所示,每个集群中的L2高速缓存控制单元经由总线或者互连件与另一 L2高速缓存控制单元连接。在信息处理设备I中,因为存储器空间是所谓平坦的(flat),所以由物理地址唯一地确定主存储器中存储了哪个数据以及存储器属于哪个集群。
[0041]例如,当集群10获取不是存储在存储器102中而是存储在存储器202中的数据时,集群10向存储数据的存储器202所属的集群20发送数据请求。集群20检查数据的状态。此处,数据的状态意为数据的使用状态,例如数据存储在哪个集群中、数据是否被专有地使用以及信息处理设备I中数据的同步处于什么状态。另外,当要获取的数据存储在属于集群20的L2高速缓存203中并且在信息处理设备I中建立了数据的同步时,集群20将数据发送给请求数据的集群10。然后集群20在数据的状态信息中记录数据被发送给集群10并且数据被同步到信息处理设备I中。
[0042]图2示意性地示出了 L2高速缓存控制单元101的配置。L2高速缓存控制单元101包括控制器101a、L2高速缓存103以及目录随机存取存储器(RAM) 104。另外,L2高速缓存103包括标签RAM103a和数据RAM103b。标签RAM103a保存由数据RAM103b保存的块的标签信息。标签信息意为一致性协议控制中与每个数据的使用状态、主存储器中的地址等有关的信息。在使用多个处理器的多处理器环境中,更有可能的是处理器共享相同的数据并且对数据进行访问。因此,在多处理器环境中维持存储在每个高速缓存中的数据的一致性。用于维持各处理器间的数据的一致性的协议被称为一致性协议。MESI协议是这种协议的一个示例。在以下描述中,使用了对具有四个状态即修改、专有、共享以及无效的数据的使用状态进行管理的MESI协议。然而,可用的协议不限于该协议。
[0043]控制器101a使用标签RAM103a来检查存储器块以哪个状态被存储在数据RAM103b中以及数据以哪个状态存在。例如,数据RAM103b是用于保存存储器102中所存储的数据的副本的RAM。目录RAM104是用于承担属于主集群的主存储器的目录信息的RAM。因为目录信息是大量的信息,所以在很多情况下将目录信息存储在主存储器中并且在RAM中布置针对该存储器的高速缓存。然而,在本实施方式中将属于主集群的存储器的目录信息存储在目录RAM104中。
[0044]控制器1la接受来自处理器核心组100或者其他集群中的L2高速缓存控制单元中的控制器的请求。控制器1la根据所接收到的请求的内容将操作请求发送给标签RAM103a、数据RAM103b、目录RAM104、存储器102或者其他集群。并且当所请求的操作完成时,控制器1la将操作结果返回给操作的请求者。
[0045]图3是示出当在集群10中生成了数据获取请求时进行的处理的示例的图。图3中集群10是本地集群和主集群。图3示出了当生成了对属于集群10的存储器102的数据获取请求并且在L2高速缓存103中发生高速缓存命中失误时进行的处理。此处假设当L2高速缓存控制单元接收数据获取请求时在LI高速缓存中发生高速缓存命中失误。
[0046]从本地的集群10中的处理器核心向L2高速缓存控制单元101发送数据的请求。当也是主的集群10中的L2高速缓存控制单元101确定L2高速缓存103不保存数据(命中失误)时,L2高速缓存控制单元101参考存储在目录RAM104中的目录信息。然后L2高速缓存控制单元101基于目录信息进行检查以确定远程集群中的L2高速缓存是否保存该数据。当L2高速缓存控制单元101确定远程集群中的L2高速缓存不保存数据(命中失误)时,L2高速缓存控制单元101向本地的集群10中的存储器102请求数据获取。当存储器102将数据返回给L2高速缓存控制单元101时,L2高速缓存控制单元101将数据存储在L2高速缓存103中的数据RAM103b中。另外,L2高速缓存控制单元101将数据发送给处理器核心组100中的请求数据的处理器核心。此外,L2高速缓存中的标签RAM103a存储信息,该信息指示在数据在信息处理设备I中被同步的状态下获取了数据。此外,目录RAM104存储指示数据被本地的集群10保存的信息。
[0047]当L2高速缓存控制单元101参考标签RAM103a以确定L2高速缓存103中的数据RAM103b不具有用于存储数据的容量时,L2高速缓存控制单元101根据包括随机算法和LRU (最近最少使用)算法的预定算法从L2高速缓存103逐出数据。当L2高速缓存控制单元101参考标签RAM103a以确定要被逐出的数据处于与存储在存储器102中的数据类似的状态时,L2高速缓存控制单元101丢弃要被逐出的数据。另一方面,当L2高速缓存控制单元101参考标签RAM103a以确定要被逐出的数据已经被更新时,L2高速缓存控制单元101将要被逐出的数据回写存储器102。
[0048]因此,将由处理器核心组100中的处理器核心请求的数据存储在L2高速缓存103中的数据RAM103b中的空闲空间中。此外,当处理器核心组100中的处理器核心再次生成针对数据的数据获取请求时,L2高速缓存控制单元101保存数据RAM103b中所存储的数据并且将数据发送给处理器核心(命中)。因此,只要数据没有被从数据RAM103b逐出,L2高速缓存控制单元101就不访问存储器102。
[0049]图4是示出在如图3所示的处理示例中在L2高速缓存控制单元101中进行的处理的图。控制器1la接受来自处理器核心组100中的处理器核心的数据获取请求。数据获取请求包含指示由处理器核心生成了请求、数据获取请求的类型以及存储器中存储数据的地址的信息。控制器1la根据请求的内容启动适当的处理。
[0050]首先,控制器1la检查标签RAM103a以确定在数据RAM103b中是否找到了存储作为数据获取请求的目标的数据的主存储器的块的副本。当控制器1la接收指示没有从标签RAM103a找到该副本的结果(命中失误)时,控制器1la参考目录RAM104以检查作为数据获取请求的目标的数据是否被远程集群保存。控制器1la从目录RAM104接收指示数据没有被集群保存的结果(命中失误),控制器1la向存储器102发送数据的数据获取请求。当控制器1la从存储器102接收数据时,控制器1la将指示数据被主集群保存的信息登记在目录RAM104中。另外,控制器1la将数据的使用状态(“共享”等)的信息存储在标签RAM103a中。此外,控制器1la将数据存储在数据RAM103b。而且,控制器1la将数据发送给处理器核心组100中的请求数据的处理器核心。
[0051]接下来,图5是示出当集群中10中生成了数据获取请求时进行的处理的示例的图。在如图5所示的示例中,集群10是本地集群并且集群20是主集群(home cluster)。本地的集群中10中的处理器核心组100中的处理器核心向集群10中的L2高速缓存103发送数据获取请求。因为所请求的数据未存储在L2高速缓存103中,所以发生了高速缓存命中失误(命中失误)。因此,集群10向作为主的集群20发送针对数据的数据获取请求。集群20中的L2高速缓存控制单元201检查存储在L2高速缓存203中的目录信息。当L2高速缓存控制单元201中的控制器201a确定数据未存储在L2高速缓存203以及远程集群中的L2高速缓存中(命中失误)时,控制器201a向存储器202发送针对数据的数据获取请求。
[0052]当存储器202将数据返回给L2高速缓存控制单元201时,L2高速缓存控制单元201更新存储在目录RAM204中的目录信息。并且L2高速缓存控制单元201将数据发送给本地的并且请求数据的集群10。集群10中的L2高速缓存控制单元101将从集群20中的L2高速缓存控制单元201接收的数据存储在L2高速缓存103中。然后L2高速缓存控制单元101将数据发送给处理器核心组100中请求数据的处理器核心。
[0053]此处,由于以下原因,数据未存储在作为主的集群20中的L2高速缓存203中。第一,从本地的集群10中的处理器核心而不是从作为主的集群20中的处理器核心请求数据。第二,当数据存储在作为主的集群20中的L2高速缓存203中时,这意味着不被作为主的集群20中的处理器核心组200使用的数据被存储在L2高速缓存203中。第三,当这种未使用的数据存储在L2高速缓存203中时,可能从L2高速缓存203逐出被处理器核心组200使用的数据。
[0054]图6是示出在如图5所示的示例中由L2高速缓存控制单元101和L2高速缓存控制单元201进行的处理的图。本地的集群10中的L2高速缓存控制单元101中的控制器1la接受来自处理器核心组100中的处理器核心的数据获取请求。数据获取请求包括指示由处理器核心生成了请求、数据获取请求的类型以及存储器中存储数据的地址的信息。控制器1la根据请求的内容启动适当的处理。
[0055]控制器1la检查标签RAM103a以确定是否在数据RAM103b中找到了存储作为数据获取请求的目标的数据的主存储器的块的副本。当控制器1la接收到指示没有从标签RAM103a找到该副本的结果(命中失误)时,控制器1la将数据的数据获取请求发送给属于作为主的集群20的L2高速缓存控制单元201中的控制器201a。
[0056]当控制器201a接收到数据获取请求时,控制器201a检查目录RAM204以确定作为数据获取请求的目标的数据是否存储在任何集群中的L2高速缓存中。当控制器201a从目录RAM204接收到指示没有在集群中找到数据的结果(命中失误)时,控制器201a向存储器202发送针对数据的数据获取请求。当存储器202将数据返回给控制器201a时,控制器201a将指示数据被请求数据的集群10保存的信息作为数据的使用状态存储在目录RAM204中。然后控制器201a将数据发送给请求数据的集群10中的控制器101a。当集群10中的控制器10 Ia接收到数据时,控制器10 Ia将数据的使用状态(“共享”等)存储在标签RAM103a中。另外,控制器1la将数据存储在数据RAM103b中。此外,控制器1la将数据发送给处理器核心组100中请求数据的处理器核心。
[0057]图7是示出当在比较例中对远程集群执行针对数据的回冲或回写时由集群进行的处理的图。对远程集群回冲意为当集群将从另一集群获取的数据从高速缓存逐出时进行的处理。回冲也意为用于将以下内容通知给主集群的处理:当被逐出的数据没有被更新并且被在信息处理设备I中同步时将数据从对于主集群来说不仅是本地集群还是远程集群的集群逐出,即,被逐出的数据是干净的。针对主集群进行处理以更新目录信息。
[0058]此外,对远程集群回写意为当集群将从另一集群获取的数据从集群中的高速缓存逐出时进行的处理。回写也意为用于通知另一集群以下内容的处理:当被逐出的数据被更新并且未被在信息处理设备I中同步时数据是所谓“脏的”,即被逐出的数据是脏的。如下所述,当在比较例中集群对远程集群执行回冲时,集群将回冲请求发送给从其获取数据的集群而不将数据发送给从其获取数据的集群。相反,当在比较例中集群对远程集群执行回冲时,集群将回写请求发送给从其获取数据的集群并且也将数据发送给从其获取数据的集群,使得从其获取数据的集群将数据存储在存储器中。
[0059]如上所述,当新的数据被存储在L2高速缓存中并且L2高速缓存不具有用于数据的容量时,根据预定算法将存储在L2高速缓存中的数据逐出。在图7中,集群10是本地集群而集群20是主集群。应该注意的是在本示例中集群20也是远程集群。此外,图7中未示出的信息处理设备I中的集群是远程集群。而且,在图7中,因为属于本地的集群10的L2高速缓存103中的数据RAM103b不具有数据容量,所以集群10从存储在数据RAM103b中的数据中逐出要被存储在远程的集群20中的存储器202中的数据。
[0060]在这种情况下,如图7所示,集群10中的L2高速缓存控制单元101将用于从L2高速缓存103逐出数据的请求发送给集群20中的L2高速缓存控制单元201。该请求是回冲请求或者回写请求。应该注意的是回冲请求和回写请求是预定请求的示例。另外,当要被逐出的数据是干净的时,将回冲请求发送给作为主的集群20中的L2高速缓存控制单元201。L2高速缓存控制单元201将指示数据被从请求数据的集群10逐出的信息存储在L2高速缓存控制单元201的目录信息中。
[0061]另一方面,当要被逐出的数据是脏的时,将回写请求和数据发送给作为主的集群20中的L2高速缓存控制单元201。例如,当数据被本地的集群10中的处理器核心组100更新时,数据变成了脏的。另外,L2高速缓存控制单元201将指示数据被从请求数据的集群10逐出的信息存储在目录RAM204中所存储的目录信息中。L2高速缓存控制单元201将数据回写到属于作为主的集群20的存储器202。应该注意的是远程的集群中的处理器核心向作为主的集群20请求数据。也就是说,数据不是被作为主的集群20中的处理器核心组200请求的。当数据存储在作为主的集群20中的L2高速缓存203中时,可以将处理器核心组200请求的其他数据从L2高速缓存203逐出。因此,数据未被存储在作为主的集群20中的L2高速缓存203中。
[0062]图8是示出在如图7所示的示例中在L2高速缓存控制单元101和L2高速缓存控制单元201中进行的处理的图。此处描述了在确定了要从L2高速缓存控制单元101中的L2高速缓存103逐出的数据之后进行的处理。L2高速缓存控制单元101中的控制器1la请求标签RAM103a使数据存储在其中的块无效。此处,当数据是脏的并且控制器1la向作为主的集群20中的控制器201a通知回写请求时,控制器1la从数据RAM103b读取与块对应的数据。并且控制器1la向控制器201a通知回冲请求。或者,控制器1la向控制器201a通知回写请求并且向控制器201a发送数据。当作为主的集群20中的控制器201a接收到请求时,控制器201a使目录RAM204中的指示“数据被请求数据的集群10保存”的信息无效。另外,当控制器201a接收回到写请求时,控制器201a将数据回写到存储器202。
[0063]接下来,图9示出了当本地的集群10专有地获取存储在作为主的集群20中的存储器202中的数据时进行的处理。例如,当数据被处理器核心更新时,使用专有数据获取请求。专有数据获取请求是用于确保在某一时刻一个集群(集群中的高速缓存)保存所请求的数据并且其他集群不保存数据的请求。当其他集群中的一个集群中的L2高速缓存在数据被更新时保存数据时,数据不能在信息处理设备I中被同步。因此,专有数据获取请求是用于防止这种情况的请求。
[0064]首先,本地的集群10中的处理器核心组100中的处理器核心向L2高速缓存控制单元101请求获取数据。当L2高速缓存控制单元101接收到数据获取请求时,L2高速缓存控制单元101检查数据是否存储在L2高速缓存103中。当数据未存储在L2高速缓存103中(命中失误)时,L2高速缓存控制单元101向作为主的集群20中的L2高速缓存控制单元201发送针对数据的专有数据获取请求。当L2高速缓存控制单元201接收到专有数据获取请求时,L2高速缓存控制单元参考存储在L2高速缓存控制单元201中的目录信息。目录信息指示包括主集群的哪个集群保存数据。然后L2高速缓存控制单元201向保存由目录信息指示的数据的集群发送数据的丢弃请求。
[0065]在如图9所示的示例中,数据被存储在L2高速缓存203中。因此,L2高速缓存控制单元201将数据从L2高速缓存203丢弃。L2高速缓存控制单元201将所丢弃的数据发送给L2高速缓存控制单元101。另外,L2高速缓存控制单元201将指示请求数据的集群10是保存数据的唯一集群的信息存储在目录信息中。然后请求数据的集群10将数据存储在L2高速缓存103中。
[0066]图10是示出在如图9所示的示例中由L2高速缓存控制单元101和高速缓存控制单元201进行的处理的图。本地的集群10中的L2高速缓存控制单元101中的控制器1la接受来自处理器核心组100中的处理器核心的专有数据获取请求。数据获取请求包括指示由处理器核心生成了请求的信息、指示请求是专有数据获取请求的信息以及存储器中存储数据的地址。控制器1la根据请求的内容启动适当的处理。
[0067]控制器1la检查标签RAM103a以确定在数据RAM103b中是否找到了存储作为数据获取请求的目标的数据的存储器中的块的副本。当控制器1la接收指示未从标签RAM103a找到副本的结果(命中失误)时,控制器1la向属于作为主的集群20的L2高速缓存控制单元201的控制器201a发送数据的数据获取请求。
[0068]当控制器201a接收到数据获取请求时,控制器201a检查目录RAM204以确定所请求的数据是否被存储在任何集群中的L2高速缓存中。当控制器201a接收到指示数据被作为主的集群20保存的结果(命中)时,控制器201a向标签RAM203a发送数据的无效请求。另外,控制器201a从数据RAM203b读取数据。然后控制器201a使目录RAM204中的指示数据被主集群保存的信息无效。此外,控制器201a将指示请求数据的集群10保存数据的信息添加到目录RAM204。而且,控制器201a将数据发送给请求数据的集群10中的控制器1la0当集群10中的控制器1la接收到数据时,控制器1la将数据的使用状态登记在标签RAM103a中。此外,控制器1la将数据存储在数据RAM103b中。然后控制器1la将数据发送给处理器核心组中的请求数据的处理器核心。
[0069]接下来,图11示出了当本地的集群10将作为主的集群20中的存储器202中所存储的数据从L2高速缓存103逐出时进行的处理。如图11所示,当集群10将存储在集群20中的存储器202中的数据从L2高速缓存103逐出时,集群10将所逐出的数据发送给L2高速缓存控制单元201。L2高速缓存控制单元201将所接收的数据存储在L2高速缓存103中。因此,在比较例中,与数据的使用状态无关地,从本地集群逐出的数据被保存在主集群中的L2高速缓存中。
[0070]然而,在上述比较例中,作为主的集群20中的处理器核心组200在信息处理设备I中工作。因此,集群10中的处理器核心组100与集群20中的处理器核心组200共享集群20中的L2高速缓存203。因此,实质上减少了对于处理器核心组200可用的L2高速缓存203的容量。另外,L2高速缓存203中涉及复杂的控制以确定例如优先将从哪个处理器核心组请求的哪个数据存储在L2高速缓存203中。
[0071]此外,与数据的使用状态无关地将从本地的集群逐出的数据发送给作为主的集群20。也就是说,在与其中数据被更新并且在本地的集群10中变成脏的的情况不同的情况下,将从集群10逐出的数据发送给集群20。因此,即使在被逐出的数据在信息处理设备I中被同步,即意味着数据是干净的的情况下,仍将数据发送给集群20。因此,这可以导致各集群之间的事务增加。
[0072]考虑到上述比较例,下面参考附图对根据一个实施方式的信息处理设备的示例进行描述。在下面的描述中,对每个集群中的运算核心组的工作状态和非工作状态进行控制。因此,如下文中所描述的,可以在不增加通信量的情况下提高L2高速缓存中的数据的高速缓存命中的可能性。另外,在本实施方式中,针对L2高速缓存中所存储的每个数据不涉及复杂的管理和控制。
[0073](实施方式)
[0074]图12是示意性地示出本实施方式中的信息处理设备2中的集群配置的一部分。如图12所示,与比较例类似,信息处理设备2包括集群50、集群60和集群70。集群50、集群60和集群70对应于运算处理设备的示例。另外,因为本地、主和远程之间的差异与如上所述的比较例类似,所以此处省略了对本地、主和远程的描述。集群50包括处理器核心组500、L2高速缓存控制单元501以及存储器502。L2高速缓存控制单元501包括L2高速缓存503。集群60也包括处理器核心组600、L2高速缓存控制单元601、存储器602以及L2高速缓存603,集群70也包括处理器核心组700、L2高速缓存控制单元701、存储器702以及L2高速缓存703。处理器核心组500、600和700对应于运算处理单元的示例。另外,L2高速缓存503、603和703对应于高速缓冲存储器的示例。此外,L2高速缓存控制单元501、601和701对应于控制单元的示例。而且,集群50、60和70形成一个组。该组表示承担一个应用程序中所进行的处理的集群的组合。然而,形成组的准则不限于此表示,并且集群可以被任意地划分成组。
[0075]如图12所示,每个集群中的L2高速缓存控制器经由总线或互连件相互连接。在信息处理设备2中,存储器空间是所谓平坦的,使得根据物理地址唯一地确定存储了哪个数据以及数据存储在主存储器中的哪个集群中。
[0076]图13是示出集群50中的L2高速缓存控制单元501的图。L2高速缓存控制单元501包括控制器501a、寄存器501b、L2高速缓存503以及目录RAM504。另外,L2高速缓存503包括标签RAM503a和数据RAM503b。此外,寄存器501b对应于设置单元的示例。因为标签RAM503a、数据RAM503b以及目录RAM504的功能与比较例类似,所以此处省略详细的描述。
[0077]寄存器501b控制根据本实施方式的信息处理设备2中的集群50的工作模式。在本实施方式中,工作模式包括“关闭模式”、“开启并且处理器核心工作模式”以及“开启并且处理器核心不工作模式”三种模式。工作模式“关闭模式”是其中集群如以上比较例中所描述地工作的工作模式。工作模式“开启并且处理器核心工作模式”是其中集群将处理器核心组设置成工作状态并且进行本实施方式中的处理的工作模式(开启模式)。工作模式“开启并且处理器核心不工作模式”是其中集群将处理器核心组设置成非工作状态并且进行本实施方式中的处理的工作模式。稍后对这些工作模式中的处理的详情进行描述。
[0078]控制器501a读取针对寄存器501b的设置值,并且根据设置值切换工作模式。另夕卜,在本实施方式中的信息处理设备中,在应用程序执行之前切换工作模式。另外,信息处理设备2的OS (操作系统)控制每个集群中的寄存器的工作模式的切换。应该注意的是,可以根据信息例如应用程序的存储器使用,由信息处理设备2的用户显式地指示OS或者由OS自主地指示,来进行工作模式的切换。
[0079]图14是示出当信息处理设备2中的工作模式是“开启模式”时集群50、集群60和集群70中的处理器核心组的工作状态的图。作为示例,对组中的集群50、集群60和集群70进行控制以使得集群50、集群60和集群70之一中的处理器核心组工作。在图14中,集群50的工作模式是“开启并且处理器核心工作模式”而集群60和集群70的工作模式是“开启并且处理器核心不工作模式”。因此,集群50中的处理器核心组500处于工作状态而处理器核心组600和处理器核心组700处于非工作状态。作为示例,在信息处理设备2中形成了例如集群50、集群60和集群70的集群组。并且每个组对应于信息处理设备2中所进行的一系列处理。
[0080]图15是示出当本地的集群50获取存储在作为主的集群60中的存储器602中的数据时进行的处理的图。与比较例类似,当L2高速缓存503中未找到从处理器核心组500请求的数据(高速缓存命中失误)时,L2高速缓存控制单元501从集群60中的L2高速缓存控制单元601请求数据。在本实施方式中,描述了其中数据未存储在L2高速缓存603中的情况。L2高速缓存控制单元601从存储器602获取数据并且将所获取的数据存储在L2高速缓存控制单元603中。另外,L2高速缓存控制单元601将所获取的数据发送给L2高速缓存控制单元501。并且L2高速缓存控制单元501将从L2高速缓存控制单元601接收的数据发送给处理器核心组500。
[0081]图16是示出在如图15所示的示例中的L2高速缓存控制单元501和L2高速缓存控制单元601中进行的处理的图。如上所述,L2高速缓存控制单元501包括控制器501a、寄存器501b、L2高速缓存503以及目录RAM504,L2高速缓存控制单元601包括控制器601a、寄存器601b、L2高速缓存603以及目录RAM604。另外,L2高速缓存503包括标签RAM503a以及数据RAM503b,L2高速缓存603包括标签RAM603a以及数据RAM603b。
[0082]另外,图17示出了控制器601a中的电路的一部分。如图17所示的控制器601a中的电路是在集群60的工作模式是“开启并且处理器核心不工作模式”时所使用的控制电路。当如图17所示的控制器601a从存储器602获取从控制器501a请求的数据时,控制器601a将数据存储在数据RAM603b中。另外,将与数据的使用状态有关的信息分别存储在标签RAM603a和目录RAM604中。应该注意的是,在图17中,表示将数据存储在标签RAM中的TAGSave (标签保存)、表示将数据存储在数据RAM中的DataSave (数据保存)以及表示更新目录RAM中的目录信息的DirectoryUpdate (SaveLocal)(目录更新(本地保存))是用于指示操作的信号,并且其他信号是标志信号。
[0083]如图17所示,当集群60的工作模式是“开启并且处理器核心不工作模式”时,与门601d输出“I”。在其他情况下,与门601d输出“O”。另外,当与门601d输出“I”并且从存储器602获取了数据时,与门60Ie输出“I”。在其他情况下,与门60Ie输出“O”。
[0084]当与门601e输出“I”或者根据比较例中的处理将数据的使用状态的信息存储在标签RAM603a中时,或门601f输出用于将数据的信息存储在标签RAM603a中的指令信号TagSave2 (标签保存2)。当与门601e输出“I”或者根据比较例中的处理将数据存储在数据RAM603b中时,或门601 g输出用于将数据存储在数据RAM603b中的指令信号DataSave2(数据保存2)。当与门601e输出“I”或者根据比较例中的处理更新了目录RAM604中的目录信息时,或门60 Ih输出用于更新目录RAM604中的目录信息的指令信号DirectoryUpdate(SaveLocal) 2 (目录更新(本地保存)2)。因为或门601f至或门601h之后的电路是常规电路,所以此处省略了对后续电路的详细描述和附图。
[0085]当控制器601a从存储器602获取到所请求的数据时,控制器601a使用如图17所示的控制电路来将所获取的数据存储在数据RAM603b中。另外,控制器601a将所获取的数据发送到控制器501a。
[0086]图18是如图15至图17所示的示例中的L2高速缓存控制单元501和L2高速缓存控制单元601的时序图。首先,在SlOl中,L2高速缓存控制单元501中的控制器501a接收来自处理器核心组500中的处理器核心的数据获取请求。数据获取请求包括地址的信息,该地址指示数据存储在主存储器中哪个集群中。在S102中,控制器501a检查标签RAM503a以确定与地址相关联的数据是否存储在数据RAM503b中。在本实施方式中,在S103中,标签RAM503a将指示在数据RAM503b中未找到数据的信息(高速缓存命中失误)返回给控制器501ao
[0087]在S104中,控制器501a使用包括在来自处理器核心组500的数据获取请求中的数据的地址来确定数据是存储在存储器602中的数据。因此,控制器501a将数据的数据获取请求发送给控制器601a。
[0088]在S105中,控制器601a检查目录RAM604中的目录信息以确定集群所属的组中的数据的使用状态。数据的使用状态包括指示例如数据是否被其他集群获取的信息。在本实施方式中,在S106中,目录RAM604确定出目录信息指示数据未存储在集群中的数据RAM中以及数据RAM603b中(高速缓存命中失误)。然后目录RAM604将指示高速缓存命中失误的信息发送给控制器601a。
[0089]在S107中,控制器601a请求存储器602读取从控制器501a请求的数据。在S108中,存储器602将所请求的数据发送给控制器601a。当控制器601a从存储器602获取到数据时,如图17所示的控制电路输出用于将所获取的数据存储在数据RAM603b中的指令。另夕卜,如图17所示的控制电路还输出用于将指示所获取的数据的使用状态是“共享”的信息存储在标签RAM603a中的指令信号。此外,如图17所示的控制电路还输出用于将指示所获取的数据被作为主的集群20以及本地的集群10保存的信息存储在目录RAM604中的指令信号。
[0090]因此,在S109中,控制器601a请求标签RAM603a更新标签RAM603a中的信息,以指示所获取的数据以“共享”状态存储在数据RAM603b中。在SllO中,标签RAM603a存储指示数据以“共享”状态存储在数据RAM603b中的信息。并且标签RAM603a通知控制器601a完成了存储处理。在Slll中,控制器601a请求数据RAM603b存储数据。在S112中,当数据RAM603b存储了数据时,数据RAM603b通知控制器601a完成了存储处理。
[0091 ] 在SI 12中,控制器601a请求目录RAM604更新目录信息以指示数据被也是远程的集群50以及作为主的集群60保存。在SI 14中,目录RAM604根据请求更新目录信息并且通知控制器601a完成了更新处理。在S115中,控制器601a将数据发送给控制器501a。
[0092]在SI 16中,控制器501a请求标签RAM503a更新标签RAM503a中的信息以指示从控制器601a获取的数据被存储在数据RAM503b中。此外,控制器501a也请求标签RAM503a将数据的使用状态存储为“共享”。在S117中,当标签RAM503a进行所请求的处理时,标签RAM503a通知控制器501a完成了处理。在S118中,控制器501a请求数据RAM503b存储数据。在S119中,当数据RAM503b存储了数据时,数据RAM503b通知控制器501a完成了存储处理。在S120中,控制器501a将数据发送给处理器核心组500中请求数据的处理器核心。
[0093]在本实施方式中,将从存储器602获取的数据存储在作为主的集群60中的L2高速缓存603中。另外,作为主的集群60中的处理器核心组600被寄存器601b设置成非工作状态。因此,对L2高速缓存603的数据存储不是由处理器核心组600进行的。因此,与比较例相反,处理器核心组500没有遭遇存储器容量的所谓解体拆用(cannibalizat1n),即L2高速缓存603的存储器空间与另一集群中的处理器核心组共享的情况。
[0094]接下来,图19是示出根据本实施方式当存储在集群60中的存储器602中的数据从属于集群50的L2高速缓存503中逐出时进行的处理的图。与比较例类似,当L2高速缓存控制单元501将新的数据存储在L2高速缓存503中并且L2高速缓存503不具有用于数据的容量时,L2高速缓存控制单元501根据预定算法将数据从L2高速缓存503逐出。L2高速缓存控制单元501参考标签RAM503以确定要被逐出的数据是干净的还是脏的。当确定要被逐出的数据是脏的时,L2高速缓存控制单元501向L2高速缓存控制单元601通知回写请求并且将数据发送给L2高速缓存控制单元601。另一方面,当确定要被逐出的数据是干净的时,L2高速缓存控制单元501向L2高速缓存控制单元601通知回冲请求并且将数据发送给L2高速缓存控制单元601。
[0095]图20是示出在如图19所述的示例中在L2高速缓存控制单元501和L2高速缓存控制单元601中进行的处理的图。如上所述,L2高速缓存控制单元501包括控制器501a、寄存器501b、L2高速缓存503以及目录RAM504,L2高速缓存控制单元601包括控制器601a、寄存器601b、L2高速缓存603以及目录RAM604。另外,L2高速缓存503包括标签RAM503a以及数据RAM503b,L2高速缓存603包括标签RAM603a以及数据RAM603b。
[0096]另外,图21示出了如图19所示的示例中的控制器601a中的电路的一部分。如图21所示的控制器601a中的电路是当集群60是主并且工作模式是“开启并且处理器核心不工作模式”时所使用的控制电路。当作为主的集群60从本地的集群50接收回写和数据时,根据如图21所示的控制器601a中的电路的控制,将数据存储在L2高速缓存603中。另外,根据如图21所示的控制器601a中的电路的控制,不将数据存储在存储器602中。应该注意的是,在图21中,表示将数据存储在标签RAM中的标签保存(TAGSave)以及表示将数据存储在数据RAM的数据保存(DataSave )、表示更新目录RAM中的目录信息的目录更新(本地保存)(DirectoryUpdate (SaveLocal))以及表示将数据存储在主存储器中的存储器保存(MemorySave)是用于指示操作的信号并且其他信号是标志信号。
[0097]当集群60的工作模式是“开启并且处理器核心不工作模式”时,与门601i输出“I”。在其他情况下,与门601i输出“O”。另外,当与门601 i输出“I”并且从例如本地的集群50接收到回写请求时,与门601 j输出“I”。
[0098]当与门601j输出“I”或者根据比较例中的处理将与数据的使用状态有关的数据存储在标签RAM603a时,或门601k输出用于将数据存储在标签RAM603a中的指令信号标签保存2 (TagSave2)0当与门601 j输出“I”或者根据比较例中的处理将数据存储在数据RAM603b中时,或门6011输出用于将数据存储在数据RAM603b中的指令信号数据保存2(DataSave2)。当与门601 j输出“I”或者根据比较例中的处理将目录RAM604中的目录信息更新时,或门60Im输出用于更新目录RAM604中的目录信息的指令信号目录更新(本地保存 2) (DirectoryUpdate (SaveLocal2))。
[0099]当集群60的工作模式是“开启并且处理器核心不工作模式”并且设置了例如来自集群50的回写请求的信号时,反相器601η禁止将数据存储在存储器602中。另一方面,当集群60的工作模式是“关闭模式”或者“处理器核心工作”并且根据比较例中的处理将数据存储在存储器602中时,与门601ο输出用于将数据存储在存储器602中的指令信号存储器保存2 (MemorySavd)。或者,当没有通知来自例如集群50的回写请求并且根据比较例中的处理将数据存储在存储器602中时,与门601输出指令信号存储器保存(MemorySave2)。因为或门60Ik至或门60Im以及与门601之后的电路是常规电路,所以此处省略了对后续电路的详细描述和附图。
[0100]因此,当集群60中的处理器核心组600处于工作状态时,与门601 j输出“O”。因此,当从本地的集群50接收回到写请求(请求是回写(RequestIsWriteBack))时,不发出标签保存2、数据保存2、目录更新(本地保存)2以及存储器保存2。或者,基于标签保存、数据保存、目录更新(本地保存)以及存储器保存进行根据比较例中的处理的处理。
[0101]相反,当集群60的工作模式是“开启并且处理器核心不工作模式”并且控制器601a接收回写请求时,与门601j输出“I”。在这种情况下,或门6011输出“I”并且将逐出的数据存储在L2高速缓存603中的数据RAM603b中。另外,因为反相器601η输出“0”,所以与门601ο输出“O”并且不将数据存储在存储器602中。应该注意的是,反相器601η和与门601ο的集合是阻断单元的示例。
[0102]此处,如图20所示,控制器501a请求标签RAM503a登记将数据从数据RAM503b逐出(无效)。接下来,控制器501a从数据RAM503b检索要逐出的数据。当所检索的数据不在信息处理设备2中被同步,即所检索的数据是脏的时,控制器501a向作为主的集群60中的控制器601a通知回写请求,并且将逐出的数据发送给控制器601a。
[0103]作为主的集群60中的控制器601a接收来自本地的集群50中的控制器501a的上述回写请求。并且,控制器601a存储伴随回写请求接收的数据,即从数据RAM503b逐出的数据。因此,控制器601a对存储在标签RAM603a中的信息进行更新以指示数据被存储在数据RAM603b中。然后控制器601a请求目录RAM604更新目录信息以指示数据被添加到作为主的集群60中。此外,控制器601a请求目录RAM604指示数据被从本地的集群50丢弃。
[0104]图22是如图19至图21所示的示例中L2高速缓存控制单元501和L2高速缓存控制单元601的时序图。在以下描述中,将时序图中的步骤缩写为S。图22示出了从数据RAM503b逐出的数据是脏的并且控制器501a向控制器601a发送回写请求的情况。在S201中,控制器501a请求标签RAM503a登记指示数据被从数据RAM503b逐出(无效的)的信息。应该注意的是,使用算法以预先确定逐出哪个数据。在S202中,标签RAM503a将指示登记数据的使用状态是“无效”的信息。此外,标签RAM503a响应于请求向控制器501a发送指示数据的使用状态的信息(修改;值=M)。在S203中,控制器501a使用从标签RAM503a获取的地址来从数据RAM503b读取数据。在S204中,数据RAM503b读取与包括在来自控制器501a的请求中的地址相匹配的地址的数据,并且将数据发送给控制器501a。
[0105]当控制器501a接收到从RAM503b逐出的数据时,控制器501a在S205中向控制器601a发送数据的回写请求。因为在S202中从标签RAM503a检索的数据的使用状态是脏的,所以控制器501a向控制器601a发送回写请求。另外,控制器501a向控制器601a发送地址,该地址指示数据被存储在主存储器中的哪个集群中。
[0106]在S206中,控制器601a请求标签RAM603a登记指示从控制器501a发送的数据被存储在数据RAM603b中的信息。另外,控制器601a请求标签RAM603a登记指示数据被存储在主存储器中的哪个集群中的地址。在S207中,标签RAM603a根据来自控制器601a的请求进行登记处理,并且通知控制器601a完成了处理。在S208中,控制器601a将数据存储在数据RAM603b中。在S209中,数据RAM603b存储数据,并且通知控制器601a完成了存储处理。
[0107]在S210中,控制器601a请求目录RAM604更新目录信息以指示数据被作为主的集群60保存。此外,控制器601a请求目录RAM604更新目录信息以指示将数据从本地的以及远程的集群50丢弃。在S211中,目录RAM604更新目录信息,并且通知控制器601a完成了更新处理。在S212中,控制器601a通知控制器501a完成了上述处理。
[0108]应该注意的是,在集群中目录RAM通过使用与每个集群对应的位来使用目录信息以管理哪个集群检索存储在数据RAM中的每个数据。例如,针对每个数据,位“I”用于保存数据的集群而位“O”用于不保存数据的集群。因此,例如,在上述S210中,目录RAM604将针对集群60的位设置成“I”并且将针对集群50的位设置成“O”。在以下描述中,目录RAM改变目录信息中的位以登记每个数据的使用状态。然而,用于管理目录RAM中的集群所检索的数据的状态的配置不限于上述实施方式。因为当控制器501a向控制器601a发送回冲请求时由控制器601a进行的处理与上述相同,所以此处省略了对处理的详细描述。
[0109]参考图23描述当根据本实施方式对每个集群的工作模式进行控制时所获得的优点的示例。图23示出了在信息处理设备3中配置了集群的多个组的示例。应该注意的是,根据每个集群中的L2高速缓存控制单元中的寄存器的设置值来设置每个集群的工作模式。具体地,当设置值是O时工作模式被设置成“关闭模式”,当设置值是I时工作模式被设置成“开启并且处理器核心工作模式”,当设置值是2时工作模式被设置成“开启并且处理器核心不工作模式”。在图23中,集群800a至集群800d形成组800。另外,集群900a形成组900。组900被用于执行应用程序,对于该应用程序,所需要的存储器空间等于或小于组900中的主存储器的容量。因为集群800a至集群SOOd以及集群900a的配置与如上所述的集群50和集群60的配置类似,所以此处省略了对集群的组成部分的详细描述和附图。
[0110]例如,假设允许组800外的集群900a访问组800内的集群800c。另外,假设集群900a向集群800c发送专有数据获取请求以获取存储在集群800c中的L2高速缓存中的数据。在这种情况下,将数据移动到集群900a并且将数据从集群800c中的L2高速缓存丢弃。此外,集群800c管理目录信息以指示数据被组800外的集群900a保存。在如图23所示的示例中,允许组外的集群访问工作模式是“开启并且处理器核心工作模式”的组内的集群。因此,存储在工作模式是“开启并且处理器核心不工作模式”的组内的集群中的L2高速缓存中的数据不被组外的集群获取。因此,不存以下顾虑:在当工作模式是“开启并且处理器核心工作模式”的集群获取工作模式是“开启并且处理器核心不工作模式”的集群中的数据时,由于数据被组外的集群保存,所以需要从组外的集群检索数据。因此,组中的每个集群可以有效地从彼此获取数据。
[0111]在上述比较例中,除了本地集群之外,远程集群和主集群中的处理器核心的组也处于工作状态。因此,本地集群中的L2高速缓存与其他集群交换数据。因此,由本地集群中的处理器核心组使用的L2高速缓存的容量实质上减少了。此外,在对L2高速缓存中的数据的管理中,部分因为确定了在L2高速缓存中优先获取或者存储来自哪个集群的哪个数据,所以确定准则和控制更复杂。因此,与本实施方式中的配置相比,比较例中的配置可能导致更大的与成本相关的开销和与性能相关的开销。而且,在比较例中数据管理涉及例如存储指示每个数据从哪个集群被逐出的附加信息。相反,本实施方式不涉及对这种附加信息的管理。
[0112]此外,可以将通用规则应用于其中针对用于高速缓存一致性控制的协议的处理器核心组的工作模式是“开启模式”和“关闭模式” 二者的情况。例如,此处假设当处理器核心组的工作模式是“开启模式”时使用了采用四个状态即修改、专有、共享和无效的MESI协议。在这种情况下,当处理器核心组的工作模式是“关闭模式”时可以使用该MESI协议而不需要定义新的状态。另外,可以针对“开启模式”模式和“关闭模式”模式相应地修改控制处理。因此,当根据本实施方式的配置被应用于根据比较例的配置时可以减少工作量。
[0113]虽然对本实施方式进行了如上描述,但是信息处理设备的配置和处理不限于如上所述的内容,而是可以在本发明的技术范围内对本文中所描述的实施方式进行各种变化。例如,在上述实施方式中,当本地的集群50向作为主的集群60发送专有数据获取请求时,根据比较例进行处理。也就是说,集群60从L2高速缓存603获取所请求的数据,将数据发送给集群50并且将数据从L2高速缓存603丢弃。专有数据获取请求是主要在请求数据的集群更新集群中的数据时所使用的数据获取请求。因此,当数据被从集群50逐出时,因为数据是脏的,所以数据与回写请求一起被发送给作为主的集群60。
[0114]然而,在信息处理设备中执行的某些应用程序中,由本地集群使用专有数据获取请求而获取的数据可能在不被更新的情况下从本地集群丢弃。也就是说,干净的数据从本地集群被丢弃。考虑到这一点,可以采用以下配置:当本地集群向主集群发送专有数据获取请求时,不将所请求的数据从主集群中的L2高速缓存丢弃。然而,当生成了专有数据获取请求时,在主集群中的标签RAM中不将所请求的数据的使用状态登记成“专有的”而是登记成“共享的”。因此,当修改协议以使得以这种方式管理数据时,与比较例相比,集群之间的事务以及集群与主存储器之间的事务不增加。这样,从信息处理设备的规格以及在信息处理设备中执行的应用程序的类型的角度来看,信息处理设备的系统架构可以任意采用配置。
[0115]另外,对于“开启模式”和“关闭模式”间的切换,当使用超过集群中的主存储器的容量的大量的存储器空间来执行应用程序时,可以将工作模式设置成“开启模式”。因此,当使用不超过集群中的存储器的容量的存储器空间来执行应用程序时,将工作模式设置成“关闭模式”。这样,可以针对信息处理设备中的每个应用程序灵活地采用存储器和L2高速缓存的适当的配置。而且,可以省略针对每个应用程序建立存储器和L2高速缓存的配置的努力。
[0116]此外,当针对每个集群单独地控制对处理器核心组的电力供应时,可以关闭在工作模式被设置成“开启模式”时被设置在非工作状态的处理器核心组。因此,可以在信息处理设备中减少不必要的电力消耗。应该注意的是,在上述实施方式中可以采用所谓电源门控来控制对每个处理器核心组的电力供应。
[0117]而且,在上述描述中,采用寄存器来将处理器核心组设置成工作状态或者非工作状态。可以采用如图24所示的配置代替如上述实施方式中所描述的L2高速缓存控制单元的配置,来将处理器核心组设置成工作状态或者非工作状态。如图24所示,L2高速缓存控制单元1001包括控制器1001a、寄存器1001b、选择器10lc以及L2高速缓存1003。另外,L2高速缓存1003包括标签RAM1003a、数据RAM1003b以及目录RAM1004。在L2高速缓存控制单元1001中,选择器10lc参考寄存器10lb的设置值来确定图中未示出的来自集群中的处理器核心组的请求是否被阻断。例如,当寄存器10lb的设置值是“开启”时,选择器10lc阻断来自集群中的处理器核心组的请求。也就是说,实质上可以将处理器核心组设置成非工作状态。此外,当寄存器10lb的设置值是“关闭”时,选择器10lc将来自处理器核心组的请求发送给控制器1001a。也就是说,实质上可以将处理器核心组设置成工作状态。在上述实施方式中也可以采用这样的配置:其中在一组集群的外部执行应用程序以控制组中的每个集群的工作模式。
[0118]?计算机可读记录介质>>
[0119]可以将使计算机实现上述任何功能的程序记录在计算机可读记录介质上。此处,功能包括例如寄存器的设置。另外,通过使计算机从记录介质读入程序并且执行程序,可以提供程序的功能。此处,计算机包括例如集群和控制器。
[0120]本文中所提及的计算机可读记录介质指示通过电操作、磁操作、光学操作、机械操作或者化学操作来存储例如数据和程序的信息,并且使所存储的信息能够被从计算机读取的记录介质。可从计算机拆卸的这种记录介质包括例如软盘、磁光盘、CD-ROM,CD-R/W,DVD,DAT,8毫米磁带以及存储器卡。固定于计算机的这种记录介质包括硬盘和ROM (只读存储器)。
[0121]根据一个实施方式的运算处理设备、信息处理设备以及控制信息处理设备的方法可以减少对主存储器的访问频率。
【权利要求】
1.一种运算处理设备,其与另一运算处理设备连接,包括: 运算处理单元,被配置成使用由自身的运算处理设备管理的第一数据以及由另一运算处理设备管理并且从另一运算处理设备获取的第二数据来进行运算处理; 主存储器,被配置成存储所述第一数据和第三数据;以及 控制单元,被配置成包括设置单元和高速缓冲存储器,所述设置单元将所述运算处理单元设置成工作状态或非工作状态,所述高速缓冲存储器保存所述第一数据、所述第二数据和所述第三数据,其中,当所述设置单元将所述运算处理单元设置成所述非工作状态并且由另一运算处理设备请求触发所述高速缓冲存储器中的高速缓存命中失误的所述第三数据时,所述控制单元从所述主存储器读取所请求的第三数据,并且在所述高速缓冲存储器中保存所请求的第三数据,并且将所读取的第三数据发送给另一运算处理设备。
2.根据权利要求1所述的运算处理设备,其中,当所述控制单元从另一运算处理设备接收到所述第三数据的经修改数据以及回写请求时,所述控制单元将所述经修改数据存储在所述高速缓冲存储器中。
3.根据权利要求2所述的运算处理设备,其中,当所述控制单元从另一运算处理设备接收到第三数据的经修改数据以及回写请求时,所述控制单元将所述经修改数据存储在所述高速缓冲存储器中并且禁止将所述经修改数据存储在所述主存储器中。
4.一种信息处理设备,其包括与另一运算处理设备连接的运算处理设备,其中, 所述运算处理设备 包括: 运算处理单元,被配置成使用由自身的运算处理设备管理的第四数据以及由另一运算处理设备管理并且从另一运算处理设备获取的第五数据来进行运算处理, 主存储器,被配置成存储所述第四数据和第六数据;以及 控制单元,被配置成包括设置单元和高速缓冲存储器,所述设置单元将所述运算处理单元设置成工作状态或非工作状态,所述高速缓冲存储器保存所述第四数据、所述第五数据和所述第六数据,其中,当所述设置单元将所述运算处理单元设置成所述非工作状态并且由另一运算处理设备请求所述第六数据从而使得在所述高速缓冲存储器中发生高速缓存命中失误时,所述控制单元从所述主存储器读取所请求的第六数据,并且在所述高速缓冲存储器中保存所请求的第六数据,并且将所读取的第六数据发送给另一运算处理设备。
5.根据权利要求4所述的信息处理设备,其中,当所述控制单元从另一运算处理设备接收到所述第六数据的经修改数据以及回写请求时,所述控制单元将所述经修改数据存储在所述高速缓冲存储器中。
6.根据权利要求5所述的信息处理设备,其中,当所述控制单元从另一运算处理设备接收到所述第六数据的经修改数据以及回写请求时,所述控制单元将所述经修改数据存储在所述高速缓冲存储器中并且禁止将所述经修改数据存储在所述主存储器中。
7.一种控制信息处理设备的方法,所述方法包括: 将包括在所述信息处理设备中的第一运算处理设备的运算处理单元设置成非工作状态,所述运算处理单元使用由所述第一运算处理设备管理的第七数据,以及由与所述第一运算处理设备连接的第二运算处理设备管理并且从所述第二运算处理设备获取的第八数据,来进行运算处理; 当请求存储在所述第一运算处理设备的主存储器中的第九数据并且在所述第一运算处理设备的用于保存所述第七数据、所述第八数据和所述第九数据的高速缓冲存储器中发生高速缓存命中失误时,从所述主存储器读取所述第九数据,并且将所述第九数据保存在所述高速缓冲存储器中;以及 将从所述主存储器读取的所述第九数据发送给所述第二运算处理设备。
8.根据权利要求7所述的控制所述信息处理设备的方法,其中当所述第一运算处理设备从所述第二运算处理设备接收到所述第九数据的经修改数据以及回写请求时,将所述经修改数据存储在所述第一运算处理设备的所述高速缓冲存储器中。
9.根据权利要求7所述的控制所述信息处理设备的方法,其中,当所述第一运算处理设备从所述第二运算处理设备接收到所述第九数据的经修改数据以及回写请求时,将所述经修改数据存储在所述第一运算处理设备的所述高速缓冲存储器中并且禁止将所述经修改数据存储在所述主 存储器中。
【文档编号】G06F12/08GK104077249SQ201410086349
【公开日】2014年10月1日 申请日期:2014年3月10日 优先权日:2013年3月25日
【发明者】青柳隆宏, 池田吉朗 申请人:富士通株式会社