计算机系统的制作方法

文档序号:6360130阅读:171来源:国知局
专利名称:计算机系统的制作方法
技术领域
本发明涉及如下的计算机系统在能够分时执行至少2个以上虚拟处理器的虚拟多处理器中,能够有效地对多层级高速缓冲存储器进行高速缓冲访问。
背景技术
在计算机系统中,各种各样的功能逐年增加,系统变得复杂化。对此,有基于软件的POSix软件线程(thread)(例如参照非专利文献1、2)等多软件线程编程等,但是软件线程间的性能干扰较大,系统设计比较困难。最近,为了容易进行多种功能相独立的性能设计,推进了多内核、硬件多线程(例如参照非专利文献3)或者虚拟多处理器(例如参照专利文献I)的技术。
进而,为了使每个处理器内核、线程或虚拟处理器的性能设计更加容易,对于影响处理性能的高速缓冲存储器,例如在专利文献2中提出了如下的机构将处理器所共有的芯片上高速缓冲存储器的多个路(way)分配给每个处理器的组,并进行管理。另外,软件线程中的线程切换粒度,由于切换的软件处理而产生开销(overhead),所以通常以大约数百微秒 数秒的较大间隔进行。在多内核、硬件多线程中,能够同时执行多个程序。虚拟多处理器通常以低于数百微秒的粒度进行处理器切换。在先技术文献专利文献专利文献I :专利第3 813930号公报专利文献2 :专利第3620473号公报非专利文献非专利文献I :Bradford Nichols, Dick Buttlar, Jacqueline ProulxFarrell 著“Pthreads programing”。,Reilly Japan, 1998 年 5 月 I 日非专利文献2 =David R. Butenhof 著 “Posix 线程编程” ASCII,1998 年 11 月非专利文献3 :“Intel (R) hyper threading technology”,[onlin e],[2010 年 4 月 5 日检索],因特网 <URL:http://www. intel. co. jp/jp/t echnology/platform-technology/hyper-threading/index. htm>发明的概要发明所要解决的课题近年来,对了应对多种多样的功能增加,要求兼顾基于高速化的性能提高以及每个功能的独立性能设计的易化。在面向嵌入设备的处理器内核中,也推进了超过IGHz的高速化。但是,距离处理器内核近的存储器(上级层级的存储器)的动作速度逐渐成为进行处理器的高速化方面的障碍。如专利文献2所示的对处理器进行分割的技术,在距离处理器内核近的I次高速缓冲存储器中,路数增加或分割控制电路的复杂化成为向高速化的阻碍。此外,随着处理器内核、硬件多线程、虚拟处理器的增加,分割的路数、高速缓冲线数等成正比地增加,需要大容量的I次高速缓冲存储器。而且,大容量的高速缓冲存储器的搭载成为向高速化的阻碍。

发明内容
本发明是为了解决上 述课题而做出的,其目的在于,提供一种计算机系统,实现基于高速化的性能提高以及每个功能的独立性能设计的易化,并且不需要搭载大容量的高速缓冲存储器。解决课题所采用的手段为了达成上述目的,本发明的一个方面的计算机系统具备主存储装置,保持数据;第I处理执行部,设置在具有虚拟多处理器机构的第I处理器内,依次执行在多个虚拟处理器上执行的处理;第I共享高速缓冲存储器,在所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据;分割高速缓冲存储器,具有按照虚拟处理器的处理器数分割的多个存储区域,各所述存储区域与各所述虚拟处理器建立对应,各所述存储区域存储与该存储区域建立了对应的虚拟处理器所利用的数据,该分割高速缓冲存储器是存储层级比所述第I共享高速缓冲存储器更下级的高速缓冲存储器;第I上下文存储器,按每个虚拟处理器存储与该虚拟处理器对应的上下文;虚拟处理器控制部,按照在所述第I处理执行部中执行处理的虚拟处理器的切换请求,将在所述第I处理执行部中正执行处理的虚拟处理器的上下文保存到所述第I上下文存储器中,并将存储在所述第I上下文存储器中的、接下来要在所述第I处理执行部中执行的虚拟处理器的上下文设定到所述第I处理执行部中;第I共享高速缓冲控制部,在所述第I共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第I共享高速缓冲存储器;以及分割高速缓冲控制部,在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入与在所述第I处理执行部中正执行处理的虚拟处理器建立了对应的存储区域。根据该构成,在第I处理执行部中正执行处理的虚拟处理器所请求的数据未存储在第I共享高速缓冲存储器中的情况下,从分割高速缓冲存储器读入数据。向分割高速缓冲存储器的数据访问能够比向主存储装置的数据访问更高速地进行。因此,能够降低虚拟处理器的切换时的切换损失。因此,使每个虚拟处理器的性能设计容易,并且通过使距离第I处理器近的第I共享高速缓冲存储器的电路简化,第I处理器的高速化变得容易。此外,通过共享距离第I处理器近的第I共享高速缓冲存储器,对第I共享高速缓冲存储器而言,使用小容量的高速缓冲存储器即可,优化了芯片成本。因此,能够提供一种计算机系统,实现基于高速化的性能提高及每个功能的独立性能设计的易化,并且不需要搭载大容量的高速缓冲存储器。此外,上述计算机系统也可以是,还具备第2处理执行部,设置在与所述第I处理器不同且具有虚拟多处理器机构的第2处理器内,依次执行在所述多个虚拟处理器上执行的处理;第2共享高速缓冲存储器,在所述第2处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,该第2共享高速缓冲存储器是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器 ’第2共享高速缓冲控制部,在所述第2共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第2共享高速缓冲存储器;以及整合性维持部,进行用于维持存储在所述第I共享高速缓冲存储器中的数据和存储在所述第2共享高速缓冲存储器中的数据的整合性的处理;所述虚拟处理器控制部还按照在所述第2处理执行部中执行处理的虚拟处理器的切换请求,将在所述第2处理执行部中正执行处理的虚拟处理器的上下文保存到所述第I上下文存储器中,并将存储在所述第I上下文存储器中的、接下来要在所述第2处理执行部中执行的虚拟处理器的上下文设定到所述第2处理执行部中,所述分割高速缓冲控制部在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入与在所述第I处理执行部或所述第2处理执行部中正执行处理的虚拟处理器建立了对应的存储区域。根据该构成,在具备多个虚拟多处理器的计算机系统中,也能够使每个虚拟处理 器的性能设计容易,并且通过使分别距离第I处理器及第2处理器近的第I共享高速缓冲存储器及第2共享高速缓冲存储器的电路简化,能够容易进行第I处理器及第2处理器的高速化。此外,也可以是,所述第I处理器具有多个硬件线程及多线程化(threading)机构,所述第I处理执行部通过硬件实现线程的执行,所述计算机系统还具备第2处理执行部,通过硬件实现线程的执行,并且设置在所述第I处理器内,依次执行在所述多个虚拟处理器上执行的处理;第2共享高速缓冲存储器,在所述第2处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,该第2共享高速缓冲存储器是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器;第2共享高速缓冲控制部,在所述第2共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第2共享高速缓冲存储器;以及整合性维持部,进行用于维持存储在所述第I共享高速缓冲存储器中的数据和存储在所述第2共享高速缓冲存储器中的数据的整合性的处理;所述虚拟处理器控制部还按照在所述第2处理执行部中执行处理的虚拟处理器的切换请求,将在所述第2处理执行部中正执行处理的虚拟处理器的上下文保存到所述第I上下文存储器中,并将存储在所述第I上下文存储器中的、接下来要在所述第2处理执行部中执行的虚拟处理器的上下文设定到所述第2处理执行部中,所述分割高速缓冲控制部在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入与在所述第I处理执行部或所述第2处理执行部中正执行处理的虚拟处理器建立了对应的存储区域。根据该构成,在具备具有2个以上的硬件线程且具有多线程化机构的第I处理器的计算机系统中,也能够使每个虚拟处理器的性能设计容易,并且通过使距离第I处理器近的第I共享高速缓冲存储器的电路简化,容易进行第I处理器的高速化。此外,也可以是,上述的计算机系统还具备 第3处理执行部及第4处理执行部,通过硬件实现线程的执行,设置在与所述第I处理器不同且具有多个硬件线程及多线程化机构的第2处理器内,并且各自依次执行在所述多个虚拟处理器上执行的处理;第3共享高速缓冲存储器,在所述第3处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器;第3共享高速缓冲控制部,在所述第3共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第3共享高速缓冲存储器;第4共享高速缓冲存储器,在所述第4处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器;以及第4共享高速缓冲控制部,在所述第4共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第4共享高速缓冲存储器;所述整合性维持部进行用于维持存储在所述第I共享高速缓冲存储器中的数据、存储在所述第2共享高速缓冲存储器中的数据、存储在所述第3共享高速缓冲存储器中的数据和存储在所述第4共享高速缓冲存储器中的数据的整合性的处理,所述虚拟处理器控制部还按照在所述第3处理执行部中执行处理的虚拟处理器的切换请求,将在所述第3处理执行部中正执行处理的虚拟处理器的上下文保存到所述第I上下文存储器中,将存储在所述第I上下文存储器中的、接下来要在所述第3处理执行部中执行的虚拟处理器的上下文设定到所述第3处理执行部中,按照在所述第4处理执行 部中执行处理的虚拟处理器的切换请求,将在所述第4处理执行部中正执行处理的虚拟处理器的上下文保存到所述第I上下文存储器中,将存储在所述第I上下文存储器中的、接下来要在所述第4处理执行部中执行的虚拟处理器的上下文设定到所述第4处理执行部中,所述分割高速缓冲控制部在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入与正在所述第I处理执行部、所述第2处理执行部、所述第3处理执行部或所述第4处理执行部中执行处理的虚拟处理器建立了对应的存储区域。根据该构成,在具备多个具有2个以上的硬件线程且具有多线程化机构的处理器的计算机系统中,使每个虚拟处理器的性能设计容易,并且使距离处理器近的第I 第4共孚闻速缓冲存储器的电路简化,从而使处理器的闻速化变得容易。此外,也可以是,上述计算机系统还具备 第3处理执行部及第4处理执行部,通过硬件实现线程的执行,设置在与所述第I处理器不同且具有多个硬件线程及多线程化机构的第2处理器内,并且各自依次执行在多个虚拟处理器上执行的处理;第3共享高速缓冲存储器,在所述第3处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器;第3共享高速缓冲控制部,在所述第3共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第3共享高速缓冲存储器;第4共享高速缓冲存储器,在所述第4处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器;第4共享高速缓冲控制部,在所述第4共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第4共享高速缓冲存储器;以及第2上下文存储器,对于在所述第3处理执行部及所述第4处理执行部中执行处理的所述多个虚拟处理器中的各个虚拟处理器,存储与该虚拟处理器对应的上下文;所述第I上下文存储器存储与在所述第I处理执行部及所述第2处理执行部中执行处理的虚拟处理器对应的上下文,所述整合性维持部进行用于维持存储在所述第I共享高速缓冲存储器中的数据、存储在所述第2共享高速缓冲存储器中的数据、存储在所述第3共享高速缓冲存储器中的数据和存储在所述第4共享高速缓冲存储器中的数据的整合性的处理;所述虚拟处理器控制部还按照在所述第3处理执行部中执行处理的虚拟处理器的切换请求,将在所述第3处理执行部中正执行处理的虚拟处理器的上下文保存到所述第2上下文存储器中,将存储在所述第2上下文存储器中的接下来要在所述第3处理执行部中执行的虚拟处理器的上下文设定到所述第3处理执行部中,按照在所述第4处理执行部中执行处理的虚拟处理器的切换请求,将在所述第4处理执行部中正执行处理的虚拟处理器的上下文保存到所述第2上下文存储器中,将存储在所述第2上下文存储器中的、接下来要在所述第4处理执行部中执行的虚拟处理器的上下文设定到所述第4处理执行部中,所述分割高速缓冲控制部在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入与正在所述第I处理执行部、所述第2处理执行部、所述第3处理执行部或所述第4处理执行部中执行处理的虚拟处理器建立了对应的存储区域。根据该构成,在具备多个具有2个以上的硬件线程且具有多线程化机构的处理器 的计算机系统中,使每个虚拟处理器的性能设计容易,并且使距离处理器近的第I 第4共孚闻速缓冲存储器的电路简化,从而使处理器的闻速化变得容易。此外,也可以是,所述上下文包含高速缓冲分配信息,该高速缓冲分配信息表示所述分割高速缓冲存储器所具有的所述多个存储区域中的、与对应于该上下文的虚拟处理器建立了对应的存储区域,所述分割高速缓冲控制部在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入通过参照存储在所述上下文存储器中的多个所述上下文而得到的与发生了所述高速缓冲缺失的虚拟处理器建立了对应的存储区域。根据该构成,在分割高速缓冲存储器发生了高速缓冲缺失的情况下,能够将发生了高速缓冲缺失的数据写入与发送了高速缓冲缺失的虚拟处理器建立了对应的存储区域。此外,也可以是,所述分割高速缓冲存储器以高速缓冲方式为η路组相联方式的路单位或高速缓冲线单位被分割为所述多个存储区域。根据该构成,能够容易地确定分割高速缓冲存储器中的数据的替换对象,还能够使每个虚拟处理器的性能设计容易。此外,也可以是,所述上下文存储表示虚拟处理器独占使用的分割高速缓冲存储器上的路位置及路数或者高速缓冲线位置及高速缓冲线数的信息。根据该构成,能够容易地设定分割高速缓冲存储器中的存储区域的分割及分配。另外,本发明不仅能够作为具备这样的特征性的处理部的计算机系统来实现,还能够作为将计算机系统所包含的特征性的处理部所执行的处理作为步骤的计算方法来实现。此外,还你作为使计算机执行计算方法所包含的特征性的步骤的程序来实现。并且,当然可以将这样的程序经由⑶一 ROM (Compact Disc一Read Only Memory)等计算机可读的非易失性记录介质或因特网等通信网络来流通。发明效果根据本发明,能够提供一种计算机系统,实现基于高速化的性能提高及每个功能的独立性能设计的易化,并且不需要搭载大容量的高速缓冲存储器。


