《运算处理设备、信息处理设备及控制信息处理设备的方法.pdf》由会员分享,可在线阅读,更多相关《运算处理设备、信息处理设备及控制信息处理设备的方法.pdf(42页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104077249A43申请公布日20141001CN104077249A21申请号201410086349122申请日20140310201306281120130325JPG06F13/16200601G06F12/0820060171申请人富士通株式会社地址日本神奈川县72发明人青柳隆宏池田吉朗74专利代理机构北京集佳知识产权代理有限公司11227代理人杜诚陈炜54发明名称运算处理设备、信息处理设备及控制信息处理设备的方法57摘要本公开涉及运算处理设备、信息处理设备及控制信息处理设备的方法。运算处理设备包括运算处理单元,被配置成使用由自身的设备管理的第一数据及由另一运算。
2、处理设备管理并从其获取的第二数据进行运算处理;主存储器,被配置成存储第一数据和第三数据;以及控制单元,被配置成包括设置单元和高速缓冲存储器,设置单元将运算处理单元设置成工作状态或非工作状态,高速缓冲存储器保存第一数据、第二数据和第三数据,其中当设置单元将运算处理单元设置成非工作状态并由另一运算处理设备请求触发高速缓冲存储器中的高速缓存命中失误的第三数据时,控制单元从主存储器读取所请求的第三数据,将其保存在高速缓冲存储器中,并将其发送给另一运算处理设备。30优先权数据51INTCL权利要求书2页说明书16页附图23页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书16页附图2。
3、3页10申请公布号CN104077249ACN104077249A1/2页21一种运算处理设备,其与另一运算处理设备连接,包括运算处理单元,被配置成使用由自身的运算处理设备管理的第一数据以及由另一运算处理设备管理并且从另一运算处理设备获取的第二数据来进行运算处理;主存储器,被配置成存储所述第一数据和第三数据;以及控制单元,被配置成包括设置单元和高速缓冲存储器,所述设置单元将所述运算处理单元设置成工作状态或非工作状态,所述高速缓冲存储器保存所述第一数据、所述第二数据和所述第三数据,其中,当所述设置单元将所述运算处理单元设置成所述非工作状态并且由另一运算处理设备请求触发所述高速缓冲存储器中的高速缓。
4、存命中失误的所述第三数据时,所述控制单元从所述主存储器读取所请求的第三数据,并且在所述高速缓冲存储器中保存所请求的第三数据,并且将所读取的第三数据发送给另一运算处理设备。2根据权利要求1所述的运算处理设备,其中,当所述控制单元从另一运算处理设备接收到所述第三数据的经修改数据以及回写请求时,所述控制单元将所述经修改数据存储在所述高速缓冲存储器中。3根据权利要求2所述的运算处理设备,其中,当所述控制单元从另一运算处理设备接收到第三数据的经修改数据以及回写请求时,所述控制单元将所述经修改数据存储在所述高速缓冲存储器中并且禁止将所述经修改数据存储在所述主存储器中。4一种信息处理设备,其包括与另一运算处。
5、理设备连接的运算处理设备,其中,所述运算处理设备包括运算处理单元,被配置成使用由自身的运算处理设备管理的第四数据以及由另一运算处理设备管理并且从另一运算处理设备获取的第五数据来进行运算处理,主存储器,被配置成存储所述第四数据和第六数据;以及控制单元,被配置成包括设置单元和高速缓冲存储器,所述设置单元将所述运算处理单元设置成工作状态或非工作状态,所述高速缓冲存储器保存所述第四数据、所述第五数据和所述第六数据,其中,当所述设置单元将所述运算处理单元设置成所述非工作状态并且由另一运算处理设备请求所述第六数据从而使得在所述高速缓冲存储器中发生高速缓存命中失误时,所述控制单元从所述主存储器读取所请求的第。
6、六数据,并且在所述高速缓冲存储器中保存所请求的第六数据,并且将所读取的第六数据发送给另一运算处理设备。5根据权利要求4所述的信息处理设备,其中,当所述控制单元从另一运算处理设备接收到所述第六数据的经修改数据以及回写请求时,所述控制单元将所述经修改数据存储在所述高速缓冲存储器中。6根据权利要求5所述的信息处理设备,其中,当所述控制单元从另一运算处理设备接收到所述第六数据的经修改数据以及回写请求时,所述控制单元将所述经修改数据存储在所述高速缓冲存储器中并且禁止将所述经修改数据存储在所述主存储器中。7一种控制信息处理设备的方法,所述方法包括将包括在所述信息处理设备中的第一运算处理设备的运算处理单元设。
7、置成非工作状态,所述运算处理单元使用由所述第一运算处理设备管理的第七数据,以及由与所述第一运算处理设备连接的第二运算处理设备管理并且从所述第二运算处理设备获取的第八数据,来进行运算处理;当请求存储在所述第一运算处理设备的主存储器中的第九数据并且在所述第一运算权利要求书CN104077249A2/2页3处理设备的用于保存所述第七数据、所述第八数据和所述第九数据的高速缓冲存储器中发生高速缓存命中失误时,从所述主存储器读取所述第九数据,并且将所述第九数据保存在所述高速缓冲存储器中;以及将从所述主存储器读取的所述第九数据发送给所述第二运算处理设备。8根据权利要求7所述的控制所述信息处理设备的方法,其中。
8、当所述第一运算处理设备从所述第二运算处理设备接收到所述第九数据的经修改数据以及回写请求时,将所述经修改数据存储在所述第一运算处理设备的所述高速缓冲存储器中。9根据权利要求7所述的控制所述信息处理设备的方法,其中,当所述第一运算处理设备从所述第二运算处理设备接收到所述第九数据的经修改数据以及回写请求时,将所述经修改数据存储在所述第一运算处理设备的所述高速缓冲存储器中并且禁止将所述经修改数据存储在所述主存储器中。权利要求书CN104077249A1/16页4运算处理设备、信息处理设备及控制信息处理设备的方法技术领域0001本文中所描述的实施方式涉及运算处理设备、信息处理设备以及控制信息处理设备的方。
9、法。背景技术0002运算处理设备被应用于用于共享在信息处理设备中的多个处理器核心中的主存储器中所存储的数据的实际应用。在信息处理设备中多个处理器核心与LI高速缓存的对形成处理器核心组。处理器核心组与L2高速缓存、L2高速缓存控制单元以及主存储器相连接。处理器核心组、L2高速缓存、L2高速缓存控制单元以及存储器的集合被称为集群。0003高速缓存是存储具有较大容量的主存储器中所存储的数据中频繁使用的数据的具有较小容量的存储单元。当主存储器中的数据被临时存储在高速缓存中时,减少了耗时的对存储器访问的频率。高速缓存采用层次结构,其中在较高层实现较高速度的处理并且在较低层实现较大的容量。0004在基于目。
10、录的高速缓存一致性控制方案中,如上所述的L2高速缓存存储L2高速缓存所属的集群中的处理器核心组所请求的数据。该处理器核心组被配置成更频繁地从更接近该处理器核心组的L2高速缓存获取数据。另外,由主存储器所属的集群对存储在存储器中的数据进行管理以维持数据一致性。0005此外,集群根据该方案对要管理的存储器中的数据处于什么状态以及数据存储在哪个L2高速缓存中进行管理。而且,当集群接收对存储器的用于获取数据的请求时,集群基于数据的当前状态针对数据获取请求进行适当的处理。然后集群针对数据获取请求进行处理并且更新与数据的状态有关的信息。0006如专利文献1所示,提供了用于减少对采用上述集群结构和上述处理方。
11、案的运算处理设备中的主存储器的访问所需要的延迟时间的提议。在专利文献1中,当高速缓存中发生高速缓存命中失误(CACHEMISS)并且该高速缓存没有用于存储数据的可用容量时,该高速缓存所属的集群中的存储器中的数据被优先从高速缓存中清除以产生可用容量。0007专利文献0008专利文献1日本公开特许公报NO200066955发明内容0009在上述技术中,由于高速缓存是临时存储,进行用于访问主存储器以将数据回写存储器的处理。主存储器具有较大容量并且可以被安装在与用于处理器核心组和高速缓存的芯片不同的芯片上。因此,对主存储器的访问可以是对于减少数据存取延迟时间的瓶颈。0010因此,本文中所公开的技术的一。
12、方面的目的是提供一种运算处理设备、信息处理设备以及控制信息处理设备的方法,以减少对主存储器的访问频率。0011根据实施方式的一方面,提供一种与另一运算处理设备连接的运算处理设备,其包括运算处理单元,被配置成使用由该运算处理设备自己管理的第一数据以及从另一运说明书CN104077249A2/16页5算处理单元获取的第二数据来进行运算处理,第二数据被另一运算处理设备管理;主存储器,被配置成存储第一数据和第三数据;以及控制单元,被配置成包括设置单元和高速缓冲存储器,该设置单元将该运算处理单元设置成工作状态或非工作状态,该高速缓冲存储器保存第一数据、第二数据和第三数据,其中,当设置单元将运算处理单元设。
13、置成非工作状态并且从另一运算处理设备请求触发高速缓冲存储器中的高速缓存命中失误的第三数据时,控制单元从主存储器读取所请求的第三数据并且在高速缓冲存储器中保存所请求的第三数据并且将所读取的第三数据发送给另一运算处理设备。附图说明0012图1是示出根据比较例的信息处理设备中的集群配置的一部分的图;0013图2是示意性地示出根据比较例的L2高速缓存控制单元的配置的图;0014图3是示出根据比较例的当集群中生成了数据获取请求时的处理的图;0015图4是示出在如图3所示的处理示例中在L2高速缓存控制单元中进行的处理的图;0016图5是示出根据比较例的当集群中生成了数据获取请求时的处理的图;0017图6是。
14、示出在如图5所示的比较例中在L2高速缓存控制单元中进行的处理的图;0018图7是示出当在比较例中进行针对数据的回冲(FLUSHBACK)处理和回写处理时在集群中进行的处理的图;0019图8是示出在如图7所示的处理示例中在L2高速缓存控制单元中进行的处理的示例的图;0020图9是示出在比较例中用于在信息处理设备中专有地获取数据的处理的示例的图;0021图10是示出在如图9所示的处理示例中在L2高速缓存控制单元中进行的处理的图;0022图11是示出在比较例中当保存被从L2高速缓存逐出的数据时进行的处理的图;0023图12是示意性地示出根据实施方式的信息处理设备中的集群配置的一部分的图;0024图1。
15、3是示出根据实施方式的集群中的L2高速缓存控制单元的图;0025图14是示出根据实施方式的信息处理设备中处于“开启模式”状态的集群中的处理器核心组的工作模式的图;0026图15是示出在本地集群从主集群中的存储器获取数据时进行的处理的图;0027图16是示出在如图15所示的处理示例中由L2高速缓存控制单元进行的处理的图;0028图17是示出形成根据实施方式的控制器的电路的图;0029图18是在如图15至图17所示的处理示例中L2高速缓存控制单元的时序图;0030图19是示出该实施方式中当从属于本地集群的L2高速缓存逐出数据时进行的处理的图;0031图20是示出在如图19所示的处理示例中在L2高速。
16、缓存控制单元中进行的处理的图;说明书CN104077249A3/16页60032图21是示出形成图19中所示的处理示例中的控制器的电路的图;0033图22是图19至图21中所示的处理示例中的L2高速缓存控制单元的时序图;0034图23是示出其中在实施方式中的信息处理设备中集群形成多个组的示例的图;以及0035图24是示出根据实施方式的L2高速缓存控制单元的配置示例的图。具体实施方式0036首先,参考附图描述根据一个实施方式的信息处理设备的比较例。0037(比较例)0038图1示出了根据比较例的信息处理设备中的集群配置的一部分。如图1所示,集群10包括处理器核心组100、L2高速缓存控制单元10。
17、1以及存储器102,处理器核心组100包括处理器核心与L1高速缓存的N个(N是自然数)组合。L2高速缓存控制单元101包括L2高速缓存103。与集群10类似,集群20也包括处理器核心组200、L2高速缓存控制单元201、存储器202以及L2高速缓存203并且集群30也包括处理器核心组300、L2高速缓存控制单元301、存储器302以及L2高速缓存303。0039在以下描述中,将请求存储在主存储器中的数据的处理器核心所属的集群称为本地(集群)。另外,将存储被请求的数据的存储器所属的集群称为主(HOME)(集群)。此外,将不是本地集群并且保存所请求的数据的集群称为远程(集群)。因此,根据数据被请求。
18、向哪里或者从哪里请求数据,每个集群可以是本地集群、主集群和/或远程集群。而且,本地集群在某些情况下也作用为主集群用于进行与数据获取请求有关的处理。并且远程集群在某些情况下也作用为主集群。此外,将由主集群管理的主存储器中所存储的数据的状态信息称为目录信息。稍后对上述组成部分的详情进行描述。0040如图1所示,每个集群中的L2高速缓存控制单元经由总线或者互连件与另一L2高速缓存控制单元连接。在信息处理设备1中,因为存储器空间是所谓平坦的(FLAT),所以由物理地址唯一地确定主存储器中存储了哪个数据以及存储器属于哪个集群。0041例如,当集群10获取不是存储在存储器102中而是存储在存储器202中的。
19、数据时,集群10向存储数据的存储器202所属的集群20发送数据请求。集群20检查数据的状态。此处,数据的状态意为数据的使用状态,例如数据存储在哪个集群中、数据是否被专有地使用以及信息处理设备1中数据的同步处于什么状态。另外,当要获取的数据存储在属于集群20的L2高速缓存203中并且在信息处理设备1中建立了数据的同步时,集群20将数据发送给请求数据的集群10。然后集群20在数据的状态信息中记录数据被发送给集群10并且数据被同步到信息处理设备1中。0042图2示意性地示出了L2高速缓存控制单元101的配置。L2高速缓存控制单元101包括控制器101A、L2高速缓存103以及目录随机存取存储器(RA。
20、M)104。另外,L2高速缓存103包括标签RAM103A和数据RAM103B。标签RAM103A保存由数据RAM103B保存的块的标签信息。标签信息意为一致性协议控制中与每个数据的使用状态、主存储器中的地址等有关的信息。在使用多个处理器的多处理器环境中,更有可能的是处理器共享相同的数据并且对数据进行访问。因此,在多处理器环境中维持存储在每个高速缓存中的数据的一致性。用于维持各处理器间的数据的一致性的协议被称为一致性协议。MESI协议是这种协议说明书CN104077249A4/16页7的一个示例。在以下描述中,使用了对具有四个状态即修改、专有、共享以及无效的数据的使用状态进行管理的MESI协议。
21、。然而,可用的协议不限于该协议。0043控制器101A使用标签RAM103A来检查存储器块以哪个状态被存储在数据RAM103B中以及数据以哪个状态存在。例如,数据RAM103B是用于保存存储器102中所存储的数据的副本的RAM。目录RAM104是用于承担属于主集群的主存储器的目录信息的RAM。因为目录信息是大量的信息,所以在很多情况下将目录信息存储在主存储器中并且在RAM中布置针对该存储器的高速缓存。然而,在本实施方式中将属于主集群的存储器的目录信息存储在目录RAM104中。0044控制器101A接受来自处理器核心组100或者其他集群中的L2高速缓存控制单元中的控制器的请求。控制器101A根据。
22、所接收到的请求的内容将操作请求发送给标签RAM103A、数据RAM103B、目录RAM104、存储器102或者其他集群。并且当所请求的操作完成时,控制器101A将操作结果返回给操作的请求者。0045图3是示出当在集群10中生成了数据获取请求时进行的处理的示例的图。图3中集群10是本地集群和主集群。图3示出了当生成了对属于集群10的存储器102的数据获取请求并且在L2高速缓存103中发生高速缓存命中失误时进行的处理。此处假设当L2高速缓存控制单元接收数据获取请求时在L1高速缓存中发生高速缓存命中失误。0046从本地的集群10中的处理器核心向L2高速缓存控制单元101发送数据的请求。当也是主的集群。
23、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中。
24、的请求数据的处理器核心。此外,L2高速缓存中的标签RAM103A存储信息,该信息指示在数据在信息处理设备1中被同步的状态下获取了数据。此外,目录RAM104存储指示数据被本地的集群10保存的信息。0047当L2高速缓存控制单元101参考标签RAM103A以确定L2高速缓存103中的数据RAM103B不具有用于存储数据的容量时,L2高速缓存控制单元101根据包括随机算法和LRU(最近最少使用)算法的预定算法从L2高速缓存103逐出数据。当L2高速缓存控制单元101参考标签RAM103A以确定要被逐出的数据处于与存储在存储器102中的数据类似的状态时,L2高速缓存控制单元101丢弃要被逐出的数据。。
25、另一方面,当L2高速缓存控制单元101参考标签RAM103A以确定要被逐出的数据已经被更新时,L2高速缓存控制单元101将要被逐出的数据回写存储器102。0048因此,将由处理器核心组100中的处理器核心请求的数据存储在L2高速缓存103中的数据RAM103B中的空闲空间中。此外,当处理器核心组100中的处理器核心再次生成针对数据的数据获取请求时,L2高速缓存控制单元101保存数据RAM103B中所存储的数据并且将数据发送给处理器核心(命中)。因此,只要数据没有被从数据RAM103B逐出,L2高速缓存控制单元101就不访问存储器102。说明书CN104077249A5/16页80049图4是示。
26、出在如图3所示的处理示例中在L2高速缓存控制单元101中进行的处理的图。控制器101A接受来自处理器核心组100中的处理器核心的数据获取请求。数据获取请求包含指示由处理器核心生成了请求、数据获取请求的类型以及存储器中存储数据的地址的信息。控制器101A根据请求的内容启动适当的处理。0050首先,控制器101A检查标签RAM103A以确定在数据RAM103B中是否找到了存储作为数据获取请求的目标的数据的主存储器的块的副本。当控制器101A接收指示没有从标签RAM103A找到该副本的结果(命中失误)时,控制器101A参考目录RAM104以检查作为数据获取请求的目标的数据是否被远程集群保存。控制器1。
27、01A从目录RAM104接收指示数据没有被集群保存的结果(命中失误),控制器101A向存储器102发送数据的数据获取请求。当控制器101A从存储器102接收数据时,控制器101A将指示数据被主集群保存的信息登记在目录RAM104中。另外,控制器101A将数据的使用状态(“共享”等)的信息存储在标签RAM103A中。此外,控制器101A将数据存储在数据RAM103B。而且,控制器101A将数据发送给处理器核心组100中的请求数据的处理器核心。0051接下来,图5是示出当集群中10中生成了数据获取请求时进行的处理的示例的图。在如图5所示的示例中,集群10是本地集群并且集群20是主集群(HOMECL。
28、USTER)。本地的集群中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高速缓存。
29、控制单元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中的处理器核心组。
30、200使用的数据被存储在L2高速缓存203中。第三,当这种未使用的数据存储在L2高速缓存203中时,可能从L2高速缓存203逐出被处理器核心组200使用的数据。0054图6是示出在如图5所示的示例中由L2高速缓存控制单元101和L2高速缓存控制单元201进行的处理的图。本地的集群10中的L2高速缓存控制单元101中的控制器101A接受来自处理器核心组100中的处理器核心的数据获取请求。数据获取请求包括指示由处理器核心生成了请求、数据获取请求的类型以及存储器中存储数据的地址的信息。控制器101A根据请求的内容启动适当的处理。0055控制器101A检查标签RAM103A以确定是否在数据RAM103。
31、B中找到了存储作为数据获取请求的目标的数据的主存储器的块的副本。当控制器101A接收到指示没有从标签说明书CN104077249A6/16页9RAM103A找到该副本的结果(命中失误)时,控制器101A将数据的数据获取请求发送给属于作为主的集群20的L2高速缓存控制单元201中的控制器201A。0056当控制器201A接收到数据获取请求时,控制器201A检查目录RAM204以确定作为数据获取请求的目标的数据是否存储在任何集群中的L2高速缓存中。当控制器201A从目录RAM204接收到指示没有在集群中找到数据的结果(命中失误)时,控制器201A向存储器202发送针对数据的数据获取请求。当存储器2。
32、02将数据返回给控制器201A时,控制器201A将指示数据被请求数据的集群10保存的信息作为数据的使用状态存储在目录RAM204中。然后控制器201A将数据发送给请求数据的集群10中的控制器101A。当集群10中的控制器101A接收到数据时,控制器101A将数据的使用状态(“共享”等)存储在标签RAM103A中。另外,控制器101A将数据存储在数据RAM103B中。此外,控制器101A将数据发送给处理器核心组100中请求数据的处理器核心。0057图7是示出当在比较例中对远程集群执行针对数据的回冲或回写时由集群进行的处理的图。对远程集群回冲意为当集群将从另一集群获取的数据从高速缓存逐出时进行的处。
33、理。回冲也意为用于将以下内容通知给主集群的处理当被逐出的数据没有被更新并且被在信息处理设备1中同步时将数据从对于主集群来说不仅是本地集群还是远程集群的集群逐出,即,被逐出的数据是干净的。针对主集群进行处理以更新目录信息。0058此外,对远程集群回写意为当集群将从另一集群获取的数据从集群中的高速缓存逐出时进行的处理。回写也意为用于通知另一集群以下内容的处理当被逐出的数据被更新并且未被在信息处理设备1中同步时数据是所谓“脏的”,即被逐出的数据是脏的。如下所述,当在比较例中集群对远程集群执行回冲时,集群将回冲请求发送给从其获取数据的集群而不将数据发送给从其获取数据的集群。相反,当在比较例中集群对远程。
34、集群执行回冲时,集群将回写请求发送给从其获取数据的集群并且也将数据发送给从其获取数据的集群,使得从其获取数据的集群将数据存储在存储器中。0059如上所述,当新的数据被存储在L2高速缓存中并且L2高速缓存不具有用于数据的容量时,根据预定算法将存储在L2高速缓存中的数据逐出。在图7中,集群10是本地集群而集群20是主集群。应该注意的是在本示例中集群20也是远程集群。此外,图7中未示出的信息处理设备1中的集群是远程集群。而且,在图7中,因为属于本地的集群10的L2高速缓存103中的数据RAM103B不具有数据容量,所以集群10从存储在数据RAM103B中的数据中逐出要被存储在远程的集群20中的存储器。
35、202中的数据。0060在这种情况下,如图7所示,集群10中的L2高速缓存控制单元101将用于从L2高速缓存103逐出数据的请求发送给集群20中的L2高速缓存控制单元201。该请求是回冲请求或者回写请求。应该注意的是回冲请求和回写请求是预定请求的示例。另外,当要被逐出的数据是干净的时,将回冲请求发送给作为主的集群20中的L2高速缓存控制单元201。L2高速缓存控制单元201将指示数据被从请求数据的集群10逐出的信息存储在L2高速缓存控制单元201的目录信息中。0061另一方面,当要被逐出的数据是脏的时,将回写请求和数据发送给作为主的集群20中的L2高速缓存控制单元201。例如,当数据被本地的集。
36、群10中的处理器核心组100更新时,数据变成了脏的。另外,L2高速缓存控制单元201将指示数据被从请求数据的集群10逐出的信息存储在目录RAM204中所存储的目录信息中。L2高速缓存控制单元201将说明书CN104077249A7/16页10数据回写到属于作为主的集群20的存储器202。应该注意的是远程的集群中的处理器核心向作为主的集群20请求数据。也就是说,数据不是被作为主的集群20中的处理器核心组200请求的。当数据存储在作为主的集群20中的L2高速缓存203中时,可以将处理器核心组200请求的其他数据从L2高速缓存203逐出。因此,数据未被存储在作为主的集群20中的L2高速缓存203中。。
37、0062图8是示出在如图7所示的示例中在L2高速缓存控制单元101和L2高速缓存控制单元201中进行的处理的图。此处描述了在确定了要从L2高速缓存控制单元101中的L2高速缓存103逐出的数据之后进行的处理。L2高速缓存控制单元101中的控制器101A请求标签RAM103A使数据存储在其中的块无效。此处,当数据是脏的并且控制器101A向作为主的集群20中的控制器201A通知回写请求时,控制器101A从数据RAM103B读取与块对应的数据。并且控制器101A向控制器201A通知回冲请求。或者,控制器101A向控制器201A通知回写请求并且向控制器201A发送数据。当作为主的集群20中的控制器20。
38、1A接收到请求时,控制器201A使目录RAM204中的指示“数据被请求数据的集群10保存”的信息无效。另外,当控制器201A接收回到写请求时,控制器201A将数据回写到存储器202。0063接下来,图9示出了当本地的集群10专有地获取存储在作为主的集群20中的存储器202中的数据时进行的处理。例如,当数据被处理器核心更新时,使用专有数据获取请求。专有数据获取请求是用于确保在某一时刻一个集群(集群中的高速缓存)保存所请求的数据并且其他集群不保存数据的请求。当其他集群中的一个集群中的L2高速缓存在数据被更新时保存数据时,数据不能在信息处理设备1中被同步。因此,专有数据获取请求是用于防止这种情况的请。
39、求。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向保存由目录信息指示的。
40、数据的集群发送数据的丢弃请求。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中的控制器101A接受来自处理器核心组100中的处理器核心的。
41、专有数据获取请求。数据获取请求包括指示由处理器核心生成了请求的信息、指示请求是专有数据获取请求的信息以及存储器中存储数据的地址。控制器101A根据请求的内容启动适当的处理。0067控制器101A检查标签RAM103A以确定在数据RAM103B中是否找到了存储作为说明书CN104077249A108/16页11数据获取请求的目标的数据的存储器中的块的副本。当控制器101A接收指示未从标签RAM103A找到副本的结果(命中失误)时,控制器101A向属于作为主的集群20的L2高速缓存控制单元201的控制器201A发送数据的数据获取请求。0068当控制器201A接收到数据获取请求时,控制器201A检查。
42、目录RAM204以确定所请求的数据是否被存储在任何集群中的L2高速缓存中。当控制器201A接收到指示数据被作为主的集群20保存的结果(命中)时,控制器201A向标签RAM203A发送数据的无效请求。另外,控制器201A从数据RAM203B读取数据。然后控制器201A使目录RAM204中的指示数据被主集群保存的信息无效。此外,控制器201A将指示请求数据的集群10保存数据的信息添加到目录RAM204。而且,控制器201A将数据发送给请求数据的集群10中的控制器101A。当集群10中的控制器101A接收到数据时,控制器101A将数据的使用状态登记在标签RAM103A中。此外,控制器101A将数据存。
43、储在数据RAM103B中。然后控制器101A将数据发送给处理器核心组中的请求数据的处理器核心。0069接下来,图11示出了当本地的集群10将作为主的集群20中的存储器202中所存储的数据从L2高速缓存103逐出时进行的处理。如图11所示,当集群10将存储在集群20中的存储器202中的数据从L2高速缓存103逐出时,集群10将所逐出的数据发送给L2高速缓存控制单元201。L2高速缓存控制单元201将所接收的数据存储在L2高速缓存103中。因此,在比较例中,与数据的使用状态无关地,从本地集群逐出的数据被保存在主集群中的L2高速缓存中。0070然而,在上述比较例中,作为主的集群20中的处理器核心组2。
44、00在信息处理设备1中工作。因此,集群10中的处理器核心组100与集群20中的处理器核心组200共享集群20中的L2高速缓存203。因此,实质上减少了对于处理器核心组200可用的L2高速缓存203的容量。另外,L2高速缓存203中涉及复杂的控制以确定例如优先将从哪个处理器核心组请求的哪个数据存储在L2高速缓存203中。0071此外,与数据的使用状态无关地将从本地的集群逐出的数据发送给作为主的集群20。也就是说,在与其中数据被更新并且在本地的集群10中变成脏的的情况不同的情况下,将从集群10逐出的数据发送给集群20。因此,即使在被逐出的数据在信息处理设备1中被同步,即意味着数据是干净的的情况下,。
45、仍将数据发送给集群20。因此,这可以导致各集群之间的事务增加。0072考虑到上述比较例,下面参考附图对根据一个实施方式的信息处理设备的示例进行描述。在下面的描述中,对每个集群中的运算核心组的工作状态和非工作状态进行控制。因此,如下文中所描述的,可以在不增加通信量的情况下提高L2高速缓存中的数据的高速缓存命中的可能性。另外,在本实施方式中,针对L2高速缓存中所存储的每个数据不涉及复杂的管理和控制。0073(实施方式)0074图12是示意性地示出本实施方式中的信息处理设备2中的集群配置的一部分。如图12所示,与比较例类似,信息处理设备2包括集群50、集群60和集群70。集群50、集群60和集群70。
46、对应于运算处理设备的示例。另外,因为本地、主和远程之间的差异与如上所述的比较例类似,所以此处省略了对本地、主和远程的描述。集群50包括处理器核心组500、L2高速缓存控制单元501以及存储器502。L2高速缓存控制单元501包括L2高速缓说明书CN104077249A119/16页12存503。集群60也包括处理器核心组600、L2高速缓存控制单元601、存储器602以及L2高速缓存603,集群70也包括处理器核心组700、L2高速缓存控制单元701、存储器702以及L2高速缓存703。处理器核心组500、600和700对应于运算处理单元的示例。另外,L2高速缓存503、603和703对应于高。
47、速缓冲存储器的示例。此外,L2高速缓存控制单元501、601和701对应于控制单元的示例。而且,集群50、60和70形成一个组。该组表示承担一个应用程序中所进行的处理的集群的组合。然而,形成组的准则不限于此表示,并且集群可以被任意地划分成组。0075如图12所示,每个集群中的L2高速缓存控制器经由总线或互连件相互连接。在信息处理设备2中,存储器空间是所谓平坦的,使得根据物理地址唯一地确定存储了哪个数据以及数据存储在主存储器中的哪个集群中。0076图13是示出集群50中的L2高速缓存控制单元501的图。L2高速缓存控制单元501包括控制器501A、寄存器501B、L2高速缓存503以及目录RAM。
48、504。另外,L2高速缓存503包括标签RAM503A和数据RAM503B。此外,寄存器501B对应于设置单元的示例。因为标签RAM503A、数据RAM503B以及目录RAM504的功能与比较例类似,所以此处省略详细的描述。0077寄存器501B控制根据本实施方式的信息处理设备2中的集群50的工作模式。在本实施方式中,工作模式包括“关闭模式”、“开启并且处理器核心工作模式”以及“开启并且处理器核心不工作模式”三种模式。工作模式“关闭模式”是其中集群如以上比较例中所描述地工作的工作模式。工作模式“开启并且处理器核心工作模式”是其中集群将处理器核心组设置成工作状态并且进行本实施方式中的处理的工作模。
49、式(开启模式)。工作模式“开启并且处理器核心不工作模式”是其中集群将处理器核心组设置成非工作状态并且进行本实施方式中的处理的工作模式。稍后对这些工作模式中的处理的详情进行描述。0078控制器501A读取针对寄存器501B的设置值,并且根据设置值切换工作模式。另外,在本实施方式中的信息处理设备中,在应用程序执行之前切换工作模式。另外,信息处理设备2的OS(操作系统)控制每个集群中的寄存器的工作模式的切换。应该注意的是,可以根据信息例如应用程序的存储器使用,由信息处理设备2的用户显式地指示OS或者由OS自主地指示,来进行工作模式的切换。0079图14是示出当信息处理设备2中的工作模式是“开启模式”。
50、时集群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中。