CN102804149A - 多核处理器系统、仲裁电路控制方法以及仲裁电路控制程序 - Google Patents

多核处理器系统、仲裁电路控制方法以及仲裁电路控制程序 Download PDF

Info

Publication number
CN102804149A
CN102804149A CN2010800654759A CN201080065475A CN102804149A CN 102804149 A CN102804149 A CN 102804149A CN 2010800654759 A CN2010800654759 A CN 2010800654759A CN 201080065475 A CN201080065475 A CN 201080065475A CN 102804149 A CN102804149 A CN 102804149A
Authority
CN
China
Prior art keywords
kernel
response performance
cpu
ratio
access right
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.)
Granted
Application number
CN2010800654759A
Other languages
English (en)
Other versions
CN102804149B (zh
Inventor
山下浩一郎
山内宏真
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN102804149A publication Critical patent/CN102804149A/zh
Application granted granted Critical
Publication of CN102804149B publication Critical patent/CN102804149B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

CPU(S#1)~CPU(L#2)通过取得部(304)取得各个CPU访问共享存储器(203)的访问速度的实测值。接下来,CPU(S#1)~CPU(L#2)通过响应性能计算部(305),根据访问速度的实测值与CPU的访问速度的理论值,按各个CPU来计算CPU的响应性能。CPU(L#3)通过访问比率计算部(310),按照某个CPU的访问权的比率大于比某个CPU的响应性能高的CPU的访问权的比率的方式来计算多个CPU访问共享存储器(203)的访问权的比率。CPU(L#3)通过通知部(311)向仲裁电路(204)通知计算出的访问权的比率。

Description

多核处理器系统、仲裁电路控制方法以及仲裁电路控制程序
技术领域
本发明涉及控制仲裁电路的多核处理器系统、仲裁电路控制方法以及仲裁电路控制程序。
背景技术
目前,已经公开一种在计算机系统中安装多个CPU(CentralProcessing Unit)的多核处理器系统的技术。在多核处理器系统中,利用OS(Operating System)的功能,将多个软件分配给多个CPU,从而能够进行并行处理。
作为多核处理器系统中的资源控制方法,公开了一种使用特定处理的历史负荷特性的统计信息来动态地增减CPU的计算能力,从而降低计算密度低的内容的功率消耗(例如,参照下述专利文献1。)的技术。另外,还公开了一种在安装硬件性能计数器来动态地解析负荷量,在未满足预先设定的性能的情况下,增强所需的硬件资源这样的技术(例如参照下述专利文献2。)。
另外,在多核处理器系统中,由于多个内核同时访问共享存储器,会产生访问竞争进而导致性能降低。公开下述技术,即:在产生了存储器的访问竞争时,对访问存储器频度少的CPU赋予低速时钟,从而使访问存储器频度多的CPU的吞吐量(Throughput)提高这样的技术(例如,下述专利文献3を参照。)。
专利文献1:日本特表2009-501482号公报
专利文献2:日本特表2009-521056号公报
专利文献3:日本特开平11-110363号公报
发明内容
然而,在上述现有技术中存在下述问题:专利文献1所涉及的技术中利用者进行任意操作那样的设备不能取得统计值。例如,在由利用者在任意时刻启动多个应用程序的系统中,应用程序的组合变得庞大,统计信息的保存变得不现实。
另外,在专利文献2所涉及的技术中,在产生了存储器的访问竞争的情况下,通过提供延迟的CPU时钟、或者提供存储器的时钟来应对。使用前述的应对方法,不仅消耗功率增大,还存在仅通过提供时钟无法解决存储器访问竞争的性能问题这一问题。另外,在大规模的SoC(System on a Chip:嵌入式系统)的情况下,存在难以判断将性能计数器配置在哪里这一问题。另一方面,若在各CPU、总线等能够想到的位置都配置性能计数器,则存在系统规模增大这一问题。
另外,在专利文献3所涉及的技术中,由于使访问存储器频度少的CPU低速化,从而存在连在高速缓冲存储器上的空间动作的、无需低速化的应用程序也受影响的问题。
另外,在作为非对称型的多核处理器系统的、异构多核中,存在由于非对称型的特性,各CPU的负荷变得不均衡,从而导致CPU资源的活用中产生不必要的浪费这一问题。
本发明的目的在于提供一种为了消除上述以往技术的问题点,以使各CPU的负荷均衡地分散的方式进行改正,并能够有效地活用CPU资源的多核处理器系统、仲裁电路控制方法以及仲裁电路控制程序。
为了解决上述课题而达成目的,公开的多核处理器系统是具备多个内核、被内核访问的共享存储器以及仲裁多个内核访问共享存储器的访问权的竞争的仲裁电路的多核处理器系统,其特征在于,取得各个内核访问共享存储器的访问速度的实测值,根据取得的访问速度的实测值与内核的访问速度的理论值,按各个内核计算内核的响应性能,基于计算出的各个内核的响应性能,按照使内核的访问权的比率大于比内核的响应性能高的内核的访问权的比率的方式,来计算多个内核访问共享存储器的访问权的比率,将计算出的多个内核访问共享存储器的访问权的比率通知给仲裁电路。
根据本多核处理器系统、仲裁电路控制方法以及仲裁电路控制程序,以使各CPU的负荷均衡分散的方式进行改正,起到能够有效活用CPU资源这一效果。
附图说明
图1是表示实施方式涉及的多核处理器系统的硬件构成的框图。
图2是表示多核处理器系统100的硬件的一部分构成和软件构成的框图。
图3是表示多核处理器系统100的功能构成的框图。
图4是表示配置文件(profile)信息表301的存储内容的一个例子的说明图。
图5是表示多核处理器系统100中的线程的启动开始时刻的状态的说明图。
图6是表示产生了各CPU访问共享存储器203的访问竞争的状态的说明图。
图7是表示检测出软件的处理性能异常的状态的说明图。
图8是表示负荷改正仲裁后的状态的说明图。
图9是表示负荷改正前后响应性能变化的说明图。
图10A是仲裁电路控制处理的流程图(其1)。
图10B是仲裁电路控制处理的流程图(其2)。
图11是性能偏离判断处理的流程图。
图12是响应性能测量处理的流程图。
图13是负荷状态判断处理的流程图。
图14是性能恶化原因判断处理的流程图。
图15是负荷改正处理的流程图。
具体实施方式
以下参照附图对本发明涉及的多核处理器系统、仲裁电路控制方法以及仲裁电路控制程序的优选实施方式详细进行说明。
(多核处理器系统的硬件构成)
图1是表示实施方式涉及的多核处理器系统的硬件构成的框图。图1中,多核处理器系统100具有安装多个CPU的CPUs101、ROM(ReadOnly Memory)102和RAM(Random Access Memory)103。另外,多核处理器系统100还具有闪存ROM104、闪存ROM控制器105和闪存ROM106。另外,多核处理器系统100具有显示器107、I/F(Interface)108、键盘109作为与用户、其他设备的输入输出装置。另外,各构成部分别被总线110连接起来。
在此,CPUs101掌管多核处理器系统100整体的控制。CPUs101是指将单核处理器并联连接的全部CPU。CPUs101的详细将利用图2进行说明。另外,多核处理器系统是指包括安装有多个内核的处理器的计算机的系统。只要安装有多个内核即可,可以是安装有多个内核的单一处理器,也可以是单核处理器并联的处理器组。其中,在本实施方式中,以单核处理器、即CPU并联,且各CPU的性能不同的、异构多核为例进行说明。
ROM102存储有引导(boot)程序等程序。RAM103用作CPUs101的工作区域。闪存ROM104存储有OS等系统软件、应用程序软件等。例如,在更新OS时,多核处理器系统100通过I/F108接收新的OS,将存储在闪存ROM104中的旧OS更新为接收到的新OS。
闪存ROM控制器105按照CPUs101的控制来控制对闪存ROM106的数据读写。闪存ROM106通过闪存ROM控制器105的控制来存储写入的数据。作为数据的具体例子,有使用多核处理器系统100的用户通过I/F108取得的图像数据、影像数据等。闪存ROM106例如可采用存储卡、SD卡等。
显示器107显示以光标、图标或者工具箱为代表的文件、图像、功能信息等数据。该显示器107例如能够采用TFT液晶显示器等。
I/F108通过通信线路与LAN(Local Area Network)、WAN(WideArea Network)、互联网等网络111连接,并经由网络111与其他装置连接。而且,I/F108掌管网络111与内部的接口,控制与外部装置的数据的输入输出。I/F108例如能够采用调制解调器、LAN适配器等。
键盘109具备输入数字、各种指示等所用的按键,来进行数据的输入。另外,键盘109还可以是触摸面板式的输入板(pad)、数字键等。
图2是表示多核处理器系统100的硬件的一部分构成和软件构成的框图。所属于区域201的框图表示硬件的构成,所属于区域202的框图表示软件的构成。图2中所示的硬件有共享存储器203、仲裁电路204、CPUs101所包括的S-CPU组205以及L-CPU组206。仲裁电路204与S-CPU组205与L-CPU组206通过总线110连接。
共享存储器203是能够从所属于S-CPU组205与L-CPU组206的CPU访问的存储区域。存储区域具体而言是指例如,ROM102、RAM103、闪存ROM104。
仲裁电路204控制所属于S-CPU组205与L-CPU组206的CPU访问共享存储器203。仲裁电路204在CPU对共享存储器203进行了访问请求时,在其他CPU正在访问共享存储器203的情况下,使进行了访问请求的CPU待机。在其他CPU不是正在访问共享存储器203的情况下,仲裁电路204向进行了访问请求的CPU发放访问许可。另外,仲裁电路204备有管理请求(request)的缓冲器,按每个CPU设定访问的比率。
S-CPU组205是性能低的CPU的集合,包括CPUS#1、CPUS#2、···、CPUS#M。L-CPU组206是性能高的CPU的集合,包括CPUL#1、CPUL#2、···、CPUL#N。本实施方式涉及的多核处理器系统100虽然由两种性能不同的CPU组构成,但也可以由三种以上性能不同的CPU组构成。各CPU安装有本地高速缓冲存储器。各CPU除了访问本地高速缓冲存储器来执行计算处理以外,还在需要未存储在本地高速缓冲存储器中数据时访问共享存储器203。
图2所示的软件有AMP(Asymmetric Multiple Processor:非对称多处理器)管理器207、SMP(Symmetric Multiple Processor:对称多处理器)OS214-1与SMP OS214-2、线程216-1~线程216-4、配置文件信息217-1~配置文件信息217-4。管理器是指在硬件上直接动作的程序。管理器能够执行特权命令,该特权命令直接参照CPU内的寄存器、或者读出CPU内的寄存器的信息、或者改写如进行CPU内I/O操作那样的特殊寄存器的信息。另外,管理器进行通过一般的程序不能操作的CPU的高速缓冲控制,并使用通过一般的程序不能读写的存储器上的空间进行动作。另外,管理器位于OS与CPU之间,基于前述的特征进行OS的监视,除了在OS挂机(hang-up)时进行重置(reset)之外,还在OS未执行任何线程的情况下,设定为节电。
AMP管理器207是按每个CPU而具有不同功能的管理器的集合。AMP管理器207包括S-CPUSMP管理器208和L-CPUSMP管理器209。
S-CPUSMP管理器(hypervisor)208是由所属于S-CPU组205的CPU执行的管理器的集合。所属于S-CPUSMP管理器208的管理器与所属于S-CPUSMP管理器208的管理器之间进行管理器间通信218。另外,所属于S-CPUSMP管理器208的管理器对仲裁电路204进行向共享存储器203的访问221,并测量访问速度来取得实测值。
另外,在本实施方式中,CPUS#1执行S-CPU管理器210。CPUS#2执行控制S-CPUSMP管理器208中其他管理器的S-CPU主管理器(hypervisor master)211。S-CPU主管理器211的功能除了S-CPU管理器210所带有的功能以外,还与L-CPUSMP管理器209进行管理器间通信219。另外,S-CPU主管理器211还与SMPOS214-1的调度器(scheduler)215-1进行信息通信223,对仲裁电路204进行访问权的比率的通知224。所属于S-CPU组205的CPUS#1、CPUS#2以外的CPU也执行S-CPU管理器。
L-CPUSMP管理器(hypervisor)209是由所属于L-CPU组206的CPU执行的管理器的集合。所属于L-CPUSMP管理器209的管理器与所属于L-CPUSMP管理器209的管理器间进行管理器间通信220。另外,所属于L-CPUSMP管理器209的管理器对仲裁电路204进行向共享存储器203的访问222,并测量访问速度。
另外,在本实施方式中,CPUL#2执行L-CPU管理器213。CPUL#1执行控制L-CPUSMP管理器209中其他管理器的L-CPU主管理器212。L-CPU主管理器212的功能除了L-CPU管理器213所带有的功能以外,还与S-CPUSMP管理器208进行管理器间通信219。另外,L-CPU主管理器212与SMP OS214-2的调度器215-2进行信息通信225,对仲裁电路204进行访问权的比率的通知226。所属于L-CPU组206的CPUL#1、CPUL#2以外的CPU也执行S-CPU管理器。
SMP OS214-1与SMP OS214-2分别是在S-CPU组205与L-CPU组206上执行的OS。SMP OS214-1与SMP OS214-2分别利用调度器215-1、调度器215-2的功能对CPUs101分配线程216-1~线程216-4。在本实施方式中,线程216-1被分配给CPUS#1,线程216-2被分配给CPUS#2,线程216-3被分配给CPUL#1,线程216-4被分配给CPUL#2。
配置文件信息217-1~配置文件信息217-4分别是与线程216-1~线程216-4对应的配置文件信息。关于配置文件信息的详细内容将利用图4后述。调度器215-1、调度器215-2取得配置文件信息,来确认线程216-1~线程216-4是否从原本处理性能发生偏离。
(多核处理器系统100的功能的构成)
接下来对多核处理器系统100的功能的构成进行说明。图3是表示多核处理器系统100的功能的构成的框图。多核处理器系统100是包括检索部302、检测部303、取得部304、响应性能计算部305、汇集部306、确定部307、响应性能偏差值计算部308、判断部309、访问比率计算部310、通知部311的构成。该控制部的功能是(检索部302~通知部311)通过CPUs101执行存储在存储装置中的程序而实现。存储装置具体而言是指例如共享存储器203等。
另外,多核处理器系统100将配置文件信息表301保持在共享存储器203中作为数据库,该数据库按各个在软件内执行的规定处理来存储结束规定处理的预测时间。配置文件信息表301的详细内容将通过图4后述。
另外,检索部302、检测部303包括在SMP OS214-1、SMP OS214-2的功能中。同样,取得部304~通知部311被包括在AMP管理器207的功能中。另外,汇集部306虽然未作为CPUS#2,CPUL#1的功能被图示,但其可以存在于某个CPU。确定部307也同样。另外,在本实施方式中,由确定部307确定CPUL#3,响应性能偏差值计算部308~通知部311被图示为CPUL#3的功能。还可以由确定部307确定其他的CPU,该情况下,响应性能偏差值计算部308~通知部311为所确定的CPU的功能。
检索部302具有从配置文件信息表301中检索与分配给内核的软件正在执行的处理对应的预测时间的功能。内核是指所属于CPUs101的各个CPU。具体而言,例如,在CPUS#1执行UI线程的情况下,CPUS#1从配置文件信息表301中取得运用前执行时间t和期限(dead line)时间D。可以将得到的时间t与D中较小的值作为预测时间,考虑到系统化的开销(overhead)τ,还可以将t·(1+τ)与D中较小的值作为预测时间。其中,检索到的预测时间被存储在共享存储器203等存储区域中。
检测部303具有按各个内核检测被分配给内核的软件正在执行的处理未在由检索部302检索到的预测时间内结束的软件的功能。具体而言,例如,在对CPUS#2分配了窗口控制线程的情况下,检测窗口控制线程中的描绘更新处理即使在t·(1+τ)时间或者D时间经过之后也未结束的情况。此外,检测出的结果除了被通知给AMP管理器207以外,还被存储在共享存储器203等存储区域中。
取得部304具有取得各个内核访问共享存储器203的访问速度的实测值的功能。另外,取得部304在由检测部303检测出在预测时间内未结束的软件的情况下,可以取得实测值。具体地说,例如,CPUS#1访问共享存储器203,并根据读写(Read/Write)所花的时间来测量访问速度,从而取得实测值。此外,得到的实测值被存储在各CPU的寄存器或者高速缓冲存储器中。
响应性能计算部305具有根据由取得部304取得的访问速度的实测值和内核的访问速度的理论值,按各个内核计算内核的响应性能的功能。响应性能是指响应性能恶化比R,响应性能恶化比R根据实测值/理论值而求得。另外,还可以互换响应性能恶化比R的计算过程中的分子分母来表示响应性能。访问速度的理论值是指未加负荷的状态下的、CPU访问共享存储器203的访问速度。另外,响应性能计算部305还可以将能够由管理器取得的发行命令计数与动作时钟的比率作为响应性能。
具体地说,例如在理论值为100[Mbps],实测值为20[Mbps]的情况下,响应性能恶化比R为20/100=0.2。应予说明的是计算出的响应性能恶化比R被存储在各CPU的寄存器或者高速缓冲存储器中。
汇集部306具有汇集由响应性能计算部305计算出的响应性能的功能。具体地说,例如,CPUS#2的汇集部306汇集在S-CPUSMP管理器208内计算出的响应性能恶化比R。同样地,CPUL#1的汇集部306汇集在AMP管理器207内计算出的响应性能恶化比R。具体的汇集方法的例为,以固定周期确认响应性能恶化比R被各管理器写入寄存器或者高速缓冲存储器的情况,并在全部的管理器完成写入的阶段进行汇集。
确定部307具有基于由响应性能计算部305计算出的各个内核的响应性能,将多个内核中响应性能最大的内核确定为负荷最低的内核的功能。具体地说,例如,响应性能恶化比R为CPUS#1:CPUS#2:CPUL#1:CPUL#2:CPUL#3=0.2:0.3:0.8:0.9:1.0的情况下,将CPUL#3确定为负荷最低的CPU。此外,确定出CPU的信息被存储在各CPU的寄存器或者高速缓冲存储器中。
响应性能偏差值计算部308具有基于由响应性能计算部305计算出的各个内核的响应性能,来计算各个内核的响应性能的偏差值的功能。响应性能的偏差值例如可以是标准偏差、还可以使用四分位差、平均差、平均偏差等其他统计学偏差值。另外,响应性能偏差值计算部308可以由被确定部307确定为负荷最低的CPU的CPU,来计算响应性能的偏差值。
具体地说,例如假设了将标准偏差用作响应性能的偏差值的情况。作为前述的例,响应性能恶化比R为CPUS#1:CPUS#2:CPUL#1:CPUL#2:CPUL#3=0.2:0.3:0.8:0.9:1.0时,标准偏差σ被算出约为0.326。其中,计算出的响应性能的偏差值被存储在执行了响应性能偏差值计算部308的CPU的寄存器或者高速缓冲存储器中。
判断部309具有判断由响应性能偏差值计算部308计算出的响应性能的偏差值是否比规定值大的功能。规定值例如是误差为Δ,其数值为0.1等。另外,判断部309还可以判断由响应性能计算部305计算出的各个内核的响应性能中的、至少一个内核的响应性能是否在规定阈值以上。另外,判断部309可以由被确定部307确定为负荷最低的CPU的CPU进行判断。
具体地说,例如,如果响应性能的偏差值σ=0.326,误差Δ=0.1,则CPUL#3判断响应性能的偏差值σ比误差Δ大。应予说明,判断结果被存储在执行了判断部309的CPU的寄存器或者高速缓冲存储器中。
访问比率计算部310具有基于由响应性能计算部305计算出的各个内核的响应性能,计算由多个内核访问共享存储器203的访问权的比率的功能。并且,访问比率计算部310按照某个内核的访问权的比率比与某个内核的响应性能相比高的内核的访问权的比率的方式进行计算。
另外,访问比率计算部310还可以在由判断部309判断为响应性能的偏差值比规定值大时,计算访问权的比率。另外,访问比率计算部310还可在由判断部309判断为各个内核的响应性能中的、至少一个内核的响应性能在规定阈值以上的情况下,计算访问权的比率。另外,访问比率计算部310可以由被确定部307确定为负荷最低的CPU的CPU来计算访问权的比率。
作为计算方法之一,当将CPU1、CPU2、···、CPUcnt的响应性能恶化比R设为R1、R2、···、Rcnt,CPU为CNT个时,各CPU的访问权的比率可以如以下的(1)式那样求得。
CPU1:···:CPUcnt=((ΣRn)-R1)/((CNT-1)·(ΣRn)):···:((ΣRn)-Rcnt)/((CNT-1)·(ΣRn))···(1)
ΣRn是CPU1、CPU2、···、CPUcnt的响应性能恶化比R的总和。虽然以式(1)中的(CNT-1)进行除法运算,通过进行除法运算能够使CPU1~CPUcnt的访问权的比率的合计为1。在不需要使合计为1的情况下,无需用ΣRn与(CNT-1)进行除法运算。另外,作为其他的计算方法还可以使用以下的(2)式。
CPU1:···:CPUcnt=1/R1:···:1/Rcnt=ΠRn/R1:···:ΠRn/Rcnt···(2)
ΠRn为CPU1、CPU2、···、CPUcnt的响应性能恶化比R的总乘积。另外,还可以通过(1)式或者(2)式对特定的CPU进行加权。例如,还可以在利用(1)式或者(2)式计算出访问权的比率后,对执行S-CPU主管理器211和CPU主管理器212的CPUS#2、CPUL#1乘以1以上的系数。由此,能够改正多核处理器系统100的CPU的负荷的均衡,并且能够使特定的CPU优先。
具体而言,例如假设了CPUS#1、CPUS#2、CPUL#1的响应性能恶化比R分别为RS#1=0.3、RS#2=0.2、RL#1=0.67的情况。此时,CPUL#3根据(1)式计算CPUS#1、CPUS#2、CPUL#1的访问权的比率为0.41:0.37:0.21。其中,计算出的访问权的比率被存储在执行访问比率计算部310的CPU的寄存器或者高速缓冲存储器中。
通知部311具有将由访问比率计算部310计算出的多个内核访问共享存储器203的访问权的比率通知给仲裁电路204的功能。另外,通知部311可以由被确定部307确定为负荷最低的CPU的CPU来通知访问权的比率。具体而言,例如,在CPUS#1、CPUS#2、CPUL#1的访问权的比率为0.41:0.37:0.21的情况下,CPUL#3在仲裁电路204的寄存器中设定前述的比率。另外,在仲裁电路204的寄存器中以整数设定的情况下,CPUL#3通知访问权之比率为29:26:15。
图4是表示配置文件信息表301的存储内容的一个例子的说明图。配置文件信息表301保存线程名称、处理内容、运用前执行时间t、期限时间D这4个区域(field)。线程名称区域保存处理的名称。具体而言,设定有线程的开始地址,CPU参照线程的开始地址来执行处理。
处理内容区域保存线程内的访问共享存储器203的处理。如果一个线程中有多个访问共享存储器203的处理,则可以将多个处理登记在配置文件信息表301中。运用前执行时间t区域保存在未产生访问竞争的状态下,执行保存在处理内容区域中的处理内容时所消耗的时间。在执行保存在处理内容区域中的处理内容时,收容时间被决定的情况下,期限时间D区域保存结束时间。
具体地说,例如,UI线程具有UI响应处理作为处理内容。作为UI响应处理的例为,基于光标移动而进行的光标图像的更新处理。CPU在无负荷的时刻进行UI响应处理,在以1[毫秒]完成处理的情况下,在运用前执行时间t区域中设定为1[毫秒]。另外,需要在作为UI响应处理的标准的10[毫秒]以内完成的情况下,期限时间D区域为10[毫秒]。
同样,窗口控制线程具有描绘更新处理作为处理内容。作为描绘更新处理的例子为,窗口画面尺寸的图像数据的更新处理。关于窗口控制线程,也进行测量而将运用前执行时间t区域设定为14[毫秒]。如果有以作为窗口控制线程的标准的60[fps](Frame Per Second)进行更新的需要,1次描绘更新处理中的允许时间为1/60≈16[毫秒]。由此,期限时间D区域为16[毫秒]。
同样地,动态图像再生线程具有帧处理作为处理内容。作为帧处理的例子,为动态图像1帧量的图像数据的更新处理。关于动态图像再生线程也进行测量,将运用前执行时间t区域设定为12[毫秒]。作为动态图像再生线程的标准,例如,在需要以30[fps]再生动态图像的情况下,1次帧处理中的允许时间为1/30≈33[毫秒]。由此,期限时间D区域为33[毫秒]。
同样地,Web浏览器线程具有内容(contents)处理作为处理内容。作为内容处理的例子为,内容画面的更新处理。关于Web浏览器线程还进行测量,将运用前执行时间t区域设定为50[毫秒]。在Web浏览器线程的结束时间无特别标准的情况下,期限时间D区域为无时间限制。
在图5~图8中示出多核处理器系统100从线程启动起到成为由各CPU访问共享存储器203的竞争状态,在检测出软件的处理性能异常后,进行负荷改正来改正负荷的不均衡这样一系列的状态。
图5是表示多核处理器系统100中的线程启动开始时刻的状态的说明图。图5中为,分别被分配UI线程作为线程216-1,被分配窗口控制线程作为线程216-2,被分配Web浏览器线程作为线程216-4的状态。在前述的状态下,多核处理器系统100通过UI线程调出动态图像再生线程,通过调度器215-1、调度器215-2被分配动态图像处理作为线程216-3。
另外,各线程的配置文件信息通过从配置文件信息表301检索而取得。具体地说,UI线程所对应的配置文件信息217-1的处理内容为UI响应处理,预测时间为10[毫秒]。同样地,窗口控制线程所对应的配置文件信息217-2的处理内容为描绘更新处理,根据作为标准的60[fps],将预测时间设为16[毫秒]。动态图像再生线程所对应的配置文件信息217-3的处理内容为帧处理,根据作为标准的30[fps],将预测时间设为33[毫秒]。Web浏览器线程所对应的配置文件信息217-4的处理内容为内容处理。将结束时间的限制设为无特别限制。
图6是表示由各CPU访问共享存储器203的访问产生访问竞争的状态的说明图。CPUS#2所执行的窗口控制线程为了实现顺畅的描绘,而以60[fps]这一高帧速率(frame rate)来反复进行描绘。另一方面,由CPUL#1所执行的动态图像再生线程I/O量虽然少,但是是由性能高的CPU执行的,所以成为容易获得访问共享存储器203的访问权的状态。
由此,不管窗口控制线程的访问量601是否多于动态图像再生线程的访问量602,访问共享存储器203的访问权也成为动态图像再生线程更容易获得的状态。
图7是表示检测出软件的处理性能异常的状态的说明图。SMPOS214-1、SMP OS214-2检测各线程的处理性能是否从配置文件信息中记载的处理性能发生偏离。在图6的阶段中,与窗口控制线程的访问量601是否多无关地处于难以获得访问共享存储器203的访问权的状态,所以窗口控制线程的处理性能恶化。于是,窗口控制线程的描绘更新处理在配置文件信息为60[fps]、描绘更新处理的预测时间为16[毫秒]以内未完成处理的情况下,SMP OS214-1检测为异常。
在检测出异常后,SMP OS214-1向AMP管理器207通知异常被检测出。在AMP管理器207内,S-CPU主管理器211与L-CPU主管理器212进行信息通知,并判断是否进行负荷改正。
图8是表示负荷改正仲裁后的状态的说明图。图8中为在AMP管理器207内被判断为通过变更访问共享存储器203的访问权的比率来进行负荷改正的状态。具体地说,CPUS#2通过S-CPU主管理器211的功能对仲裁电路204将访问权的比率例如设定为CPUS#2:CPUL#1=2:1。设定的结果为,CPUS#2由于容易获得向共享存储器203访问的访问权,而降低了为高负荷的CPUS#2的负荷,从而能够使多核处理器系统100的各CPU的负荷很好地均衡。另外,还能够改善窗口控制线程的处理性能,能够遵照处理性能的标准。
另外,图8的访问权的比率的设定的结果为,在CPUL#1正在执行的动态图像再生线程的性能发生恶化的情况下,如图7所示那样,通过SMP OS214-2检测异常,并由AMP管理器207进行访问权的比率的设定。
图9是表示负荷改正前后的响应性能的变化的说明图。附图标记901所示的表中示出了各CPU的响应性能的一个例子。CPUS#1、CPUS#2、CPUL#1的峰值响应性能p分别为100[Mbps]、100[Mbps]、150[Mbps]。同样地,测量响应性能r分别为20[Mbps]、30[Mbps]、100[Mbps]。另外,将仲裁电路204的转送能力设为150[Mbps]。该状态下,计算访问共享存储器203的访问权的比率。
在附图标记902所表示的框图中示出仲裁前与仲裁后的响应性能恶化比R。CPUS#1、CPUS#2、CPUL#1的响应性能恶化比R分别求得为RS#1=20/100、RS#2=30/100、RL#1=100/150。
CPUS#1访问仲裁电路204的访问权的比率根据式(1)如以下那样求得。
((30/100)+(100/150))/((3-1)·((20/100)+(30/100)+(100/150)))=29/70≈0.41
同样地,CPUS#2的访问权的比率如以下那样求得。
((20/100)+(100/150))/((3-1)·((20/100)+(30/100)+(100/150)))=13/35≈0.37
同样地,CPUL#1的访问权的比率如以下那样求得。
((20/100)+(30/100))/((3-1)·((20/100)+(30/100)+(100/150)))=3/14≈0.21
因此,CPUS#1、CPUS#2、CPUL#1访问仲裁电路204的访问权的比率为0.41:0.37:0.21。对仲裁电路204的寄存器进行设定时设定整数的情况下,访问权的比率为29:26:15。按照该比率分配仲裁电路204的转送能力150[Mbps]的情况下,CPUS#1、CPUS#2、CPUL#1的测量响应性能恶化比R如以下那样。
CPUS#1:150×29/(29+26+15)≈62[Mbps]
CPUS#2:150×26/(29+26+15)≈56[Mbps]
CPUL#1:150×15/(29+26+15)≈32[Mbps]
由此,仲裁后的各CPU的响应性能恶化比R分别为RS#1=62/100,RS#2=56/100,RL#1=32/150。
附图标记903所示的线图为表示仲裁前与仲裁后的响应性能恶化比R的变化的线图。如图所示那样,仲裁前的响应性能恶化比R越小的CPU,仲裁后的响应性能恶化比R越大,能够按各个CPU来分散偏离的负荷。具体地说,仲裁前响应性能恶化比R小且高负荷的CPUS#1、CPUS#2的响应性能恶化比R上升,CPUS#1、CPUS#2的负荷减少。
图10A、图10B是仲裁电路控制处理的流程图。仲裁电路控制处理大体能够分解为4个处理。4个处理是指检测处理、测量处理、汇集处理、负荷改正处理。检测处理由执行SMP OS214-1、SMP OS214-2的各CPU执行。测量处理由执行管理器的各CPU执行。汇集处理由执行S-CPU主管理器211、L-CPU主管理器212的CPU执行。负荷改正处理由负荷最低的CPU执行。
检测处理是步骤S1001~步骤S1010所表示的处理。检测处理的功能是检测执行中的线程的处理性能的降低的功能。步骤S1001~步骤S1005由所属于S-CPU组205中的全部的CPU执行。步骤S1006~步骤S1010由所属于L-CPU组206的全部CPU执行。关于步骤S1001~步骤S1005,在本实施方式中,说明S-CPU组205中的、CPUS#2执行检测处理的情况。
CPUS#2执行性能偏离判断处理(步骤S1001)。性能偏离判断处理的详细内容将利用图11后述。执行后,CPUS#2判断偏离是否大,作为判断结果(步骤S1002)。在判断偏离大的情况下(步骤S1002:是),CPUS#2向全部的管理器通知偏离大的线程被检测出(步骤S1003)。具体地说,例如,CPUS#2向由CPUS#1、CPUS#2、···、CPUS#M、与CPUL#1、CPUL#2、···、CPUL#N执行的管理器进行通知。
在判断为偏离小的情况下(步骤S1002:否),CPUS#2执行通常负荷分散处理(步骤S1004)。通常负荷分散处理是通过调度器的功能进行负荷分散的处理。具体而言,例如调度器使优先度低的线程退避,来降低CPU的负荷。在步骤S1003、步骤S1004的处理结束后,CPUS#2进行一定时间的待机(步骤S1005),转移到步骤S1001的处理。
接着,所属于L-CPU组206的全部CPU执行步骤S1006~步骤S1010。步骤S1006~步骤S1010的处理由于与步骤S1001~步骤S1005的处理等同,故省略说明。另外,即使在步骤S1008中CPU也向全部的管理器进行通知。具体地说,例如CPUL#2向由CPUS#1、CPUS#2、···、CPUS#M与CPUL#1、CPUL#2、···、CPUL#N执行的管理器进行通知。
测量处理是由步骤S1021~步骤S1028所示的处理。测量处理的功能是对CPU的响应性能进行测量的功能。测量处理通过基于检测处理的通知而被赋予启动的触发,由各CPU通过管理器的功能而执行。例如,CPUS#1通过S-CPU管理器210的功能执行作为测量处理的步骤S1021、步骤S1022。
从步骤S1003或者步骤S1008接到通知的CPUS#1执行响应性能测量处理(步骤S1021)。响应性能测量处理的详细内容将利用图12进行后述。执行后,CPUS#1向S-CPU主管理器211通知响应性能恶化比R(步骤S1022),并结束处理。作为步骤S1022的处理的具体例子,CPUS#1向CPUL#2的寄存器或者高速缓冲存储器写入响应性能恶化比R。CPUS#1还可以不计算响应性能恶化比R而记述测量响应性能r和峰值响应性能p这2个值。
同样地,CPUS#2还执行步骤S1023、步骤S1024。步骤S1023、步骤S1024的处理由于与步骤S1021、步骤S1022的处理等同,故省略其说明。
从步骤S1003或者步骤S1008收到通知的CPUL#1也与CPUS#1同样地执行响应性能测量处理(步骤S1025)。在执行后,CPUL#1向L-CPU主管理器212通知响应性能恶化比R(步骤S1026),并结束处理。同样地,CPUL#2还执行步骤S1027、步骤S1028。步骤S1027、步骤S1028的处理由于与步骤S1025、步骤S1026的处理等同,故省略其说明。
汇集处理是步骤S1041~步骤S1045所示的处理。汇集处理的功能是对测量出的响应性能恶化比R进行汇集。汇集处理通过基于测量处理的通知而被赋予启动的触发,并由CPU通过管理器的功能而执行。具体地说,例如,CPUS#2通过S-CPU主管理器211的功能来执行作为汇集处理的步骤S1041、步骤S1042。同样地,CPUL#1通过L-CPU主管理器212的功能来执行作为汇集处理的步骤S1043~步骤S1045。
从步骤S1022或者步骤S1024收到通知的CPUS#2汇集CPUS#1~CPUS#M的响应性能恶化比R(步骤S1041)。作为步骤S1022的处理的具体例子,CPUS#2将写入有CPUS#1~CPUS#M的响应性能的寄存器组或者高速缓冲存储器的值清零。然后,CPUS#2确认是否在全部的区域中分别写入CPU的响应性能恶化比R。
在确认全部的区域中写入响应性能恶化比R后,CPUS#2结束步骤S1041的处理。并在汇集响应性能恶化比R,向CPUS#2L-CPU主管理器212通知汇集完成(步骤S1042),并结束处理。
同样地,从步骤S1026或者步骤S1028收到通知的CPUL#1汇集CPUL#1~CPUL#N的响应性能恶化比R(步骤S1043)。在步骤S1043结束后,从CPUS#2收到通知的CPUL#1汇集全部的CPU的响应性能恶化比R(步骤S1044)。汇集后,CPUL#1将响应性能恶化比R最高的CPU确定为负荷最低的CPU(步骤S1045),并结束处理。确定出的CPU执行负荷改正处理。
负荷改正处理是步骤S1061~步骤S1066所示的处理。负荷改正处理的功能是指对多核处理器系统100的各个CPU的负荷进行均衡改正。负荷改正处理是利用通过汇集处理确定出的CPU的管理器的功能而执行的。例如,在通过汇集处理确定了CPUL#3的情况下,CPUL#3利用L-CPU管理器的功能执行作为负荷改正处理的步骤S1061~步骤S1066。在本实施方式中,通过假设利用汇集处理而确定的CPU为CPUL#3的情况来进行说明。
利用汇集处理而确定的CPUL#3执行负荷状态判断处理(步骤S1061)。负荷状态判断处理的详细内容将利用图13后述。在处理结束后,CPUL#3判断负荷状态是否均衡(步骤S1062)。在判断为“均衡”的情况下(步骤S1062:是),CPUL#3结束汇集处理。在判断为“不均衡”的情况下(步骤S1062:否),CPUL#3执行性能恶化原因判断处理(步骤S1063)。性能恶化原因判断处理的详细内容将利用图14后述。
在处理结束后,CPUL#3判断性能恶化原因是否为“由于竞争而导致的性能恶化”(步骤S1064)。在判断为是“由于竞争而导致的性能恶化”的情况下(步骤S1064:是),CPUL#3执行负荷改正处理(步骤S1065),并结束负荷改正处理。负荷改正处理的详细内容将利用图15后述。在判断为“由于高负荷而导致的性能恶化”的情况下(步骤S1064:否),CPUL#3进行OS调度器操作(步骤S1066),并结束负荷改正处理。
作为OS调度器操作的具体例子,通过SMP OS214-1、SMPOS214-2的调度器215-1、调度器215-2进行各线程的退避处理等。另外,如果多核处理器系统100能够咨询用户,则由SMP OS214-1、SMPOS214-2显示作为结束候选的线程的一览,来使用户进行选择。
图11是性能偏离判断处理的流程图。性能偏离判断处理虽然由全部的CPU执行,但在本实施方式中,以由CPUS#1执行的状态为例进行说明。CPUS#1从配置文件信息表301取得运用前执行时间t、期限时间D(步骤S1101)。接下来,CPUS#1取得运用中的有效时间T(步骤S1102)。作为运用中的有效时间T的取得方法的具体例,各CPU执行的线程能够在一边取得其本身经过了何种程度的时间并一边进行动作。各CPU将线程取得的经过时间作为运用中的有效时间T来取得。
CPUS#1使用t与T来判断是否为t·(1+τ)<T(步骤S1103)。其中,τ为由于系统化的开销,是由于OS动作、系统处理过程等而导致的性能恶化量。具体的τ的值为0.1。在判断为步骤S1103的不等式不成立的情况下(步骤S1103:否),CPUS#1继续判断是否D<T(步骤S1104)。
在判断为步骤S1104的不等式不成立的情况下(步骤S1104:否),CPUS#1将判断结果输出为“偏离小”(步骤S1106),并结束性能偏离判断处理。在判断为步骤S1103或者步骤S1104的不等式中的任意一个成立的情况下(步骤S1103:是,步骤S1104:是),CPUS#1将判断结果输出为“偏离大”(步骤S1105),并结束性能偏离判断处理。
另外,动态图像再生线程等通常不以1帧中结束处理,而进行存在于共享存储器203中的缓冲器量所对应的处理。因此,CPUS#1还可以考虑缓冲器量来判断性能是否偏离。例如,在缓冲器量存在10帧的量时,即使在1帧量的处理中CPUS#1判断为“偏离大”,只要10帧量合计不超过预测时间的10倍的值,就能够遵照处理性能的标准。该情况下,CPUS#1也可以输出为“偏离小”。
图12是响应性能测量处理的流程图。响应性能测量处理虽然由全部的CPU执行,但在本实施方式中,以由CPUS#1执行的状态为例来进行说明。CPUS#1访问共享存储器203,并根据响应时间来对测量响应性能r进行测量(步骤S1201)。在测量后,CPUS#1计算出响应性能恶化比R=r/p(步骤S1202),并结束响应性能测量处理。
图13是负荷状态判断处理的流程图。负荷状态判断处理被通过汇集处理确定的CPU执行,故存在由任意CPU均可执行的可能性。在此,结合图10的例子,假设了CPUL#3执行负荷状态判断处理的状态。
CPUL#3计算响应性能恶化比R的平均值Rave=(1/CNT)×ΣRn(步骤S1301)。在此CNT是CPUs101的合计个数,具体地说,是CPUS#1~CPUS#M与CPUL#1~CPUL#N的合计个数。ΣRn是CPUS#1~CPUS#M与CPUL#1~CPUL#N的响应性能恶化比R的总和。接下来,CPUL#3通过σ=((1/CNT)×Σ(Rave-Rn)^2)^0.5来计算响应性能恶化比R的标准偏差σ(步骤S1302)。
在标准偏差σ算出后,CPUL#3判断是否σ>Δ(步骤S1303)。Δ为规定的误差。在判断为σ>Δ的情况下(步骤S1303:是),CPUL#3将负荷状态输出为“不均衡”(步骤S1304),并结束负荷状态判断处理。在判断为非σ>Δ的情况下(步骤S1303:否),CPUL#3将负荷状态输出为“均衡”(步骤S1305),并结束负荷状态判断处理。
图14是性能恶化原因判断处理的流程图。性能恶化原因判断处理也结合图10的例,假定了CPUL#3执行负荷状态判断处理的状态。CPUL#3准备变量i,设定i=1(步骤S1401)。接着,CPUL#3选择CNT个CPU中的第i个CPU(步骤S1402)。在选择后,CPUL#3判断所选择的第i个CPU的响应性能恶化比Ri<Rborder是否成立(步骤S1403)。
在此,Rborder为判断所选择的CPU是否为高负荷的阈值。例如,若Rborder=1,CPUL#3则将虽然小但也是性能恶化的CPU判断为高负荷。另外,由于通常响应性能恶化比R为0.3~0.8的范围,所以还可以为Rborder=0.8。
在判断为Ri比Rborder小的情况下(步骤S1403:是),CPUL#3接下来判断是否选择了第CNT个CPU(步骤S1404)。在判断为未选择第CNT个CPU的情况下(步骤S1404:否),CPUL#3对变量i加1(步骤S1405),并转移到步骤S1402的处理。
在判断为选择了第CNT个CPU的情况下(步骤S1404:是),CPUL#3将性能恶化原因判断为“由于高负荷而导致的性能恶化”(步骤S1406),并结束性能恶化原因判断处理。在判断为Ri在Rborder以上的情况下(步骤S1403:否),CPUL#3将性能恶化原因判断为“由于竞争而导致的性能恶化”(步骤S1407),并结束性能恶化原因判断处理。
图15是负荷改正处理的流程图。对于负荷改正处理,也结合图10的例子,假设了CPUL#3执行负荷状态判断处理的状态。CPUL#3准备变量i,设定i=1(步骤S1501)。接下来,CPUL#3选择CNT个CPU中的、第i个CPU(步骤S1502)。在选择后,CPUL#3将选择的第i个CPU向共享存储器203访问的访问权的比率设定为((ΣRn)-Ri)/((CNT-1)·(ΣRn))(步骤S1503)。
在设定后,CPUL#3判断是否选择了第CNT个CPU(步骤S1504)。在判断为未选择第CNT个CPU的情况下(步骤S1504:否),CPUL#3对变量i加1(步骤S1505),并转移到步骤S1502的处理。在判断为选择了第CNT个CPU的情况下(步骤S1504:是),CPUL#3将第1~CNT个CPU访问共享存储器203的访问权的比率通知给仲裁电路204(步骤S1506),并结束负荷改正处理。
如以上说明那样,采用多核处理器系统、仲裁电路控制方法以及仲裁电路控制程序,并根据向共享存储器访问的访问速度的实测值和理论值来计算响应性能。基于计算出响应性能,并以低响应性能的CPU向共享存储器的访问多方式来计算多个CPU的访问权的比率,通知给仲裁电路。由此,能够改正多核处理器系统的各CPU的负荷的均衡。尤其,在异构多核中各CPU的负荷容易变得不均衡的、本实施方式涉及的多核处理器系统中,能够有效活用CPU的资源。
另外,多核处理器系统可以基于各个CPU的响应性能,来计算各个CPU的响应性能的偏差值,在响应性能的偏差值比规定的值大时,计算多个CPU的访问权的比率。由此,在高负荷的CPU与低负荷的CPU混在,负荷改正的效果大时,通过计算访问权的比率,能够改正各CPU的负荷的均衡。另外,在各CPU的负荷几乎均衡,负荷改正的效果小时,能够不计算访问权的比率而对CPU减少负荷改正处理量的负荷。
另外,还可以在多核处理器系统在各个内核的响应性能中的、至少一个内核的响应性能在规定阈值以上的情况下,计算访问权的比率。由此,在高负荷的CPU与低负荷的CPU混在,负荷改正的效果大时,通过计算访问权的比率,能够改正各CPU的负荷的均衡。在全部CPU为高负荷,负荷改正的效果小时,能够不计算访问权的比率而对CPU减少负荷改正处理量的负荷。
另外,多核处理器系统还可以从数据库检索与分配给CPU的软件正在执行的处理对应的预测时间,在检测出在预测时间内未结束的软件的情况下,计算访问权的比率。由此,在以各CPU的负荷的不均衡为原因的软件的处理性能产生问题时,能够改正各CPU的负荷的均衡,解决软件的处理性能的问题。
另外,多核处理器系统还可以基于各个CPU的响应性能,使用多个内核中响应性能最大的内核计算访问权的比率。由此,通过使用最低负荷的CPU来计算访问权的比率,即使在基于仲裁电路控制处理而产生的负荷中,也能够保持各CPU的负荷的均衡。
此外,在本实施方式中说明的仲裁电路控制方法能够通过在个人计算机、工作站等计算机中执行预先准备的程序来实现。本仲裁电路控制程序记录在硬盘、软盘、CD-ROM、MO、DVD等能够由计算机读取的记录介质中,能够通过由计算机从记录介质中读出而执行。另外,本仲裁电路控制程序哈可以经由网络等网络而分配。
附图标记说明:
S#1:CPU;S#2:CPU;L#1:CPU;L#2:CPU;L#3:CPU;110:总线;203:共享存储器;204:仲裁电路;301:配置文件信息表;302:检索部;303:检测部;304:取得部;305:响应性能计算部;306:汇集部;307:确定部;308:响应性能偏差值计算部;309:判断部;310:访问比率计算部;311:通知部。

Claims (7)

1.一种多核处理器系统,其特征在于,具有:
多个内核;
共享存储器,其被所述内核访问;和
仲裁电路,其仲裁所述多个内核访问所述共享存储器的访问权的竞争,
所述多核处理器系统具备:
取得单元,其取得各个所述内核访问所述共享存储器的访问速度的实测值;
第1计算单元,其按各个所述内核根据由所述取得单元取得的访问速度的实测值和所述内核的访问速度的理论值来计算所述内核的响应性能;
第2计算单元,其基于由所述第1计算单元计算出的各个所述内核的响应性能,按照所述内核的访问权的比率大于比所述内核的响应性能高的内核的访问权的比率的方式来计算所述多个内核访问所述共享存储器的访问权的比率;和
通知单元,其将由所述第2计算单元计算出的所述多个内核访问所述共享存储器的访问权的比率通知给所述仲裁电路。
2.根据权利要求1所述的多核处理器系统,其特征在于,
还具备:
第3计算单元,其基于由所述第1计算单元计算出的各个所述内核的响应性能,来计算各个所述内核的响应性能的偏差值;和
判断单元,其判断由所述第3计算单元计算出的响应性能的偏差值是否比规定的值大,
在由所述判断单元判断为所述响应性能的偏差值比所述规定的值大的情况下,所述第2计算单元按照使所述内核的访问权的比率大于比所述内核的响应性能高的内核的访问权的比率的方式,并基于由所述第1计算单元计算出的各个所述内核的响应性能,来计算所述多个内核访问所述共享存储器的访问权的比率。
3.根据权利要求2所述的多核处理器系统,其特征在于,
所述判断单元判断由所述第1计算单元计算出的各个所述内核的响应性能中的、至少一个内核的响应性能是否在规定的阈值以上,
在由所述判断单元判断为至少一个内核的响应性能在所述规定的阈值以上的情况下,所述第2计算单元基于由所述第1计算单元计算出的各个所述内核的响应性能,并按照使所述内核的访问权的比率大于比所述内核的响应性能高的内核的访问权的比率的方式,来计算所述多个内核访问所述共享存储器的访问权的比率。
4.根据权利要求3所述的多核处理器系统,其特征在于,
还具备:
检索单元,其从按在软件内执行的各个规定处理存储了该规定处理结束的预测时间的数据库中,检索与分配给所述内核的软件正在执行的处理对应的所述预测时间;和
检测单元,其按各个所述内核检测由所述检索单元检索出的、处理在预测时间内未结束的软件,该处理为分配给所述内核的软件正在执行的处理,
在由所述检测单元检测出所述规定处理在所述预测时间内未结束的软件时,所述取得单元取得各个所述内核访问所述共享存储器的访问速度的实测值。
5.根据权利要求4所述的多核处理器系统,其特征在于,
还具有确定单元,该确定单元基于由所述第1计算单元计算出的各个所述内核的响应性能,将所述多个内核中响应性能最大的内核确定为负荷最低的内核,
所述第2计算单元计算由所述确定单元确定出的内核访问所述共享存储器的访问权的比率。
6.一种仲裁电路控制方法,其特征在于,
多个内核中的特定内核执行下述步骤,来实现仲裁所述多个内核访问共享存储器的访问权的竞争的仲裁电路的控制,即:
取得各个所述内核访问所述共享存储器的访问速度的实测值的取得步骤;
基于根据由所述取得步骤取得的各个所述内核的访问速度的实测值与各个所述内核的访问速度的理论值计算出的各个所述内核的响应性能,并按照使所述内核的访问权的比率大于比所述内核的响应性能高的内核的访问权的比率的方式,来计算所述多个内核访问所述共享存储器的访问权的比率的计算步骤;和
将由所述计算步骤计算出的所述多个内核访问所述共享存储器的访问权的比率通知给所述仲裁电路的通知步骤。
7.一种仲裁电路控制程序,其特征在于,
使多个内核中的特定内核执行以下步骤,来实现仲裁所述多个内核访问共享存储器的访问权的竞争的仲裁电路的控制,即:
取得各个所述内核访问所述共享存储器的访问速度的实测值的取得步骤;
基于根据由所述取得步骤取得的各个所述内核的访问速度的实测值与各个所述内核的访问速度的理论值计算出的各个所述内核的响应性能,并按照使所述内核的访问权的比率大于比所述内核的响应性能高的内核的访问权的比率的方式,来计算所述多个内核访问所述共享存储器的访问权的比率的计算步骤;和
将由所述计算步骤计算出的所述多个内核访问所述共享存储器的访问权的比率向所述仲裁电路通知的通知步骤。
CN201080065475.9A 2010-03-18 2010-03-18 多核处理器系统及控制方法 Expired - Fee Related CN102804149B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/054709 WO2011114496A1 (ja) 2010-03-18 2010-03-18 マルチコアプロセッサシステム、調停回路制御方法、および調停回路制御プログラム

Publications (2)

Publication Number Publication Date
CN102804149A true CN102804149A (zh) 2012-11-28
CN102804149B CN102804149B (zh) 2016-01-13

Family

ID=44648624

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080065475.9A Expired - Fee Related CN102804149B (zh) 2010-03-18 2010-03-18 多核处理器系统及控制方法

Country Status (5)

Country Link
US (1) US9110733B2 (zh)
EP (1) EP2549384B1 (zh)
JP (1) JP5541355B2 (zh)
CN (1) CN102804149B (zh)
WO (1) WO2011114496A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150005A (zh) * 2013-03-01 2013-06-12 福州瑞芯微电子有限公司 非对称低功耗移动设备的多核结构
CN108885570A (zh) * 2016-06-24 2018-11-23 日立汽车系统株式会社 车辆控制装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6060098B2 (ja) * 2014-01-29 2017-01-11 日本電信電話株式会社 応答品質推定装置、応答品質推定方法およびプログラム
US9483299B2 (en) * 2014-06-30 2016-11-01 Bmc Software, Inc. Capacity risk management for virtual machines
JP6490552B2 (ja) * 2015-09-29 2019-03-27 シャープ株式会社 情報処理装置、電子機器、制御プログラム、および情報処理装置の制御方法
CN106793093B (zh) * 2015-11-19 2019-12-06 大唐移动通信设备有限公司 一种业务处理方法及装置
US9971580B2 (en) * 2016-03-18 2018-05-15 Intel Corporation Fast access and use of common data values relating to applications in parallel computing environments
CN105808357B (zh) * 2016-03-29 2021-07-27 沈阳航空航天大学 性能可精确控制多核多线程处理器
FR3061327B1 (fr) * 2016-12-26 2019-05-31 Thales Procede de controle d'un processeur multi-coeurs et calculateur associe
US10824475B2 (en) * 2017-03-24 2020-11-03 Tata Consultancy Services Limited Systems and methods for estimating computation times a-priori in fog computing robotics
JP6995644B2 (ja) * 2018-01-23 2022-01-14 日立Astemo株式会社 電子制御装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136381A1 (en) * 2004-12-17 2006-06-22 Glaser Howard J Method and system for a text based search of a self-contained document
EP1785828A1 (en) * 2005-11-01 2007-05-16 Hitachi, Ltd. Storage system
CN101256515A (zh) * 2008-03-11 2008-09-03 浙江大学 多核处理器操作系统负载均衡的实现方法
CN101610209A (zh) * 2008-11-28 2009-12-23 北京网康科技有限公司 一种多核并行的网络业务流处理方法及设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2504818B2 (ja) * 1988-11-24 1996-06-05 富士通株式会社 マルチプロセッサ装置における共通メモリ制御方法
JPH07281942A (ja) * 1994-04-14 1995-10-27 Asahi Kasei Micro Syst Kk 共有資源のアービトレーション方法
US5682522A (en) * 1995-07-18 1997-10-28 Silicon Integrated Systems Corp. Shared memory architecture of graphics frame buffer and hard disk cache
JPH10143382A (ja) * 1996-11-08 1998-05-29 Hitachi Ltd 共有メモリ型マルチプロセッサシステムの資源管理方法
JPH11110363A (ja) 1997-09-30 1999-04-23 Sharp Corp マルチプロセッサシステム
JP2002244917A (ja) * 2001-02-15 2002-08-30 Matsushita Electric Ind Co Ltd アクセス管理装置、およびプログラム
JP2003271404A (ja) * 2002-03-19 2003-09-26 Fujitsu Ltd マルチプロセッサシステム
US20060136681A1 (en) * 2004-12-21 2006-06-22 Sanjeev Jain Method and apparatus to support multiple memory banks with a memory block
JP2007004595A (ja) 2005-06-24 2007-01-11 Hitachi Ltd コンピュータ制御方法、コンピュータ、情報処理システム、及びプログラム
ATE535856T1 (de) 2005-07-14 2011-12-15 Nxp Bv Verwendung von vorgeschichtlichen lastprofilen zur dynamischen justierung der betriebsfrequenz und verfügbaren leistung für einen prozessorkern eines in der hand gehaltenen multimedia-geräts
TW200805047A (en) 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
JP2008027245A (ja) * 2006-07-21 2008-02-07 Matsushita Electric Ind Co Ltd メモリアクセス制御装置およびメモリアクセス制御方法
JP2008117001A (ja) * 2006-10-31 2008-05-22 Matsushita Electric Works Ltd 共有メモリインターフェイス
US8209493B2 (en) * 2008-03-26 2012-06-26 Intel Corporation Systems and methods for scheduling memory requests during memory throttling
JP2009251871A (ja) * 2008-04-04 2009-10-29 Nec Corp 競合分析装置、競合分析方法、およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136381A1 (en) * 2004-12-17 2006-06-22 Glaser Howard J Method and system for a text based search of a self-contained document
EP1785828A1 (en) * 2005-11-01 2007-05-16 Hitachi, Ltd. Storage system
CN101256515A (zh) * 2008-03-11 2008-09-03 浙江大学 多核处理器操作系统负载均衡的实现方法
CN101610209A (zh) * 2008-11-28 2009-12-23 北京网康科技有限公司 一种多核并行的网络业务流处理方法及设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150005A (zh) * 2013-03-01 2013-06-12 福州瑞芯微电子有限公司 非对称低功耗移动设备的多核结构
CN108885570A (zh) * 2016-06-24 2018-11-23 日立汽车系统株式会社 车辆控制装置
CN108885570B (zh) * 2016-06-24 2021-11-19 日立安斯泰莫株式会社 车辆控制装置

Also Published As

Publication number Publication date
WO2011114496A1 (ja) 2011-09-22
EP2549384A1 (en) 2013-01-23
CN102804149B (zh) 2016-01-13
JP5541355B2 (ja) 2014-07-09
EP2549384B1 (en) 2018-01-03
JPWO2011114496A1 (ja) 2013-06-27
EP2549384A4 (en) 2013-05-22
US9110733B2 (en) 2015-08-18
US20130013834A1 (en) 2013-01-10

Similar Documents

Publication Publication Date Title
CN102804149B (zh) 多核处理器系统及控制方法
US11385793B2 (en) Methods and apparatus to manage workload memory allocation
US9519562B2 (en) Process demand prediction for distributed power and resource management
EP2701064B1 (en) Robust tenant placement and migration in database-as-a-service environments
US20230418997A1 (en) Comprehensive contention-based thread allocation and placement
Hugo et al. Composing multiple StarPU applications over heterogeneous machines: a supervised approach
US10871996B2 (en) Detection, modeling and application of memory bandwith patterns
CN100590596C (zh) 多节点计算机系统和用于监视其性能的方法
Castro et al. A machine learning-based approach for thread mapping on transactional memory applications
US8161493B2 (en) Weighted-region cycle accounting for multi-threaded processor cores
KR20120030557A (ko) 가상화된 환경들 내의 리소스 할당
JP2015504541A (ja) マルチプロセッサ・コンピューティング・システムにおけるメモリ・アクセスを動的に最適化する方法、プログラム、及びコンピューティング・システム
JP5696807B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
Cho et al. Performance modeling of parallel loops on multi-socket platforms using queueing systems
US20140189701A1 (en) Methods, systems and apparatuses for processor selection in multi-processor systems
Saez et al. LFOC+: A fair OS-level cache-clustering policy for commodity multicore systems
Wang et al. Addressing skewness in iterative ml jobs with parameter partition
JP5704176B2 (ja) プロセッサ処理方法、およびプロセッサシステム
Navarro-Torres et al. BALANCER: bandwidth allocation and cache partitioning for multicore processors
US20240311173A1 (en) Scheduling method, virtual machine monitor, electronic device and storage medium
Cepillo A Microarchitectural Analysis of Machine Learning Algorithms on Spark
Silliman 3350 DASD
JPS6280734A (ja) 実cpu負荷の測定手段を有する仮想計算機システム
JP2008191881A (ja) 計算負荷最適化装置および計算負荷最適化方法

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: 20160113

Termination date: 20180318

CF01 Termination of patent right due to non-payment of annual fee