图I是表示实施方式I中的计算机系统的硬件构成的框图。图2是表示实施方式I中的上下文的信息的图。图3是实施方式I中的计算机系统的流程图。图4是表示实施方式2中的计算机系统的硬件构成的框图。图5是实施方式2中的计算机系统的流程图。图6是实施方式2中的计算机系统中的处理器的流程图。
图7是表示实施方式3中的计算机系统的硬件构成的框图。图8是实施方式3中的计算机系统的流程图。图9是表示实施方式4中的计算机系统的硬件构成的框图。图10是实施方式4中的计算机系统的流程图。图11是表示实施方式5中的计算机系统的硬件构成的框图。图12是实施方式5中的计算机系统的流程图。
具体实施例方式以下,参照

计算机系统的实施方式。另外,在实施方式中,赋予了相同参照标记的构成要素具有同样的构成,并且进行同样的动作,所以有时省略重复的说明。在以后的实施方式中,将权利要求所示的共享高速缓冲存储器作为I次高速缓冲存储器,将分割高速缓冲存储器作为2次高速缓冲存储器。(实施方式I)图I是表示实施方式I的计算机系统的硬件构成的框图。计算机系统100具备主存储装置101、处理器102、上下文存储器103、虚拟处理器控制部104、2次高速缓冲控制部106、2次高速缓冲存储器107。上下文存储器103存储有多个虚拟处理器VP(为便于说明而作为4个,以后将各个虚拟处理器称为虚拟处理器VP0、VP1、VP2、VP3)的上下文(虚拟处理器VPO的上下文103a、虚拟处理器VPl的上下文103b、虚拟处理器VP2的上下文103c、虚拟处理器VP3的上下文103d)。另外,图I示出本发明的一实施方式,在本发明中,上下文存储器不限于4个。此外,2次高速缓冲存储器107具有η路组相联方式(n way set associative) (η = 4)的构成。另外,在本发明中不限定路数,并且高速缓冲方式也不限于η路组相联方式。主存储装置101经由系统总线105及2次高速缓冲存储器107与处理器102连接,按照处理器102的请求,读出主存储装置101内的数据,并向2次高速缓冲存储器107转送。按照处理器102的请求,同样地还进行向主存储装置101的写入。处理器102具备处理执行部111、1次高速缓冲控制部112、1次高速缓冲存储器113。另外,I次高速缓冲存储器113在虚拟处理器间共享。处理器102能够不经由I次高速缓冲存储器113及2次高速缓冲存储器107的某一个或者双方而访问主存储装置101,但这不是本发明的主旨,所以在图I中省略处理器102与主存储装置101的连接线的记载。如上所述,在上下文存储器103中保持有实现虚拟处理器VP所需的信息。图2示出了在I个上下文中容纳的信息。上下文包含处理执行部111所具备的寄存器组的值201、表示程序的执行位置及动作设定等的控制信息202、2次高速缓冲存储器107的高速缓冲分配信息203。在上下文存储器103中容纳有虚拟处理器的数量的上下文。在此,高速缓冲分配信息203是表示后述的2次高速缓冲存储器107的路与虚拟处理器VP的对应关系的信息。虚拟处理器控制部104进行虚拟处理器VP的切换。即,虚拟处理器控制部104首先将正在处理执行部111中执行处理的虚拟处理器的上下文,写入上下文存储器103内的相应的容纳目的地中。接着,虚拟处理器控制部104选择接下来应该执行的虚拟处理器。并且,虚拟处理器控制部104将存储在上下文存储器103中的、被选择的虚拟处理器的上下文(上下文103a、103b、103c、103d的某一个)设定到处理执行部111中。通过这一系列动作,虚拟处理器控制部104实现多个虚拟处理器。另外,虚拟处理器VP例如可以按照轮叫调度·(round rob in )方式来选择,也可以按照预先决定的虚拟处理器VP的优先级来选择,在本发明中,对虚拟处理器的选择方法不作限定。由虚拟处理器控制部104设定了成为执行对象的虚拟处理器VP的上下文后,处理执行部111依次执行程序。由此,虚拟处理器VP执行处理。此外,将位于虚拟处理器VP的上下文内的高速缓冲分配信息203通知给2次高速缓冲控制部106。I次高速缓冲控制部112调查来自处理执行部111的请求地址的数据是否存在于I次高速缓冲存储器113上的高速缓冲线中。如果在I次高速缓冲存储器113上不存在请求地址的数据,则成为高速缓冲缺失,I次高速缓冲控制部112将请求地址通知给2次高速缓冲控制部106。I次高速缓冲存储器113是通常在处理器中使用的高速缓冲存储器。该高速缓冲存储器在多个虚拟处理器间共享。从处理执行部111向2次高速缓冲控制部106通知高速缓冲分配信息203。然后,从I次高速缓冲控制部112接收到请求地址的情况下,2次高速缓冲控制部106调查接收到的请求地址的数据是否存在于2次高速缓冲存储器107的高速缓冲线中。存在请求地址的数据的情况下,2次高速缓冲控制部106对I次高速缓冲控制部112输出请求地址的数据。I次高速缓冲控制部112将对象地址高速缓冲到I次高速缓冲存储器113的高速缓冲线中。发生了高速缓冲缺失的情况下,2次高速缓冲控制部106参照高速缓冲分配信息203,将请求地址的数据高速缓冲到2次高速缓冲存储器107的对象的路中。2次高速缓冲存储器107是通常在处理器中使用的高速缓冲存储器。2次高速缓冲存储器107采用4路组相联方式。2次高速缓冲存储器107以路为单位被分割,指定在每个路中使用的虚拟处理器VP。在此,路O (路107a)被分配给虚拟处理器VPO (上下文103a),路I (路107b)被分配给虚拟处理器VPl (上下文103b),路2 (路107c)被分配给虚拟处理器VP2 (上下文103c),路3 (路107d)被分配给虚拟处理器VP3 (上下文103d)。上述那样的表示对每个虚拟处理器VP分配哪个路的信息作为高速缓冲分配信息203而包含在上下文中。另外,在本实施方式中,对每个路分配虚拟处理器。取代于此,也可以对2次高速缓冲存储器107内的每个高速缓冲线分配虚拟处理器(例如参照参考文献I ),将表示高速缓冲线和虚拟处理器的对应关系的信息作为高速缓冲分配信息203。在此,高速缓冲分配信息203表示在每个虚拟处理器中对虚拟处理器分配的2次高速缓冲存储器107的路位置及路数或者高速缓冲线位置及高速缓冲线数。这些信息能够从软件指定,所以当然能够更灵活地对计算机系统100进行控制。[参考文献I]参照Patterson Hennessy《计算机的构成与设计(下)》第2版(日经BP社)第7章7. 2接着,使用图3的流程图,说明计算机系统100的动作。为便于说明,假设虚拟处理器VP的选择方法为轮叫调度方式。即,假设虚拟处理器VP的执行顺序为VPO — VPl — VP2 — VP3 — VPO (以后重复)。假设当前虚拟处理器VPO (上下文103a)正在执行中。(步骤S301)首先,虚拟处理器控制部104判定是否有来自处理器102的虚拟处理 器的切换请求。没有切换请求的情况下,转移到步骤S304,有切换请求的情况下,转移到步骤 S302。(步骤S302)虚拟处理器控制部104选择接下来要执行处理的虚拟处理器。在此,设选择了虚拟处理器VPl (上下文103b)。(步骤S303)虚拟处理器控制部104进行虚拟处理器的替换。上述情况下,处理执行部111将虚拟处理器VPO (上下文103a)的执行停止。然后,虚拟处理器控制部104将虚拟处理器VPO的上下文保存到上下文存储器103的上下文103a中,将接下来要执行处理的虚拟处理器VPl的上下文(上下文103b)设定到处理执行部111中。(步骤S304)在轮叫调度方式下许可的时间的期间,处理执行部111执行对处理执行部111设定的虚拟处理器VP的程序。由此,虚拟处理器VP执行程序。(步骤S305)在虚拟处理器VP的程序执行中,I次高速缓冲控制部112判定来自处理执行部111的请求地址的数据是否存在于I次高速缓冲存储器113的高速缓冲线中。不存在的情况下,I次高速缓冲控制部112判断为高速缓冲缺失,对2次高速缓冲控制部106通知请求地址,并转移到步骤S306。存在的情况下,转移到步骤S301。(步骤S306)2次高速缓冲控制部106判定从I次高速缓冲控制部112通知来的请求地址的数据是否存在于2次高速缓冲存储器107的高速缓冲线中。这时,对于分配给当前执行中的虚拟处理器VPl的路I (路107b)以外,也进行是否存在请求地址的数据的判定。请求地址的数据存在于2次高速缓冲存储器107的高速缓冲线的情况下中,转移到步骤S307,不存在的情况下,转移到步骤S308。(步骤S307)2次高速缓冲控制部106经由I次高速缓冲控制部112,将2次高速缓冲存储器107上的相应的高速缓冲线的数据向I次高速缓冲存储器113的高速缓冲线转送。(步骤S308)2次高速缓冲控制部106参照高速缓冲分配信息203,对于分配给虚拟处理器VPl的2次高速缓冲存储器107上的路I (路107b),从主存储装置101转送请求地址的数据。此外,2次高速缓冲控制部106经由I次高速缓冲控制部112,将转送的数据还同时向I次高速缓冲存储器113转送。在轮叫调度方式下许可的时间内,一边切换虚拟处理器VP的上下文,一边重复步骤S301 步骤S308,由此实现虚拟处理器VP动作环境。另外,由于在虚拟处理器间共享I次高速缓冲存储器113,必须在虚拟处理器的每个切换周期内对高速缓冲信息进行更新,从而产生时间损失。但是,从2次高速缓冲存储器107向I次高速缓冲存储器113的数据转送所需的处理周期很小。因此,该数据转送对系统性能的影响非常小。例如,设I次高速缓冲存储器113的存储容量为16Kbyte,假设在I次高速缓冲存储器113和2次高速缓冲存储器107之间,I高速缓冲线(128byte)的数据转送需要20周期(cycle)。此外,处理器102的处理器内核的频率时钟为1GHz,虚拟处理器的切换周期为100 μ sec.这时,存储在I次高速缓冲存储器113中的全部数据的取出所需的处理周期为16X1024/128X20 = 2560周期。因此,切换损失相对于虚拟处理器的切换周期的比例只有2560/ (100 μ sec X IGHz ) X 100 = 2. 56%。
相对于此,不将2次高速缓冲存储器107按每个虚拟处理器VP分割的情况下,向主存储装置101的访问为低速,所以系统性能大幅降低。例如,假设在2次高速缓冲存储器107和主存储装置101之间,I高速缓冲线(128byte)的数据转送需要200周期。这时,若进行与上述同样的计算,则虚拟处理器的切换周期的25. 6%成为切换损失,系统性能大幅降低。此外,软件线程中以100μ sec的粒度的切换在软件线程切换处理中消耗100 μ sec的大部分,所以本来就很困难。如以上说明,根据本实施方式,将距离处理器内核近的高速缓冲存储器在虚拟处理器间共享,对各虚拟处理器分配距离处理器内核较远的高速缓冲存储器的某个存储区域(路)。由此,能够减小虚拟处理器的切换时的切换损失。此外,使每个虚拟处理器的性能设计容易,并且使距离处理器内核近的高速缓冲存储器的电路简化,由此,处理器的高速化变得容易。此外,通过共享距离处理器内核近的高速缓冲存储器,对于该高速缓冲,使用小容量的高速缓冲存储器即可,优化了芯片成本。另外,本说明书中,距离处理器内核近的高速缓冲存储器是指上级层级的高速缓冲存储器,距离处理器内核较远的高速缓冲存储器是指下级层级的高速缓冲存储器。例如,比较I次高速缓冲存储器和2次高速缓冲存储器的情况下,前者距离处理器内核近,也就是上级层级的高速缓冲存储器,后者距离处理器内核较远,也就是下级层级的高速缓冲存储器。另外,根据本实施方式,采用将距离处理器内核近的高速缓冲存储器共享化、将距离处理器内核较远的高速缓冲存储器分割的构成,共享的处理器层级和分割的处理器层级不限定为特定的层级。例如,也可以是将2次高速缓冲存储器共享化、将3次高速缓冲存储器分割的构成。另外,根据本实施方式,不限定2次高速缓冲存储器107的路数,而且高速缓冲方式也不限于η路组相联方式。另外,根据本实施方式,2次高速缓冲存储器107的分割单位并不必然是以路为单位,也可以是集聚几个高速缓冲线而成的单位。对该集聚方式不作特别限定。另外,根据本实施方式,对保持在上下文存储器103中的虚拟处理器数不做限制。另外,根据本实施方式,对于虚拟处理器调度(scheduling)方法,也可以使用除了轮叫调度方式和使用根据优先级来选择执行的虚拟处理器的方式以外的方式,对虚拟处理器调度方法不做限制。另外,根据本实施方式,对于高速缓冲替换算法,可以使用LRU (Least RecentlyUsed)方式的算法,也可以使用考虑了优先级或使用频度等的高速缓冲替换算法等,对高速缓冲替换算法不做限制。另外,根据本实施方式,对于高速缓冲分配信息203的设定方法,可以是从软件指定的方法,也可以是通过硬件指定的方法,对高速缓冲分配信息203的设定方法不做限制。(实施方式2)以下,参照

本发明的实施方式2的计算机系统。实施方式I的计算机系统具备I个处理器,但是实施方式2的计算机系统具备2个处理器。图4是表示实施方式2的计算机系统的硬件构成的框图。计算机系统400具备
虚拟处理器控制部402、2个处理器403及404、上下文存储器103、整合性维持部405、2次高速缓冲控制部406、2次高速缓冲存储器407、主存储装置101。另外,图4示出本发明的一实施方式,在本发明中,处理器也可以是3个以上,而且上下文存储器也不限定于4个。在以后的说明中,与图I相同的参照标记的构成要素具有同一功能。因此,省略其说明。处理器403包含处理执行部411、I次高速缓冲控制部412、I次高速缓冲存储器413。处理器404包含处理执行部421、I次高速缓冲控制部422、I次高速缓冲存储器423。处理执行部411及421分别具有与图I所示的处理执行部111相同的功能。I次高速缓冲控制部412及422分别具有与图I所示的I次高速缓冲控制部112相同的功能。I次高速缓冲存储器413及423分别具有与图I所示的I次高速缓冲存储器113相同的功能。因此,省略它们的详细说明。处理器403或404能够不经由I次高速缓冲存储器413或423及2次高速缓冲存储器407的某一个或双方而访问主存储装置101。但是,该处理器访问不是本发明的主旨,所以在图4中省略处理器403或404和主存储装置101的连接线的记载。处理执行部411或421被虚拟处理器控制部402设定了作为执行对象的虚拟处理器VP的上下文后,依次执行作为执行对象的虚拟处理器VP的程序。由此,虚拟处理器VP执行处理。此外,处理执行部411或421将存在于虚拟处理器VP的上下文内的高速缓冲分配信息203与用于识别通知源的处理器是处理器403还是处理器404的处理器ID —起通知给2次高速缓冲控制部406。虚拟处理器控制部402进行各处理器403、404的虚拟处理器VP的切换。首先,虚拟处理器控制部402将在进行切换的对象处理器的处理执行部411 (或421)中正在执行处理的虚拟处理器的上下文,写入上下文存储器103内的相应的容纳目的地。接着,虚拟处理器控制部402选择接下来应该执行的虚拟处理器VP。然后,虚拟处理器控制部402将存储在上下文存储器103中的、被选择的虚拟处理器VP的上下文设定到发生了切换的处理执行部411 (或421)中。通过这一系列动作,虚拟处理器控制部402实现多个虚拟处理器VP。另外,虚拟处理器VP例如可以按照轮叫调度方式来选择,也可以按照预先决定的虚拟处理器VP的优先级来选择。整合性维持部405进行用于维持存储在I次高速缓冲存储器413中的数据和存储在I次高速缓冲存储器423中的数据的整合性的处理。即,整合性维持部405使用snoop等已知技术来保证在处理器间共有的数据的一贯性,以免在I次高速缓冲存储器间发生不整合。从处理执行部411 (或421)向2次高速缓冲控制部406通知高速缓冲分配信息203和处理器ID。并且,从I次高速缓冲控制部412 (或422)接收到请求地址的情况下,2次高速缓冲控制部406调查接收的请求地址的数据是否存在于2次高速缓冲存储器407的高速缓冲线中。不存在请求地址的数据的情况下,2次高速缓冲控制部406参照高速缓冲分配信息203,将请求地址的数据高速缓冲到2次高速缓冲存储器407的对象的路中。存在请求地址的数据的情况下,2次高速缓冲控制部406判别处理器ID,将请求地址的数据输出至以处理器ID指定的处理器的I次高速缓冲控制部412 (或422)。I次高速缓冲控制部412(或422)将接受的请求地址的数据高速缓冲到I次高速缓冲存储器413 (或423)的高速缓冲线中。2次高速缓冲存储器407的高速缓冲方式为4路组相联方式,以路为单位被分割,指定在每个路中使用的虚拟处理器VP。在此,路O (路407a)被分配给虚拟处理器VPO (上下文103a),路I (路407b)被分配给虚拟处理器VPl (上下文103b),路2 (路407c)被分配 给虚拟处理器VP2 (上下文103c),路3 (路407d)被分配给虚拟处理器VP3 (上下文103d)。从处理器403 (或404)接收到数据的读入或写入的请求的情况下,2次高速缓冲存储器407按照接收到请求的顺序进行数据的读入或写入处理。此外,从处理器403及404同时接收到请求的情况下,2次高速缓冲存储器407优先处理处理器403的请求。另外,在本实施方式中,按每个路分配虚拟处理器。取代于此,也可以按照2次高速缓冲存储器407内的每个高速缓冲线来分配虚拟处理器(例如参照参考文献I ),将表示高速缓冲线与虚拟处理器的对应关系的信息作为高速缓冲分配信息203。在此,高速缓冲分配信息203可以按每个虚拟处理器,从软件指定被分配的2次高速缓冲存储器407的路位置及路数或者高速缓冲线位置及高速缓冲线数。由此,当然能够更灵活地进行控制。另外,在本发明中,不限定路数,并且高速缓冲方式也不限于η路组相联方式。接着,使用图5及图6的流程图来说明计算机系统400的动作。通过图5说明启动时的动作,通过图6说明虚拟处理器的切换动作。为便于说明,设虚拟处理器VP的选择方法为轮叫调度方法。即,设虚拟处理器VP的执行顺序为VPO — VPl — VP2 — VP3 — VPO(以后重复)。使用图5说明计算机系统400启动时的动作。(步骤S501)虚拟处理器控制部402按照虚拟处理器VP的选择方法,选择虚拟处理器。在此,对于处理器403选择虚拟处理器VPO (上下文103a),对于处理器404选择虚拟处理器VPl (上下文103b)。(步骤S502)接着,虚拟处理器控制部402对处理器403的处理执行部411设定虚拟处理器VPO的上下文103a。此外,虚拟处理器控制部402对处理器404的处理执行部421设定虚拟处理器VPl的上下文103b。在此,对处理器403、404的设定顺序不做限制。(步骤S503、S504)对各处理执行部设定各自的上下文,在轮叫调度方式下许可的时间的期间,处理执行部411 (或421)执行虚拟处理器VP的程序。消耗了许可的时间的情况下,处理执行部411 (或421)将执行停止,对虚拟处理器控制部402发行切换请求。接着,使用图6说明从上述状态起切换虚拟处理器VP时的流程。在此,以由处理执行部411执行的虚拟处理器VPO的程序消耗了许可的时间的情况为例进行说明。
(步骤S601)虚拟处理器控制部402判定是否有来自处理器403的虚拟处理器的切换请求。有切换请求的情况下,转移到步骤S620,没有切换请求的情况下,转移到步骤S602。(步骤S620)虚拟处理器控制部402选择接下来要执行的虚拟处理器VP。在此,设选择了虚拟处理器VP2 (上下文103c)。另外,依次有虚拟处理器的切换请求的情况下,按照进行请求的处理器的顺序,选择接下来要执行的虚拟处理器。此外,从处理器403及处理器404同时有虚拟处理器的切换请求的情况下,使处理器403优先。即,虚拟处理器控制部402选择了接下来由处理器403执行的虚拟处理器之后,选择接下来将由处理器404执行的虚拟处理器。(步骤S621)虚拟处理器控制部402进行虚拟处理器VP的替换。上述情况下,处理执行部411将虚拟处理器VPO的执行停止。然后,虚拟处理器控制部402将虚拟处理器VPO的上下文保存到上下文存储器103的上下文103a中,将选择的虚拟处理器VP2的上下文103c设定到处理执行部411中。
(步骤S602)在程序执行处理(步骤S602)中,进行与图3的步骤S304 S308相同的处理。但是,来自I次高速缓冲控制部412的请求地址的数据不存在于2次高速缓冲存储器407的高速缓冲线中的情况下,2次高速缓冲控制部406参照高速缓冲分配信息203,从主存储装置101向路O (路407a)转送数据。此外,2次高速缓冲控制部406还参照处理器ID,将转送的数据同时向对象的I次高速缓冲存储器413转送。另外,向路O转送数据是因为虚拟处理器VPO正在执行中,在其他虚拟处理器VP正在执行中的情况下,当然向其他路转送数据。在处理器404中,执行步骤S611、S612、S620及S621的处理。步骤S611及S612的处理仅是执行处理的处理器不同,分别与步骤S601及S602的处理相同。如以上说明,根据本实施方式,在处理器存在多个的情况下,也在虚拟处理器间共享距离各处理器内核近的高速缓冲存储器,对各虚拟处理器分配距离处理器内核较远的高速缓冲存储器的某个存储区域(路)。由此,能够减小虚拟处理器的切换时的切换损失。此夕卜,使每个虚拟处理器的性能设计容易,并且使距离处理器内核近的高速缓冲存储器的电路简化,从而使处理器的高速化变得容易。此外,通过共享距离处理器内核近的高速缓冲存储器,对该高速缓冲来说,使用小容量的高速缓冲存储器即可,优化了芯片成本。另外,根据本实施方式,对计算机系统400所具备的处理器数不做限制。另外,根据本实施方式,采用将距离处理器内核近的高速缓冲存储器共享化、将距离处理器内核较远的高速缓冲存储器分割的构成,共享的处理器层级和分割的处理器层级不限定为特定的层级。例如,也可以采用将2次高速缓冲存储器共享化、而将3次高速缓冲存储器分割的构成。另外,根据本实施方式,不限定2次高速缓冲存储器407的路数,并且高速缓冲方式也不限于η路组相联方式。另外,根据本实施方式,2次高速缓冲存储器407的分割单位并不必然是以路为单位,也可以是集聚若干个高速缓冲线而成的单位。对该集聚方式不做特别限制。另外,根据本实施方式,对上下文存储器103所保持的虚拟处理器数不做限制。另外,根据本实施方式,对于虚拟处理器调度方法,也可以使用除了轮叫调度方式和使用根据优先级来选择执行的虚拟处理器的方式以外的方式,对虚拟处理器调度方法不做限制。另外,根据本实施方式,对于高速缓冲替换算法,可以使用LRU (Least RecentlyUsed)方式的算法,也可以使用考虑了优先级或使用频度等的高速缓冲替换算法等,对高速缓冲替换算法不做限制。另外,根据本实施方式,对于高速缓冲分配信息203的设定方法,可以是从软件指定的方法,也可以是由硬件指定的方法,对高速缓冲分配信息203的设定方法不做限制。(实施方式3)以下,参照

本发明的实施方式3。实施方式I的计算机系统在处理器内具备I个处理执行部,但是实施方式3的计算机系统在处理器内具备多个线程执行部,处理器 具有多个硬件线程及多线程化机构。图7是表示实施方式3的计算机系统的硬件构成的框图。计算机系统700具备处理器703、上下文存储器103、虚拟处理器控制部702、整合性维持部405、2次高速缓冲控制部406、2次高速缓冲存储器407、主存储装置101。处理器703具备具有硬件线程的多线程化机构。在此,为便于说明,设硬件线程的个数为2个,以后将各个硬件线程称为线程执行部711a、线程执行部711b。另外,图7示出本发明的一实施方式,在本发明中,硬件线程不限于2个。在以后的说明中,与图I或图4相同的参照标记的构成要素具有同一功能。因此,省略其说明。处理器703具备线程执行部71 la、I次高速缓冲控制部712a、I次高速缓冲存储器713a、线程执行部711b、I次高速缓冲控制部712b、I次高速缓冲存储器713b。另外,I次高速缓冲存储器按每个硬件线程设置,在该硬件线程上动作的虚拟处理器间共享。处理器703能够不经由I次高速缓冲存储器713a (或713b)及2次高速缓冲存储器407的某一个或双方而访问主存储装置101。但是,该处理器访问不是本发明的主旨,所以在图7中省略处理器703和主存储装置101的连接线的记载。线程执行部711a或711b被虚拟处理器控制部702设定了成为执行对象的虚拟处理器VP的上下文后,依次执行成为执行对象的虚拟处理器VP的程序。此外,线程执行部71 Ia或71 Ib将存在于虚拟处理器VP的上下文内的高速缓冲分配信息203和用于识别通知源的硬件线程是线程执行部711a还是线程执行部711b的线程ID —起通知给2次高速缓冲控制部406。I次高速缓冲控制部712a调查来自线程执行部711a的请求地址的数据是否存在于I次高速缓冲存储器713a上的高速缓冲线中。I次高速缓冲控制部712b调查来自线程执行部711b的请求地址的数据是否存在于I次高速缓冲存储器713b上的高速缓冲线中。如果在由各线程执行部使用的I次高速缓冲存储器上不存在请求地址的数据,则成为高速缓冲缺失,I次高速缓冲控制部712a或712b向2次高速缓冲控制部406通知请求地址。I次高速缓冲存储器713a或713b是通常在处理器中使用的高速缓冲存储器。各高速缓冲存储器在各线程上动作的多个虚拟处理器间共享。虚拟处理器控制部702进行在各线程执行部上执行处理的虚拟处理器的切换。首先,虚拟处理器控制部702将在进行切换的对象的线程执行部中正在执行处理的虚拟处理器的上下文,写入上下文存储器103内的相应的容纳目的地。接着,虚拟处理器控制部702选择接下来应该执行的虚拟处理器。然后,虚拟处理器控制部702将存储在上下文存储器103中的、被选择的虚拟处理器的上下文设定到发生了切换的线程执行部中。通过这一系列动作,虚拟处理器控制部702实现多个虚拟处理器。另外,虚拟处理器例如可以按照轮叫调度方式来选择,也可以按照预先决定的虚拟处理器的优先级来选择。此外,还可以想到如下方法按每个虚拟处理器的上下文,将使虚拟处理器动作的线程执行部的指定信息进一步追加到上下文中,通过由虚拟处理器控制部702参照该指定信息,选择进行动作的虚拟处理器。接着,使用图8的流程图说明计算机系统700中的虚拟处理器的切换的动作。为简化说明,设虚拟处理器VP的选择方法为轮叫调度方式。即,设虚拟处理器VP的执行顺序为VPO — VPl — VP2 — VP3 — VPO (以后重复),设当前对线程执行部711a设定了虚拟处理器VP0、对线程执行部711b设定了虚拟处理器VP1。然后,说明虚拟处理器VPO消耗许可的时间、并进行切换时的动作。(步骤S801)首先,虚拟处理器控制部702判定是否有来自线程执行部711a及线程执行部711b的虚拟处理器VP的切换请求。有切换请求的情况下,转移到步骤S820,没有 切换请求的情况下,转移到步骤S802。(步骤S820)虚拟处理器控制部702选择接下来要执行的虚拟处理器。在此,设选择了虚拟处理器VP2 (上下文103c)。另外,从各线程执行部依次有虚拟处理器的切换请求的情况下,按照进行请求的线程执行部的顺序,选择接下来要执行的虚拟处理器。此外,从线程执行部711a及711b同时有虚拟处理器的切换请求的情况下,使线程执行部711a优先。即,虚拟处理器控制部702选择了接下来要在线程执行部711a中执行的虚拟处理器之后,选择线程执行部711b接下来要执行的虚拟处理器。(步骤S821)虚拟处理器控制部702进行虚拟处理器VP的替换。上述情况下,线程执行部711a将虚拟处理器VPO的执行停止。然后,虚拟处理器控制部702将虚拟处理器VPO的上下文保存到上下文存储器103的上下文103a中,将选择的虚拟处理器VP2的上下文103c设定到线程执行部711a中。(步骤S802)线程执行部711a按照设定的虚拟处理器VP的上下文,依次执行程序。在此,线程执行部711a按照虚拟处理器VP2的上下文执行程序。(步骤S803)在虚拟处理器VP的程序执行中,I次高速缓冲控制部712a判定来自线程执行部711a的请求地址的数据是否存在于I次高速缓冲存储器713a的高速缓冲线中。不存在的情况下,I次高速缓冲控制部712a判断为高速缓冲缺失,对2次高速缓冲控制部406通知请求地址,并转移到步骤S804。存在的情况下,并转移到步骤S801。(步骤S804)2次高速缓冲控制部406判定从I次高速缓冲控制部712a通知来的请求地址的数据是否存在于2次高速缓冲存储器407上的相应的高速缓冲线中。这时,对于分配给正在请求源的线程执行部711a中动作的虚拟处理器VP的路以外的路的高速缓冲线,也判定是否存在请求地址的数据。请求地址的数据存在于2次高速缓冲存储器407的高速缓冲线上的情况下,转移到步骤S805,不存在的情况下,转移到步骤S806。(步骤S805)2次高速缓冲控制部406经由I次高速缓冲控制部712a,将2次高速缓冲存储器407上的相应的高速缓冲线的数据向I次高速缓冲存储器713a的高速缓冲线转送。
(步骤S806)2次高速缓冲控制部406参照高速缓冲分配信息203。在此,假设在线程执行部711a中,虚拟处理器VP2在执行中发生了高速缓冲缺失。这种情况下,2次高速缓冲控制部406对于分配给虚拟处理器VP2的2次高速缓冲存储器407上的路2 (407c),从主存储装置101转送数据。此外,还将转送的数据同时向I次高速缓冲存储器713a转送。在线程执行部711b中,执行步骤S811 S816、S820及S821的处理。另外,关于步骤S811 S816的处理,仅是执行处理的线程执行部不同,与步骤S801 S806的处理分别相同。如以上说明,根据本实施方式,在具备多线程化机构的处理器中,即使存在多个硬件线程,也将距离各处理器内核近的高速缓冲存储器在虚拟处理器间共享。此外,对各虚拟处理器分配距离处理器内核较远的高速缓冲存储器的某个存储区域(路)。由此,能够减小虚拟处理器的切换时的切换损失。此外,使每个虚拟处理器的性能设计容易,并且使距离处理器内核近的高速缓冲存储器的电路简化,由此使处理器的高速化变得容易。此外,通过共享距离处理器内核近的高速缓冲存储器,对该高速缓冲来说,使用小容量的高速缓冲存储 器即可,优化了芯片成本。另外,根据本实施方式,对计算机系统700所具备的硬件线程数不做限制。另外,根据本实施方式,采用将距离处理器内核近的高速缓冲存储器共享化、将距离处理器内核较远的高速缓冲存储器分割的构成,共享的处理器层级和分割的处理器层级不限定为特定的层级。例如,也可以将2次高速缓冲存储器共享化,将3次高速缓冲存储器分割。另外,根据本实施方式,不限定2次高速缓冲存储器407的路数,并且高速缓冲方式也不限于η路组相联方式。另外,根据本实施方式,2次高速缓冲存储器407的分割单位并不必然是以路为单位,也可以是集聚若干个高速缓冲线而成的单位。对该集聚方式不做特别限制。另外,根据本实施方式,对上下文存储器103所保持的虚拟处理器数不做限制。另外,根据本实施方式,对于虚拟处理器调度方法,也可以使用除了轮叫调度方式和使用根据优先级来选择执行的虚拟处理器的方式以外的方式,对虚拟处理器调度方法不做限制。另外,根据本实施方式,对于高速缓冲替换算法,可以使用LRU (Least RecentlyUsed)方式的算法,也可以使用考虑了优先级或使用频度等的高速缓冲替换算法等,对高速缓冲替换算法不做限制。另外,根据本实施方式,对于高速缓冲分配信息203的设定方法,可以是从软件指定的方法,也可以是由硬件指定的方法,对高速缓冲分配信息203的设定方法不做限制。(实施方式4)以下,参照

本发明的实施方式4。实施方式3的计算机系统具备I个具有多个线程执行部的处理器,但是实施方式4的计算机系统具备2个具有多个线程执行部的处理器。图9是表示实施方式4的计算机系统的硬件构成的框图。在以后的说明中,与图I或图7相同的参照标记的构成要素具有相同功能。因此,省略其说明。计算机系统900具备具备多线程化机构的处理器908、909,该多线程化机构具有硬件线程;上下文存储器903 ;虚拟处理器控制部902 ;整合性维持部904 ;2次高速缓冲控制部905 ;2次高速缓冲存储器906 ;主存储装置101。另外,图9示出本发明的一实施方式,在本发明中,各处理器的硬件线程不限于2个。在以后的说明中,与图I或图7相同的参照标记的构成要素具有相同功能。因此,省略其说明。主存储装置101经由系统总线105及2次高速缓冲存储器906与处理器908及909连接,按照处理器908或909的请求,读出主存储装置101内的数据,并向2次高速缓冲存储器906转送。按照处理器908或909的请求,同样地进行写入。上下文存储器903保持有虚拟处理器的量的与上下文存储器103相同的信息,仅虚拟处理器数不同。在实施方式4中,设虚拟处理器的个数为6个。处理器908及909分别具有与处理器703相同的构成。另外,各I次高速缓冲存储器按每个硬件线程设置,在该硬件线程上动作的虚拟处理器间共享。即,处理器908中的线程执行部711a使用I次高速缓冲存储器713a,线程执行部711b使用I次高速缓冲存储器713b。处理器909中的线程执行部711a使用I次高速缓冲存储器713a,线程执行部711b·使用I次高速缓冲存储器713b。关于处理器908及909的功能和动作,由于与实施方式3的处理器703相同,所以省略其说明。处理器908及909分别能够不经由I次高速缓冲存储器713a (或713b)及2次高速缓冲存储器906的某一个或双方而访问主存储装置101。但是,该处理器访问不是本发明的主旨,所以处理器908或909和主存储装置101之间的连接线在图9中省略记载。虚拟处理器控制部902进行在各线程执行部上执行处理的虚拟处理器的切换。首先,虚拟处理器控制部902将在进行切换的对象的线程执行部中正在执行处理的虚拟处理器的上下文,写入上下文存储器903内的相应的容纳目的地。接着,虚拟处理器控制部902选择接下来应该执行的虚拟处理器。然后,虚拟处理器控制部902将存储在上下文存储器903中的、被选择的虚拟处理器的上下文(上下文903a、903b、903c、903d、903e、903f的某一个)设定到发生了切换的线程执行部中。通过这一系列处理,虚拟处理器控制部902实现多个虚拟处理器。另外,虚拟处理器可以按照轮叫调度方式来选择,也可以按照预先决定的虚拟处理器的优先级来选择。整合性维持部904使用已知的技术,来保证在处理器908及909间、以及各处理器的线程间共有的数据的一贯性,以免在I次高速缓冲存储器间发生不整合。从各线程执行部向2次高速缓冲控制部905通知高速缓冲分配信息203。并且,在从处理器908的I次高速缓冲控制部712a或712b或者处理器909的I次高速缓冲控制部712a或712b接收到请求地址的情况下,2次高速缓冲控制部905调查接收到的请求地址的数据是否存在于2次高速缓冲存储器906的高速缓冲线中。不存在请求地址的数据的情况下,2次高速缓冲控制部905参照高速缓冲分配信息203,将请求地址的数据高速缓冲到对象的路中。存在请求地址的数据的情况下,2次高速缓冲控制部905判别线程ID,并高速缓冲到对象的I次高速缓冲存储器的高速缓冲线中。2次高速缓冲存储器906的高速缓冲方式是6路组相联方式,以路为单位被分割,指定在每个路中使用的虚拟处理器VP。在此,路O (路906a)被分配给虚拟处理器VPO (上下文903a),路I (路906b)被分配给虚拟处理器VPl (上下文903b),路2 (路906c)被分配给虚拟处理器VP2 (上下文903c),路3 (路906d)被分配给虚拟处理器VP3 (上下文903d),路4 (路906e)被分配给虚拟处理器VP4 (上下文903e),路5 (路906f)被分配给虚拟处理器VP5 (上下文903f)。从各线程执行部的I次高速缓冲控制部接收到数据的读入或写入的请求的情况下,2次高速缓冲存储器906按照接收到请求的顺序来进行数据的读入或写入处理。此外,从多个I次高速缓冲控制部同时接收到请求的情况下,2次高速缓冲存储器906按照预先决定的I次高速缓冲控制部的优先级,进行数据的读入或写入处理。例如,设处理器908的I次高速缓冲控制部712a的优先级为I、I次高速缓冲控制部712b的优先级为2、处理器909的I次高速缓冲控制部712a的 优先级为3、I次高速缓冲控制部712b的优先级为4。此外,2次高速缓冲存储器906将优先级小的I次高速缓冲控制部的请求优先处理。另外,在本实施方式中,对每个路分配虚拟处理器。也可以取代于此,对2次高速缓冲存储器906内的每个高速缓冲线分配虚拟处理器(参考文献I ),将表示高速缓冲线和虚拟处理器的对应关系的信息作为高速缓冲分配信息203。在此,高速缓冲分配信息203也可以从软件对每个虚拟处理器指定分配的2次高速缓冲存储器906的区域、路位置及路数或者高速缓冲线位置及高速缓冲线数。由此,当然能够更灵活地进行控制。接着,使用图10的流程图说明计算机系统900的动作。为便于说明,虚拟处理器VP的选择方法采用轮叫调度方式。设虚拟处理器VP的执行顺为VPO — VPl — VP2 — VP3 — VP4 — VP5 — VPO (以后重复)。此外,在启动时,假设对处理器908的线程执行部711a设定虚拟处理器VP0、对线程执行部711b设定虚拟处理器VPlJi处理器909的线程执行部711a设定虚拟处理器VP2、对线程执行部711b设定虚拟处理器VP3。另外,在以下的流程图的说明中,处理器908和处理器909的动作与处理器703的动作相同。因此,仅说明与计算机系统700的不同。在图10中,步骤S1001 S1004的处理的组存在4个。即,存在4个处理的流程,各处理的流程与由线程执行部、I次高速缓冲控制部及I次高速缓冲存储器构成的各组的处理的流程对应。(步骤S1001)首先,虚拟处理器控制部902判定是否有来自处理器908及909的各线程执行部的虚拟处理器的切换请求。有切换请求的情况下,转移到步骤S1002,没有切换请求的情况下,转移到S1004。(步骤S1002)虚拟处理器控制部902选择接下来要执行的虚拟处理器。在此,设选择了虚拟处理器VP4 (上下文903e)。另外,从各线程执行部依次有虚拟处理器的切换请求的情况下,按照进行请求的线程执行部的顺序,选择接下来要执行的虚拟处理器。此外,从多个线程执行部同时有虚拟处理器的切换请求的情况下,按照预先决定的线程执行部的优先级,选择接下来要执行的虚拟处理器。例如,设处理器908的线程执行部711a的优先级为I、线程执行部711b的优先级为2、处理器909的线程执行部711a的优先级为3、线程执行部711b的优先级为4。此外,使来自优先级小的线程执行部的请求优先,对虚拟处理器进行切换。(步骤S1003)进行与图8的步骤S821相同的动作。(步骤S1004)执行程序执行处理。在程序执行处理(步骤S1004)中,执行与图8的步骤S802 S806相同的处理。如以上说明,根据本实施方式,具备多线程化机构的处理器有多个,在各处理器中具有多个硬件线程的情况下,也将距离各处理器内核近的高速缓冲存储器在虚拟处理器间共享。此外,对各虚拟处理器分配距离各处理器内核较远的高速缓冲存储器的某个存储区域(路)。由此,能够减小虚拟处理器的切换时的切换损失。此外,使每个虚拟处理器的性能设计容易,并且使距离处理器内核近的高速缓冲存储器的电路简化,由此使处理器的高速化变得容易。此外,通过共享距离处理器内核近的高速缓冲存储器,对该高速缓冲来说,使用小容量的高速缓冲存储器即可,优化了芯片成本。另外,根据本实施方式,对计算机系统900所具备的具备多线程化机构的处理器数、硬件线程数不做限制。另外,根据本实施方式,采用将距离处理器内核近的高速缓冲存储器共享化、将距离处理器内核较远的高速缓冲存储器分割的构成,共享的处理器层级和分割的处理器层级不限定为特定的层级。例如,也可以是将2次高速缓冲存储器共享化、将3次高速缓冲存储器分割的构成。
另外,根据本实施方式,不限定2次高速缓冲存储器906的路数,并且高速缓冲方式也不限于η路组相联方式。另外,根据本实施方式,2次高速缓冲存储器906的分割单位并不必然是以路为单位,也可以是集聚若干个高速缓冲线而成的单位。对于其集聚方式不做特别限定。另外,根据本实施方式,对上下文存储器903所保持的虚拟处理器数不做限制。另外,根据本实施方式,关于虚拟处理器调度方法,也可以使用除了轮叫调度方式和使用根据优先级来选择执行的虚拟处理器的方式以外的方式,对虚拟处理器调度方法不做限制。另外,根据本实施方式,对于高速缓冲替换算法,可以使用LRU (Least RecentlyUsed)方式的算法,也可以使用考虑了优先级或使用频度等的高速缓冲替换算法等,对高速缓冲替换算法不做限制。另外,根据本实施方式,对于高速缓冲分配信息203的设定方法,可以是从软件指定的方法,也可以是由硬件指定的方法,对高速缓冲分配信息203的设定方法不做限制。(实施方式5)以下,参照

本发明的实施方式5的计算机系统。在实施方式4的计算机系统中,在处理器间共享上下文存储器,各处理器执行处理的虚拟处理器是同一种类。相对于此,实施方式5的计算机系统在每个处理器中具备上下文存储器,各处理器执行处理的虚拟处理器在处理器间是不同的种类。图11是表示实施方式5的计算机系统的硬件构成的框图。在以后的说明中,与图I、图7或图9相同的参照标记的构成要素具有同一功能。因此,省略其说明。计算机系统1100具备具备多线程化机构的处理器1108、1109,该多线程化机构具有硬件线程;上下文存储器1101、1102 ;虚拟处理器控制部1103a、1103b ;整合性维持部904 ;2次高速缓冲控制部905 ;2次高速缓冲存储器906 ;主存储装置101。另外,图11示出本发明的一实施方式,在本发明中,各处理器的硬件线程不限于2个,而且处理器数也不限于2个。处理器1108及1109分别能够不经由I次高速缓冲存储器713a (或713b)及2次高速缓冲存储器906的某一个或双方而访问主存储装置。但是,该处理器访问不是本发明的主旨,所以在图11中省略了将处理器1108或1109与主存储装置101连接的连接线的记载。在以后的记载中,与图I、图7或图9相同的参照标记的构成要素具有同一功能。因此,省略其说明。上下文存储器1101、1102保持有虚拟处理器的量的、与图9中的上下文存储器903相同的信息,仅虚拟处理器数不同。另外,对虚拟处理器的上下文数不做限制。上下文存储器1101存储有虚拟处理器VPO VP2的上下文,上下文存储器1102存储有虚拟处理器VP3 VP5的上下文。虚拟处理器控制部1103a进行在处理器1108的各线程执行部中执行处理的虚拟处理器的切换,虚拟处理器控制部1103b进行在处理器1109的各线程执行部中执行处理的虚拟处理器的切换。虚拟处理器控制部1103a在切换时,将在处理器1108中动作的虚拟处理器的上下文写入上下文存储器1101内的相应的容纳目的地。接着,虚拟处理器控制部1103a选择接下来应该执行的虚拟处理器。然后,虚拟处理器控制部1103a将存储在上下文存储器1101中的、被选择的虚拟处理器的上下文(上下文1101a、1101b、1101c的某一个)设定到发生了切换的线程执行部中。通过这一系列动作,虚拟处理器控制部1103a实现多个虚拟处理器。此外,虚拟处理器控制部1103b在处理器1109中切换时,将动作的虚拟处理器 的上下文写入上下文存储器1102内的相应的容纳目的地。接着,虚拟处理器控制部1103b选择接下来应该执行的虚拟处理器。然后,虚拟处理器控制部1103b将存储在上下文存储器1102中的、被选择的虚拟处理器的上下文(上下文1102a、1102b、1102c的某一个)设定到发生了切换的线程执行部中。通过这一系列动作,虚拟处理器控制部1103b实现多个虚拟处理器。另外,虚拟处理器可以按照轮叫调度方式来选择,也可以按照预先决定的优先级来选择。接着,使用图12的流程图来说明计算机系统1100的动作。为便于说明,设虚拟处理器VP的选择方法为轮叫调度方式。假设在上下文存储器1101中存储有上下文的虚拟处理器VP的执行顺序为VPO —VP1—VP2 (以后重复)。此外,假设在上下文存储器1102中存储有上下文的虚拟处理器VP的执行顺序为VP3 — VP4 — VP5 (以后重复)。此外,在启动时,对处理器1108的线程执行部711a设定虚拟处理器VPO (上下文1101a)、对线程执行部711b设定虚拟处理器VPl (上下文1101b)、对处理器1109的线程执行部711a设定虚拟处理器VP3 (上下文1102a)、对线程执行部711b设定虚拟处理器VP4 (上下文1102b)。另外,在以下的流程图的说明中,处理器1108和处理器1109的动作与处理器703的动作相同。在图12中,步骤S1201 S1204的处理的组存在4个。即,存在4个处理的流程,各处理的流程与由线程执行部、I次高速缓冲控制部及I次高速缓冲存储器构成的各组的处理的流程对应。在本实施方式中,采用计算机系统1100中的上下文存储器和虚拟处理器按每个处理器设置的构成。因此,在图12中的流程图的说明中,进行处理器1108所执行的处理的说明,但是处理器1109所执行的处理的说明与处理器1108所执行的处理的说明相同。(步骤S1201)进行与图8的步骤S801相同的动作。(步骤S1202)进行与图8的步骤S820相同的动作。(步骤S1203)进行与图8的步骤S821相同的动作。(步骤S1204)执行程序执行处理。在程序执行处理(步骤S1204)中,执行与图8的步骤S802 S806相同的处理。如以上说明,根据本实施方式,具备多线程化机构的处理器有多个(2个以上),在各处理器中具有多个硬件线程(2个以上)的情况下,也在虚拟处理器间共享距离各处理器内核近的高速缓冲存储器。此外,对各虚拟处理器分配距离各处理器内核较远的高速缓冲存储器的某个存储区域(路)。由此,能够减小虚拟处理器的切换时的切换损失。此外,使每个虚拟处理器的性能设计容易,并且使距离处理器内核近的高速缓冲存储器的电路简化,由此使处理器的高速化变得容易。此外,通过共享距离处理器内核近的高速缓冲存储器,对该高速缓冲来说,使用小容量的高速缓冲存储器即可,优化了芯片成本。另外,根据本实施方式,对计算机系统1100所具备的具备多线程化机构的处理器数、硬件线程数不做限制。另外,根据本实施方式,采用将距离处理器内核近的高速缓冲存储器共享化、将距离处理器内核较远的高速缓冲存储器分割的构成,共享的处理器层级和分割的处理器层级不限定为特定的层级。例如,也可以是将2次高速缓冲存储器共享化、将3次高速缓冲存储 器分割的构成。另外,根据本实施方式,不限定2次高速缓冲存储器906的路数,而且高速缓冲方式也不限于η路组相联方式。另外,根据本实施方式,2次高速缓冲存储器906的分割单位并不必然是以路为单位,也可以是集聚若干个高速缓冲线而成的单位。对于其集聚方式不做特别限定。另外,根据本实施方式,对上下文存储器1101、1102所保持的虚拟处理器数不做限制。另外,根据本实施方式,关于虚拟处理器调度方法,也可以使用除了轮叫调度方式和使用根据优先级来选择执行的虚拟处理器的方式以外的方式,对虚拟处理器调度方法不做限制。另外,根据本实施方式,对于高速缓冲替换算法,可以使用LRU (Least RecentlyUsed)方式的算法,也可以使用考虑了优先级或使用频度等的高速缓冲替换算法等,对高速缓冲替换算法不做限制。另外,根据本实施方式,对于高速缓冲分配信息203的设定方法,可以是从软件指定的方法,也可以是由硬件指定的方法,对高速缓冲分配信息203的设定方法不做限制。此外,也可以将上述实施方式组合。本次公开的实施方式都只是例示,不应该认为是对本发明的限制。本发明的范围不限于上述的说明,而是由权利要求示出,并且包含与权利要求均等的意思及范围内的所
有变更。工业实用性本发明在如下的计算机系统等中是有用的在具备虚拟处理器能够分时执行的虚拟多处理器、具有硬件线程的多线程化机构的处理器中,具备多层级高速缓冲存储器。因此,能够使具备多种功能的计算机系统高速化以及每个功能的独立性设计容易。标记说明100、400、700、900、1100 计算机系统101主存储装置
102、403、404、703、908、909、1108、1109 处理器103、903、1101、1102 上下文存储器103a 103d、903a 903f、1101a 1101c、1102a 1102c 上下文104、402、702、902、1103a、1103b 虚拟处理器控制部105系统总线106、406、9052次高速缓冲控制部107、407、9062次高速缓冲存储器107a 107d、407a 407d、906a 906f 路
111、411、421 处理执行部112、412、422、712a、712b I 次高速缓冲控制部113、413、423、713a、713b I 次高速缓冲存储器201寄存器组的值202控制信息203高速缓冲分配信息
405、904整合性维持部71 la、71 Ib线程执行部
权利要求
1.一种计算机系统,具备 主存储装置,保持数据; 第I处理执行部,设置在具有虚拟多处理器机构的第I处理器内,依次执行在多个虚拟处理器上执行的处理; 第I共享高速缓冲存储器,在所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据; 分割高速缓冲存储器,具有按照虚拟处理器的处理器数分割的多个存储区域,各所述存储区域与各所述虚拟处理器建立对应,各所述存储区域存储与该存储区域建立了对应的虚拟处理器所利用的数据,该分割高速缓冲存储器是存储层级比所述第I共享高速缓冲存储器更下级的高速缓冲存储器; 第I上下文存储器,按每个虚拟处理器存储与该虚拟处理器对应的上下文; 虚拟处理器控制部,按照在所述第I处理执行部中执行处理的虚拟处理器的切换请求,将正在所述第I处理执行部中执行处理的虚拟处理器的上下文保存到所述第I上下文存储器中,并将存储在所述第I上下文存储器中的、接下来要在所述第I处理执行部中执行的虚拟处理器的上下文设定到所述第I处理执行部中; 第I共享高速缓冲控制部,在所述第I共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第I共享高速缓冲存储器;以及 分割高速缓冲控制部,在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入与正在所述第I处理执行部中执行处理的虚拟处理器建立了对应的存储区域。
2.如权利要求I所述的计算机系统,还具备 第2处理执行部,设置在与所述第I处理器不同且具有虚拟多处理器机构的第2处理器内,依次执行在所述多个虚拟处理器上执行的处理; 第2共享高速缓冲存储器,在所述第2处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,该第2共享高速缓冲存储器是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器; 第2共享高速缓冲控制部,在所述第2共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第2共享高速缓冲存储器;以及 整合性维持部,进行处理,该处理用于维持存储在所述第I共享高速缓冲存储器中的数据和存储在所述第2共享高速缓冲存储器中的数据的整合性; 所述虚拟处理器控制部还按照在所述第2处理执行部中执行处理的虚拟处理器的切换请求,将正在所述第2处理执行部中执行处理的虚拟处理器的上下文保存到所述第I上下文存储器中,并将存储在所述第I上下文存储器中的、接下来要在所述第2处理执行部中执行的虚拟处理器的上下文设定到所述第2处理执行部中, 所述分割高速缓冲控制部在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入与正在所述第I处理执行部或所述第2处理执行部中执行处理的虚拟处理器建立了对应的存储区域。
3.如权利要求I所述的计算机系统, 所述第I处理器具有多个硬件线程及多线程化机构, 所述第I处理执行部通过硬件实现线程的执行, 所述计算机系统还具备 第2处理执行部,通过硬件实现线程的执行,并且设置在所述第I处理器内,依次执行在所述多个虚拟处理器上执行的处理; 第2共享高速缓冲存储器,在所述第2处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,该第2共享高速缓冲存储器是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器; 第2共享高速缓冲控制部,在所述第2共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第2共享高速缓冲存储器;以及 整合性维持部,进行处理,该处理用于维持存储在所述第I共享高速缓冲存储器中的数据和存储在所述第2共享高速缓冲存储器中的数据的整合性; 所述虚拟处理器控制部还按照在所述第2处理执行部中执行处理的虚拟处理器的切换请求,将正在所述第2处理执行部中执行处理的虚拟处理器的上下文保存到所述第I上下文存储器中,并将存储在所述第I上下文存储器中的、接下来要在所述第2处理执行部中执行的虚拟处理器的上下文设定到所述第2处理执行部中, 所述分割高速缓冲控制部在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入与正在所述第I处理执行部或所述第2处理执行部中执行处理的虚拟处理器建立了对应的存储区域。
4.如权利要求3所述的计算机系统,还具备 第3处理执行部及第4处理执行部,通过硬件实现线程的执行,设置在与所述第I处理器不同且具有多个硬件线程及多线程化机构的第2处理器内,并且各自依次执行在所述多个虚拟处理器上执行的处理; 第3共享高速缓冲存储器,在所述第3处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器; 第3共享高速缓冲控制部,在所述第3共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第3共享高速缓冲存储器; 第4共享高速缓冲存储器,在所述第4处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器;以及 第4共享高速缓冲控制部,在所述第4共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第4共享高速缓冲存储器;所述整合性维持部进行处理,该处理用于维持存储在所述第I共享高速缓冲存储器中的数据、存储在所述第2共享高速缓冲存储器中的数据、存储在所述第3共享高速缓冲存储器中的数据和存储在所述第4共享高速缓冲存储器中的数据的整合性, 所述虚拟处理器控制部还按照在所述第3处理执行部中执行处理的虚拟处理器的切换请求,将正在所述第3处理执行部中执行处理的虚拟处理器的上下文保存到所述第I上下文存储器中,并将存储在所述第I上下文存储器中的、接下来要在所述第3处理执行部中执行的虚拟处理器的上下文设定到所述第3处理执行部中,按照在所述第4处理执行部中执行处理的虚拟处理器的切换请求,将正在所述第4处理执行部中执行处理的虚拟处理器的上下文保存到所述第I上下文存储器中,并将存储在所述第I上下文存储器中的、接下来要在所述第4处理执行部中执行的虚拟处理器的上下文设定到所述第4处理执行部中,所述分割高速缓冲控制部在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下 进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入与正在所述第I处理执行部、所述第2处理执行部、所述第3处理执行部或所述第4处理执行部中执行处理的虚拟处理器建立了对应的存储区域。
5.如权利要求3所述的计算机系统,还具备 第3处理执行部及第4处理执行部,通过硬件实现线程的执行,设置在与所述第I处理器不同且具有多个硬件线程及多线程化机构的第2处理器内,并且各自依次执行在多个虚拟处理器上执行的处理; 第3共享高速缓冲存储器,在所述第3处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器; 第3共享高速缓冲控制部,在所述第3共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第3共享高速缓冲存储器; 第4共享高速缓冲存储器,在所述第4处理执行部中执行处理的所述多个虚拟处理器间共享,存储所述多个虚拟处理器所利用的数据,是存储层级比所述分割高速缓冲存储器更上级的高速缓冲存储器; 第4共享高速缓冲控制部,在所述第4共享高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述分割高速缓冲存储器读入发生了高速缓冲缺失的数据,并将读入的数据写入所述第4共享高速缓冲存储器;以及 第2上下文存储器,针对在所述第3处理执行部及所述第4处理执行部中执行处理的所述多个虚拟处理器中的各个虚拟处理器,存储与该虚拟处理器对应的上下文; 所述第I上下文存储器存储与在所述第I处理执行部及所述第2处理执行部中执行处理的虚拟处理器对应的上下文, 所述整合性维持部进行处理,该处理用于维持存储在所述第I共享高速缓冲存储器中的数据、存储在所述第2共享高速缓冲存储器中的数据、存储在所述第3共享高速缓冲存储器中的数据和存储在所述第4共享高速缓冲存储器中的数据的整合性;所述虚拟处理器控制部还按照在所述第3处理执行部中执行处理的虚拟处理器的切换请求,将正在所述第3处理执行部中执行处理的虚拟处理器的上下文保存到所述第2上下文存储器中,将存储在所述第2上下文存储器中的、接下来要在所述第3处理执行部中执行的虚拟处理器的上下文设定到所述第3处理执行部中,按照在所述第4处理执行部中执行处理的虚拟处理器的切换请求,将正在所述第4处理执行部中执行处理的虚拟处理器的上下文保存到所述第2上下文存储器中,将存储在所述第2上下文存储器中的、接下来要在所述第4处理执行部中执行的虚拟处理器的上下文设定到所述第4处理执行部中, 所述分割高速缓冲控制部在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入与正在所述第I处理执行部、所述第2处理执行部、所述第3处理执行部或所述第4处理执行部中执行处理的虚拟处理器建立了对应的存储区域。
6.如权利要求I 5中任一项所述的计算机系统, 所述上下文包含高速缓冲分配信息,该高速缓冲分配信息表示所述分割高速缓冲存储器所具有的所述多个存储区域之中的、与对应于该上下文的虚拟处理器建立了对应的存储区域, 所述分割高速缓冲控制部在所述分割高速缓冲存储器发生了高速缓冲缺失的情况下进行控制,该控制用于从所述主存储装置读入发生了高速缓冲缺失的数据,并将读入的数据写入通过参照存储在所述上下文存储器中的多个所述上下文而得到的、与使所述高速缓冲缺失发生的虚拟处理器建立了对应的存储区域。
7.如权利要求I 6中任一项所述的计算机系统, 所述分割高速缓冲存储器以高速缓冲方式为η路组相联方式的路单位或高速缓冲线单位被分割为所述多个存储区域。
8.如权利要求7所述的计算机系统, 所述上下文存储表示虚拟处理器所独占使用的分割高速缓冲存储器上的路位置及路数或者高速缓冲线位置及高速缓冲线数的信息。
9.如权利要求I 8中任一项所述的计算机系统, 所述共享高速缓冲存储器为I次高速缓冲存储器, 所述分割高速缓冲存储器为2次高速缓冲存储器。
10.如权利要求I 8中任一项所述的计算机系统, 所述共享高速缓冲存储器为2次高速缓冲存储器, 所述分割高速缓冲存储器为3次高速缓冲存储器。
全文摘要
计算机系统(100)具备主存储装置(101);处理执行部(111),依次执行在多个虚拟处理器上执行的处理;1次高速缓冲存储器(113),在多个虚拟处理器间共享;2次高速缓冲存储器(107),具有按照虚拟处理器的处理器数分割的多个存储区域,各存储区域与各虚拟处理器建立对应,各存储区域存储与该存储区域建立了对应的虚拟处理器所利用的数据;上下文存储器(103),存储每个虚拟处理器的上下文;虚拟处理器控制部(104),进行虚拟处理器的上下文的保存及恢复;1次高速缓冲控制部(112);以及2次高速缓冲控制部(106)。
文档编号G06F9/48GK102822809SQ20118001775
公开日2012年12月12日 申请日期2011年1月6日 优先权日2010年5月14日
发明者森田晃之, 古贺义宏, 中岛广二 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1