CN105723340B - 信息处理设备、信息处理方法、记录介质、计算处理设备、计算处理方法 - Google Patents
信息处理设备、信息处理方法、记录介质、计算处理设备、计算处理方法 Download PDFInfo
- Publication number
- CN105723340B CN105723340B CN201480061338.6A CN201480061338A CN105723340B CN 105723340 B CN105723340 B CN 105723340B CN 201480061338 A CN201480061338 A CN 201480061338A CN 105723340 B CN105723340 B CN 105723340B
- Authority
- CN
- China
- Prior art keywords
- processing
- core
- calculation
- exception
- computing
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception handling
Abstract
本发明解决了OS抖动和缓存污染的问题以及多样性的损失和开发成本的增加。信息处理装置在其上安装操作系统的控制核心以及由控制核心控制且执行预定计算处理的至少一个计算核心。控制核心包括计算核心控制单元,用于指令停止中的计算核心开始要由计算核心执行的计算处理。计算核心包括:计算处理控制单元,用于控制计算核心,以便响应于由计算核心控制单元提供的关于开始计算处理的指令而开始计算处理;以及例外检测单元,用于检测在执行计算处理期间发生的预设例外处理,并且停止发生了例外处理的计算处理。
Description
技术领域
本发明涉及信息处理装置、信息处理方法、记录介质、计算处理装置和计算处理方法,特别涉及用于通过多个处理器进行并行计算的信息处理装置、信息处理方法、程序、计算处理装置和计算处理方法。
背景技术
已知NUMA(非统一存储器存取)型并行计算机,其中,多个节点通过互连连接起来,每个节点包括处理器-存储器对。NUMA型并行计算机是在存取属于处理器的节点的本地存储器和存取属于另一节点的远程存储器之间具有非统一存取成本的系统。
已知的这样的并行计算机的示例是这样的,其包括多个簇,簇有一个或多个处理器和一个或多个处理器所使用的主存储器构成,其中,处理器的虚拟空间的一部分具备在实际存储器中驻留的通信区域。该并行计算机可以降低处理器之间的数据通信的开销(PTL1)。
已知的另一示例是具有控制节点和计算节点的计算机系统,其中,计算节点可以被配置为仅执行远程处理(PTL 2)。
[引用列表]
[专利文献]
[PTL 1]日本待审专利申请公开No.06-019856
[PTL 2]日本待审专利申请公开No.10 2008-165318
发明内容
[技术问题]
通常,中断处理发生在这样的并行计算机上,由来自诸如操作系统(OS)的系统控制程序的干扰(例如计时器中断)引起。这可能导致应用在各节点间运行的非统一速度。因此,处理器可能需要等待与其他处理器同步,从而导致被称为OS抖动的问题,其减慢了并行程序的执行。
此外,应用程序不使用的一些数据可能由于发生在诸如内核处理的OS处理期间的存储器存取而存储在缓存中。结果,要由应用程序使用的任何数据可能被从缓存驱逐出来,这是给称为缓存污染的问题。
这样的问题的解决方案可以包括,例如,限制对称多处理器(SMP)计算机上的锁以限制执行系统呼叫的处理器或者使用基于微内核的分布式OS。但是,这些方法,即传送(卸载)OS功能的权力从一个节点到另一个,需要专用于要被连接的每个输入/输出(I/O)设备的设备驱动的开发。常规上,这使得难以支持各种设备。
一种缓解这个问题的替换方式可以利用加速计型计算机。但是,OS不在加速计型计算机上运行。出于这个原因,加速计型计算机不具备通过广泛传播的编程语言(例如C语言)汇编的API(应用编程接口)(例如POSIX(用于UNIX(注册商标)API的便携操作系统接口)),并且因此没有执行基本系统控制的能力。因此,对于加速计型计算机,必须使用专用语言来开发,这使得难以利用现有编程资产。此外,编程资产的优化可能有时具有困难。
降低OS开发成本的技术可能包括通过使用虚拟机的虚拟化。例如,开发OS或设备驱动的需要可以通过引入虚拟机模拟商品架构为与商品架构不同的计算机架构来消除。通常,虚拟机比典型OS简单。因此,引入虚拟机被认为获得了开发成本上的降低。但是,基于虚拟机的虚拟化由于通过虚拟机的模拟而造成了开销。此外,基于虚拟机的虚拟化没有提供对OS抖动和缓存污染的上述问题的解决方案。
如上所见,并行计算机形成了OS抖动和缓存污染的问题。解决这些问题的努力常规地会造成其他问题,诸如多样性的损失以及开发成本的增加。
因此,本发明的目标在于,提供一种信息处理装置,其提供对上述问题的解决方案:并行计算机中的OS抖动和缓存污染以及多样性损失和开发成本增加。
[问题的解决方案]
为了获得目标,根据本发明的一个方面的信息处理装置包括控制核心,在其上安装操作系统;以及至少一个计算核心,其由控制核心来控制且执行预定计算处理。所述控制核心包括计算核心控制单元,用于指令停止中的计算核心开始要由计算核心执行的计算处理。以及,所述计算核心包括:计算处理控制单元,用于控制计算核心,使得计算核心响应于指令开始计算处理,所述指令由计算核心控制单元提供以开始计算处理;以及例外检测单元,用于检测在执行计算处理期间发生的预设例外处理并且停止发生例外处理的计算处理。
根据本发明另一方面的计算机可读记录介质存储用于包括信息处理装置的计算机的程序,所述信息处理装置包括:控制核心,在其上安装操作系统;以及至少一个计算核心,其由控制核心来控制且执行预定计算处理。所述程序使得计算机执行:计算核心控制处理,用于指令停止中的计算核心开始要由计算核心执行的计算处理;计算处理控制处理,用于控制计算核心,使得计算核心响应于指令开始计算处理,所述指令用来开始计算处理;以及例外检测处理,用于检测在执行计算处理期间发生的预设例外处理并且停止发生例外处理的计算处理的执行。
根据本发明的另一方面的信息处理方法包括:由计算核心响应于由控制核心提供的开始计算处理的指令而开始预定的计算处理;以及当在执行由计算核心执行的计算处理期间发生预设例外处理时,由计算核心检测例外处理,并且由计算核心停止发生了例外处理的计算处理。
根据本发明的另一方面的计算装置是一种计算处理装置,其在外部装置的控制下执行预定计算处理,所述计算处理装置包括:计算处理控制单元,用于控制计算处理装置,使得计算处理装置响应于指令开始计算处理,所述指令由外部装置提供用来开始计算处理;以及例外检测单元,用于检测在执行计算处理期间发生的预设例外处理并且停止发生例外处理的计算处理的执行。
根据本发明的另一方面的计算机可读存储介质存储使得计算处理装置执行以下处理的程序:计算处理控制处理,用于控制计算处理装置,使得计算处理装置响应于指令开始计算处理,所述指令由外部装置提供用来开始计算处理;以及例外检测处理,用于检测在执行计算处理期间发生的预设例外处理并且停止发生例外处理的计算处理的执行。
根据本发明的另一方面的计算处理方法包括:响应于指令而开始预定的计算处理,所述指令由外部装置提供用来开始计算处理;以及当在执行计算处理期间发生预设例外处理时,检测例外处理并且停止发生了例外处理的计算处理。
[发明的有益效果]
通过上述的配置,本发明可以提供廉价且通用的信息处理装置,其解决了OS抖动和缓存污染的问题。
附图说明
图1是图示说明第一示例实施例中考虑的并行计算机的配置的框图。
图2是图示说明根据第一示例实施例的并行计算机的配置的框图。
图3是图示说明在图2中描绘的计算节点中包括的计算核心的配置的框图。
图4是图示说明图2中描绘的代理处理的配置的功能框图。
图5是示出根据第一示例实施例的处理关联表中存储的映射数据的示例的表。
图6是示出根据第一示例实施例的计算处理DB中存储的数据的示例的表。
图7是示出第一实施例中在计算处理从其开始到其结束期间所需要的操作具有怎样效果的流程图。
图8是示出当开始计算处理时执行的操作的流程图。
图9是示出当停止计算处理的执行时所执行的操作的流程图。
图10是示出当处理计算处理上发生的例外时执行的操作的流程图。
图11是示出当计算处理需要OS服务时执行的操作的流程图。
图12是示出当计算处理到计算核心的分配改变时执行的操作的流程图。
图13是当终止计算处理时执行的操作的流程图。
图14是图示说明根据第二示例实施例的信息处理装置的配置的框图。
图15是图示说明根据第三示例实施例的信息处理装置的通用配置的框图。
图16是图示说明根据第四示例实施例的计算处理装置的通用配置的框图。
具体所述方式
<示例实施例1>
现在将结合图1到13来描述本发明的第一示例实施例。图1是图示说明第一示例实施例中考虑的并行计算机1的配置的框图。图2是图示说明根据第一示例实施例的并行计算机1的配置的框图。图3是图示说明在计算节点6中包括的计算核心611的配置的框图。图4是图示说明代理处理511的配置的功能框图。图5是示出处理关联表522中存储的映射数据的示例的表。图6是示出计算处理DB 521中存储的数据的示例的表。图7是示出第一实施例中在计算处理从其开始到其结束期间所需要的操作具有怎样效果的流程图。图8到13是示出计算处理从其开始到其结束期间所需的操作的流程图。
(配置)
作为第一示例实施例,现在将描述具有NUMA型存储器的并行计算机1。术语NUMA代表这样的配置,其中多个节点每个由存储器-处理器对构成,互相通过互连而链接。根据本示例实施例的并行计算机1可以用于例如高性能计算(HPC)的领域中。
首先,结合图1来描述根据本示例实施例的并行计算机1的基本配置。如图1中所图示,本示例实施例的并行计算机1包括节点2和节点3。节点2包括中央处理单元(CPU)21、存储器22和数据传送电路23。节点3包括CPU 31、存储器32和数据传送电路33。节点2包括CPU31、存储器32和数据传送点路33。节点2和3经由节点间通信设备4(包括数据传送电路的一部分)互相通信连接。
根据本示例实施例的并行计算机1中包括的节点2和3分别被配置为包括CPU(21或31)、存储器(22或32)和数据传送电路(23或33)。节点2和3每个以相同方式配置。因此,下面描述了怎样配置节点2。
应该注意的是,尽管在本示例实施例中所述的并行计算机1包括两个节点,根据本示例实施例的并行计算机1可以被配置为包括两个或更多的节点。此外,节点可以利用不同的架构,诸如x86和ARM(注册商标)。
CPU 21被配置为包括一个或多个处理器核心。在本示例实施例中,CPU 21包括多个处理器核心,即处理器核心211、212、……和21m(其中m是自然数),所有都在下文中被称为处理器核心211(除非个别标识)。每个处理器核心211包括到/来自存储器22和数据传送电路23的通信路径。换句话说,CPU 21中包括的每个处理器核心211被配置为能够与存储器22和与数据传送电路23通信。
存储器22存储数据、要执行的程序等。存储器22由包括在CPU 21中的多个处理器核心211(相同节点中的处理器核心)共享。根据本示例实施例的存储器22被配置为半导体存储器的形式,诸如随机存取存储器(RAM)。
数据传送电路23被配置为包括两个功能,即直接存储器存取(DMA)引擎功能231和CPU定向通信功能232。DMA引擎功能231是将CPU 21旁路而存取存储器22的功能。CPU定向通信功能232是存取CPU 21上的寄存器和其他资源的功能。换句话说,数据传送电路23包括通过将CPU 21旁路而存取存储器22的功能和存取CPU 21上的寄存器和其他资源的功能。注意,CPU定向的通信功能232可以被配置为允许CPU 21上的寄存器和其他资源分配到DMA引擎功能231将进行存取的存储器空间。
以上描述了根据本示例实施例的并行计算机1中包括的节点2的配置。如上所述,节点3以与节点2相同的方式而配置。也就是,节点3包括CPU 31、存储器32和数据传送电路33。CPU 31包括多个处理器核心,即处理器核心311、312、……和31m(所有都在下文中被称为处理器核心311,除非个别标识)。数据传送电路33包括DMA引擎功能331和CPU定向的通信功能332。每个配置的细节已经关于节点2进行了描述且因此在此忽略。
如上所述,节点2和3经由节点间通信设备4相互通信连接。节点间通信设备4可以通过例如具有DMA功能(诸如PCI(外围部件互连)快连或InfiniBand)或远程DMA(RDMA)功能的互连以及通过传输线来实现。
在本示例实施例中,并行计算机1中包括的多个节点通过称呼一个节点为“控制节点”而称呼任何其他节点(控制节点以外的任何节点)为“计算节点”来区分。换句话说,根据本示例实施例的并行计算机1由一个控制节点和一个或多个计算节点构成。此外,在根据本示例实施例的并行计算机1中,控制节点具有OS功能而计算节点不具有OS功能。
像一般OS一样,控制节点具有在计算节点上部署多个处理以同时执行计算处理的性能。由控制节点在计算节点上部署的处理在下文中被称为计算处理。如稍后所述,计算处理在开始在计算节点上运行的应用程序时生成且随后在终止程序的执行时被丢弃。
下面提供了对参考图2的并行计算机1的详细描述,假设图1中的节点2和3分别是控制节点5和计算节点6,构成并行计算机。在下面的描述中,计算节点6上的处理器核心311被称为计算核心。
首先,下面描述的计算节点的配置并不是如上所述运行在计算节点6上(其中没有安装OS)。如稍后讨论的,根据本示例实施例的并行计算机1被配置为使得没有运行OS的计算节点6可以利用通用计算机实现的计算模型。换句话说,计算节点通过经由节点间通信设备4发送数据到控制节点5/从控制节点5接收数据,来获取功能,替换由一般OS所提供的服务。
本示例实施例的计算节点6(其对应于图1中的节点3)被配置为包括CPU 31、存储器32和数据传送电路33,如上所述(参见图1)。CPU 31被配置为包括多个处理器核心311。计算节点6包括多个计算核心611、612、……和61m(所有都在下文被称为计算核心611,除非个别标识),如图2中所图示。
如上面的描述,图2中的多个计算核心611与图1中的它们的对应处理器核心311(计算节点6上的处理器核心311被称为计算核心611,如上所述)是相同的。也就是,计算节点6中包括的CPU 31被配置为包括多个计算核心611。多个计算核心611中的每个被配置为能够与存储器32通信以及与数据传送电路33通信。注意,可能只存在一个处理器核心311,如上所述。也就是,计算核心611的数目可能是一个。稍后将描述计算核心611的详细配置。
存储器32由相同计算节点6中的计算核心611所共享,如上所述。如图2中所图示,计算节点6中的存储器32被配置为存储关于计算处理的多个数据片段。存储在存储器32中的关于计算处理的数据片段下文被称为处理图像321、322、……和32n(其中n是自然数)(所有都在下文被称为处理图像321,除非个别标识)。
处理图像321分别包括通信缓冲区域3211、3221、……和32n1(所有都在下文被称为通信缓冲区域3211,除非个别标识),通信缓冲区域用于读取和写入来自控制节点5的计算处理的数据。操纵处理图像321的计算核心511的架构状态被称为上下文611A、612B、……和61mC(所有都在下文被称为上下文611A,除非个别标识)。
假设任何数量的处理图像321可以存储在存储器32中,直到处理图像321的总容量不超过物理存储器的容量。计算核心611的数目可能不必匹配存储在存储器32中的处理图像321的数目。
如上所述,没有OS在计算节点6上运行。出于这个原因,不可能通过使用OS所提供的系统管理功能来虚拟化计算节点6上的硬件(计算核心611和存储器32)。因此,计算核心611包含上下文611A用于一个计算处理。计算核心611通过使用存储在存储器32中且映射存储的上下文611A的处理图像321来处置其计算处理。
当处理图像321的总数目大于计算核心611的总数目时,当前不可能执行上下文611A,其不能存储在计算核心611中。在此情况下,计算核心611的表面上的总数目可以通过用另一上下文611A来替换包含在计算核心611中的上下文611A来虚拟增加。稍后将详细讨论怎样交换上下文611A(上下文切换)。
数据传送电路33起作用的方式与如上所述在节点2中的方式相同。因此忽略了电路的详细描述。
上面已经详细描述了计算节点6的配置。现在将结合图3来详细描述计算核心611的配置。
如图3中所图示,计算核心611被配置为包括通用寄存器组6111、控制寄存器组6112(计算处理控制单元)、例外检测单元6113(例外检测单元)、例外通知单元6114(例外检测单元)以及寄存器组存取单元6115(数据传送电路的一部分)。此外,计算核心611被配置为能够与节点间通信设备4经由数据传送电路33通信。计算核心611还被配置为能够与存储器32通信。
通用寄存器组6111具有与诸如x86或ARM的通用处理器类似的配置。也就是,通用寄存器组6111由程序计数器(PC)、通用寄存器(GPR)存储计算结果等构成。
这意味着,计算核心611中的指令(计算处理或程序)的执行导致覆写通用寄存器组6111中包括的每个寄存器中存储的数据。此外,在计算核心611中加载或存储(诸如读取或写入)的指令的执行导致通用寄存器组6111中包括的通用寄存器和存储器32之间的数据传送。
控制寄存器组6112由用于控制由计算核心611执行的指令的执行的寄存器构成。控制节点5经由数据传送电路23和33以及经由节点间通信设备4发射“执行开始”、执行指令的指导、或“执行的停止”、通知指令的执行的指导到控制寄存器组6112。
例如,假设控制节点5已经发射“执行的开始”到控制寄存器组6112。然后,计算核心611根据通用寄存器组6111的内容开始计算处理。具体地,当控制寄存器组6112接收到指导“执行的开始”,计算核心611根据存储在通用寄存器组6111中的程序计数器值取出存储在存储器32中的指令。计算核心611解码并执行取出的指令。计算核心611基于其执行的指令,更新通用寄存器组6111和/或存储器32的内容。由计算核心611执行指令(计算处理在进行中)的状态被称为“指令执行状态”。
还假设,例如,控制节点已经发射“执行的停止”到控制寄存器组6112.然后,计算核心611停止任何新的指令的执行。因此,计算核心611停止任何指令的执行。计算核心611没有指令进行而已经发射了“执行的停止”的状态被称为“指令执行停止状态”。一旦状态迁移到指令执行停止状态,计算核心611不执行任何新的指令(计算处理),直到由控制节点5再次提供“指令的开始”指导。
控制寄存器组6112被配置为使得计算核心611的状态(指令执行状态或指令执行停止状态)可以从控制节点5参考。如果,例如控制寄存器组6112(计算核心611)没有功能以便被参考,计算核心611可以被配置为通过发送例外信息来通知控制节点5计算核心611的状态,如稍后所述。
例外检测单元6113是由控制寄存器组6112检测在执行指令期间发生的任何例外的部分。具体地,当在执行指令期间检测到任何例外时,例外检测单元6113发送“执行的停止”指导到控制寄存器组6112。同时(或在该时间附近),例外检测单元6113向例外通知单元6114给出通知例外的请求(通知例外已发生)。例外检测单元6113通过例如发送关于检测到的例外的信息到例外通知单元6114而给出例外通知请求到例外通知单元6114。
例外检测单元6113所检测到的例外可以包括例如例外操作,诸如除以零计算例外。例外还可以包括例如关于存储器存取的例外,诸如超出存储器存取界限,或者在一般处理器上提供的例外,诸如用于调用系统呼叫的软件陷阱。当执行指令时发生这些例外中的任何一个时,例外检测单元6113检测到这样的例外。
例外通知单元6114通知控制节点5在计算核心611上停止执行。具体地,基于从例外检测单元6113接收到的关于检测到的例外的信息,例外通知单元6114经由节点间通信设备4给出计算核心611上“执行的停止”的通知到控制节点5。
针对如何实现用于由例外通知单元6114来通知例外的发生的方法,是没有限制的,只要控制节点5得到例外发生的通知。用于实现例外通知单元6114的方法可以包括例如使用节点间通信设备4的中断功能,诸如PCI快连MSI(消息通知中断)/MSI-X(MSI扩展)。例如,一种可能的方法可以是DMA写入到预先保留的存储器区域(包括在控制节点5中的存储器22)。如果DMA写入到存储器22被用作用于通知控制节点5发生例外的方法,控制节点5(下面所述的上计算节点管理处理)使用轮询或类似处理来监视从计算节点6提供的这样的通知的存在与否。
注意,例外通知单元6114可能被配置为禁止通知控制节点发生例外,这样的禁止设定由控制节点5侧做出。在为例外通知单元6114被禁止通知发生例外的情况进行准备时,控制节点5可以被配置为能够直接监视(例如执行轮询)控制寄存器组6112中的执行的状态。
根据从控制节点5发射的指令,寄存器组存取单元6115从每个通用寄存器组6111和控制寄存器组6112读取以及向每个通用寄存器组6111和控制寄存器组6112写入。通用寄存器组6111和控制寄存器组6112都经由寄存器组存取单元6115、数据传送电路33和节点间通信设备4发送数据到控制节点5以及从控制节点5接收数据。
寄存器组存取单元6115可以被配置为在处于指令执行状态中的计算核心611中被禁止向通用寄存器组6111进行写入/从通用寄存器组6111读取。换句话说,寄存器组存取单元6115可以被配置为只在计算核心611处于指令执行停止状态时被允许向通用寄存器组6111写入/从通用寄存器组6111读取。在此情况下,当寄存器组存取单元6115存取通用寄存器组6111时,处于指令执行状态的计算核心611的行动是不被定义的(例如,存取被忽视)。
上面已经详细描述了计算核心611的配置。下面提供对控制节点5的配置的详细描述。
控制节点6被类似于利用OS的一般单机计算机系统而配置。如上所述,控制节点6被配置为能够提供OS功能的服务给计算节点6。
安装在控制节点5上的OS在下文中被称为控制节点OS 50。对于控制节点OS 50,用于一般计算机的任何商品OS,包括典型的诸如Linux(注册商标)和Windows(注册商标)的,都可以被使用。
本示例实施例的控制节点5(其对应于图1中的节点2)被配置为包括CPU 21(控制核心,代理例外处置单元和计算核心控制单元)、存储器22和数据传送电路23,如上所述(参见图1)。CPU 21被配置为包括多个处理器核心211。
如上所述,控制节点OS 50运行在控制节点5上。出于这个原因,不像计算节点6,有可能通过使用OS所提供的系统管理功能而虚拟化控制节点5上的硬件(处理器核心211和存储器22)。因此,下面关于参考图2的处理配置描述了控制节点5。
控制节点5在控制节点OS 50上部署多个代理处理511、512、……和51n(下文称为代理处理511,除非个别标识;代理处理511等价于代理例外处置单元)和计算节点管理处理52(其等价于计算核心控制单元)。计算节点管理处理52包括计算处理数据库(DB)521和处理关联表522。
这些处理可以通过读取和执行存储在存储器22中的程序而实现,读取和执行由控制节点5上的CPU 21来执行。
代理处理511被生成用于其分别对应的部署在计算节点6上的计算处理。换句话说,代理处理511被生成以便基于一对一而对应于存储在计算节点6上的存储器32中的多个处理图像321。因此,在控制节点5上部署的代理处理511的数目等于在计算节点6上的存储器32中存储的处理图像321的数目。
在本示例实施例中,dialing处理511经由节点间通信设备4接收对从计算节点6上其对应的计算处理发送的OS的请求。代理处理511随后执行所请求的处理,作为期望在计算节点6中存在的OS的代理。换句话说,当在计算核心611上执行指令期间需要系统呼叫被调取时,代理处理511被用于代表不具有OS的计算节点6调取系统呼叫。例如,代理处理511在计算处理被开始时使用,如稍后将讨论的。
如图4中所图示,代理处理511包括自变量写入区域5111和数据缓冲区域5112。只要数据缓冲区域5112协调,代理处理511可以被配置为基于需要分配区域。
自变量写入区域5111是系统呼叫号和自变量将被写入的区域。此外,如果在系统呼叫自变量中包括指示符,指示符所参考的数据将写入到自变量写入区域5111。在一般应用二进制接口(ABI)中,系统呼叫号和自变量在调用系统呼叫时被写入到处理器核心311(计算核心611)的通用寄存器或堆栈。但是,在本示例实施例的计算核心611上没有安装OS。因此,在根据本示例实施例的系统上,系统呼叫号和自变量写入到代理处理511中的自变量写入区域5111。
当例如将传送基于系统呼叫的内容的缓冲视为必要时,数据缓冲区域5112用于将缓冲从计算核心611传送到代理处理511。例如,缓冲传送为写入系统呼叫所需。
如上所见,代理处理511在需要系统呼叫在计算核心611上被调用时使用。自变量写入区域5111和数据缓冲区域5112都在生成软件例外之前或之后使用,以便传送在计算核心611上调取系统呼叫所需的数据。因此,代理处理511被配置为使得在需要自变量写入区域5111和数据缓冲区域5112这两个区域中任何一个之前(或之时)通知将被提供到计算核心611。因此,当执行指令期间需要调用系统呼叫时,计算核心611可以写入适当数据到两个区域中的任何一个。在写入必要数据到任何一个区域中之后,计算核心611生成软件例外。这个配置允许计算核心611使得控制节点5处置系统呼叫。
计算节点管理处理52是为计算节点6生成的处理。计算节点管理处理52管理计算节点6上的硬件资源,诸如计算核心611(处理器核心311)和存储器32。此外,计算节点管理处理52充当用于一些资源从代理处理511到计算核心611进行访问的接口。
具体地,例如,当在计算节点6上要执行的计算处理的总数目超过计算核心611的总数目时,计算节点管理处理52进行用于执行计算处理的计算核心611的分配。计算节点管理处理52还管理计算节点6上的存储器。这样,计算节点管理处理52执行在处理之间需要调停的操作。
为了完成这些操作,计算节点管理处理52提供管理,使得计算节点6上的硬件资源,诸如计算核心611和存储器32,与诸如计算处理和代理处理的虚拟化的资源相关联。
具体地,本示例实施例的计算节点管理处理52通过在处理关联表522中存储互相关联的代理处理511和计算核心611来管理这些资源。图5示出了在处理关联表522中存储的相关联的数据片段的示例。
如图5中所图示,根据本示例实施例的处理关联表522存储互相关联的计算处理ID和分配的计算核心号。计算处理ID被分配给每个代理处理511(计算处理)以识别每个代理处理511或计算处理。分配的计算核心号被分配给计算核心611以识别正在执行由计算处理ID所指示的计算处理的计算核心611。这样,计算节点管理处理52可以通过将代理处理511(计算处理)与正在执行计算处理的计算核心611相关联,而管理硬件资源和虚拟化资源,每个都互相关联。如果计算处理没有分配给任何计算核心611(如果计算处理不被任何计算核心611所执行),对应于计算处理ID的分配的计算核心号字段示出没有计算核心号(图5中的“无”)。
计算节点管理处理52通过在计算处理DB 521中存储信息来在计算节点6上管理关于计算处理的信息。
图6示出了存储在计算处理DB 521中的数据片段的示例。图6中示出的示例数据库是通过在控制节点5侧保存由计算核心611上的通用寄存器组6111中的计算处理存储的信息来生成的。
如图6中所图示,计算处理DB 521包含关于计算处理的信息,其形式是包括计算处理ID、处理状态、代理处理ID和包括在通用寄存器组中的各个寄存器(寄存器A、寄存器B、寄存器C等)的项目。计算处理DB 521还可以包含例如关于已经被分配的存储器区域的信息。处理状态的列包含关于计算处理的状态的信息,指出“计算处理准备操作”、或“计算处理已经完成操作”等。各个寄存器的列(寄存器A、寄存器B、寄存器C等等)包含寄存器的值。计算处理DB 521中存储的数据库表中的每行对应于单个计算处理的上下文。
上面已经描述了在控制节点5上部署的处理的配置。如果存在多个计算节点,多个计算节点管理处理52被生成用于其各自的计算节点。
下面列出了可以由根据本示例实施例的并行计算机1中的单个处理访问的资源。
计算处理可以访问其处理图像321、其上下文611A以及其代理处理511写数据用的自变量写入区域5111。
代理处理511可以访问可以由其相应计算处理访问的资源以及可以由控制节点5上处理访问的所有资源。也就是,代理处理511可以访问处理图像321和上下文611A。可以被控制节点5上的处理访问的资源包括例如控制节点5上存在的文件系统中的文件。
计算节点管理处理52可以访问计算节点6上的所有资源、计算处理DB 521、和处理关联表522。此外,计算节点管理处理52具有通知任何代理处理511已经由计算处理生成例外的能力。
计算节点6上的所有资源包括计算节点6上的整个存储器32,以及计算节点6上每个计算核心611中的通用寄存器组6111和控制寄存器组6112。由于计算节点管理处理52可以访问计算节点6上的整个存储器32,处理52具有对所有计算处理的处理图像321的访问权。
计算节点管理处理52还可以访问计算处理DB 521,如上所述。因此,计算节点管理处理52具有对所有计算处理的上下文611A的访问权。
注意,计算节点管理处理52不必被授权访问代理处理511所保持的资源,诸如代理处理511的存储器区域或上下文。
上面描述了根据本示例实施例的并行计算机1的配置。通过这样的配置,使得有可能构建廉价且多样性的并行计算机,其解决了OS抖动和缓存污染的问题。
现在将结合图7到13来描述根据本示例实施例的并行计算机1的操作。
(操作)
图7是示出计算处理从其开始到其结束期间所需的操作怎样具有效果的流程图,计算处理被部署在如上配置的并行计算机1上。如图7中所图示,需要下面的操作来在并行计算机1上部署计算处理(开始计算处理,随后终止处理)。
1.开始计算处理(程序的开始)
2.停止计算处理的执行(程序的停止)
3.处置发生在计算处理上的例外处理(例外处理)
4.当计算处理需要OS服务时执行处理(系统呼叫)
5.改变计算处理的位置到计算核心(上下文切换)
6.终止计算处理(程序的退出)
一旦开始计算处理,计算核心611保持执行程序(指令或计算处理),直到退出运行程序,或者运行程序被上述操作中任意一个所停止。
在如上配置的并行计算机1上实现上面的操作可以提供服务给计算节点6,好像存在类似POSIX API的OS,而在计算节点6上没有任何OS。换句话说,实现上面的操作允许并行计算机1覆盖通过一般OS所提供的环境中的处理操作。现在将详细描述上面的每个操作。
首先,下面结合图8来描述在“1.开始计算处理(程序的开始)”期间执行的并行计算机1的操作。图8是示出当在计算节点6上开始程序执行时执行的示例操作的流程图。
首先,运行在控制节点5上的控制节点OS 50生成代理处理511(步骤S001)。
接下来,代理处理511传递其自变量写入区域5111到计算节点管理处理52。代理处理511随后请求计算节点管理处理52生成将执行程序的计算处理(步骤S002)。
一旦接收到用于生成计算处理的请求,计算节点管理处理52生成计算处理(步骤S003)。
具体地,计算节点管理处理52生成新的上下文611A。计算节点管理处理52在计算节点6上的存储器32中生成关于计算处理的处理图像321。计算节点管理处理52向计算处理DB 521添加如上生成并与代理处理511相关联的上下文611A。计算节点管理处理52将如上已经添加到计算处理DB 521的上下文611A与从代理处理511传递的自变量写入区域5111相关联,随后添加自变量写入区域5111的内容到上下文611A。计算节点管理处理52就这样生成计算处理。
计算节点管理处理52随后返回用于访问生成的计算处理的处置到代理处理511。处置可以是例如计算节点管理处理52所提供的ID、处理ID、或文件描述符。作为处置的部分,可以包括由mmap映射到处理图像321的区域,或者到所映射的区域的指示符。
然后,代理处理511将要在计算节点6上执行的程序和要用于执行程序的数据写入到包括在计算节点6中的存储器32中的处理图像321(步骤S004)。
具体地,首先,代理处理511读取要由计算核心611执行的程序。如果要被计算处理执行的程序存储在文件中,程序被例如通过从控制节点OS 50调取读取系统呼叫而读取。
接下来,代理处理511使用从计算节点管理处理传递的处置来将要由计算核心611执行的程序放到存储器32上的处理图像321中的程序所指定的位置处。例如,如果处置包括存储器映射到处理图像321的区域,代理处理511直接向程序所指定的位置发布存储器存储。可替换地,例如,如果处置是由计算节点管理处理52所提供的ID、处理ID、或文件描述符等,代理处理511向计算节点管理处理52传递处理图像321上的位置以及要写入的内容。代理处理511随后请求计算节点管理处理52向处理图像321写入。
此外,代理处理511设置初始值为存储在计算处理DB 521中的上下文611A中的寄存器值。
然后,代理处理511请求开始计算程序的执行(步骤S005)。具体地,代理处理511使用从计算节点处理52获得的处置来改变计算处理的状态到准备执行。改变计算处理的状态到准备执行允许计算节点6上的可用计算核心611(处于指令执行状态以外的状态),如果有的话,开始执行程序。将在稍后详细描述该操作(参见步骤S055)。
上面已经描述了在“1.开始计算处理(程序的开始)”期间执行的并行计算机1的操作。接下来,下面结合图9来描述在“2.停止计算处理的执行(程序的停止)”期间执行的并行计算机1的操作。图9是示出当对应于代理处理511的计算核心611从控制节点5侧停止时执行的示例操作的流程图。
首先,计算节点管理处理52参考处理关联表522,然后处理52使用识别与要被停止的处理图像321相关联的计算处理的计算处理ID,获得与计算处理ID相关联的分配的计算核心号。
如果计算处理没有分配计算核心611(步骤S011为否),计算节点管理处理52跳过下面描述的步骤S012和S013,更新计算处理DB521中的上下文的状态(步骤S014)。换句话说,当计算节点管理处理52不能找到与计算处理ID相关联的任何分配的计算核心号时,处理52更新计算处理DB 521中的上下文的状态而不执行步骤S012和S013。
另一方面,如果计算处理具有分配的计算核心611(步骤S011为是),计算节点管理处理52经由计算核心611上的寄存器组存取单元6115向寄存器组6112给出指令来停止计算核心611(步骤S012)。换句话说,如果计算处理具有分配的计算核心611,计算节点管理处理52向控制寄存器组6112给出“执行的停止”指令。
然后,计算节点管理处理52经由寄存器组存取单元6115检查控制寄存器组6112以找到计算核心611的操作状态(步骤S013)。如果计算节点管理处理52没有看到指令执行停止状态的计算核心611,也就是,如果计算核心611仍旧处于指令执行状态(步骤S013中的“计算核心操作”),处理52在预定时间过去之后再次检查计算核心611的操作状态。
如果计算节点管理处理52找到要处于指令执行停止状态的计算核心611(在步骤S013中的“计算核心停止”),处理52更新处理关联表522中包括停止的计算核心号(在分配的计算核心号之下)的行。此外,计算节点管理处理52更新计算处理DB 521以改变包括与分配的计算核心号相关联的计算处理ID的上下文611A的状态(步骤S014)。
上面已经描述了在“2.停止计算处理的执行(程序的停止)”期间执行的并行计算机1的操作。接下来,下面结合图10来描述在“3.处置在计算处理上发生的例外处理(例外处理)”期间执行的并行计算机1的操作。图10是示出用于由计算核心611处置在程序(指令或计算处理)的执行期间发生的例外的示例操作的流程图。
这里假设当计算核心611正在执行程序时发生例外(步骤S021)。例外的定义被忽略,因为在怎样配置并行计算机1的描述中已经提供了。
例外检测单元6113检测已经发生了例外。例外检测单元6113随后向控制寄存器组6112给出“执行的停止”指令(步骤S022)。
接下来,例外检测单元6113通知例外通知单元6114发生了例外。一旦从例外检测单元6113接收到例外的通知,例外通知单元6114通知控制节点5中的计算节点管理处理52发生了例外(步骤S023)。例外通知单元6114可以通过使用如上所述的各种方法来通知发生了例外。方法可以包括例如通过使用在节点间通信设备4中包括的I/O例外功能来通知,通过使用DMA功能来向控制节点5写入,以及从控制节点5监控计算节点6上的寄存器。任何这些方法可以用来实现例外通知单元6114。
上面已经描述了在“3.处置在计算处理上发生例外处理(例外处理)”期间执行的并行计算机1的操作。接下来,下面结合图11来描述在“4.当计算处理需要OS服务时执行处理(系统呼叫)”期间执行的并行计算机1的操作。图11是示出用于处置在计算节点6上调用的系统呼叫而执行的示例操作的流程图。
在一般应用二进制接口(ABI)中,当系统呼叫被调用而处理图像321操作于计算核心611时,系统呼叫号和自变量被写入到处理器核心311(计算核心611)上的通用寄存器或堆栈中。但是,在本示例实施例的计算核心611上不安装OS。因此,处理图像321需要执行稍后描述的操作。
首先,根据本示例实施例的计算处理将系统呼叫号和自变量写入代理处理511中的自变量写入区域5111(步骤S031)。
现在写入系统呼叫好和自变量的代理处理511确定在要调用的系统呼叫的自变量中是否存在指示符(步骤S032)。如果在自变量中不存在指示符(步骤S032为否),步骤S033和S034(这些步骤将在稍后描述)被跳过,然后计算核心611执行步骤S035中的处理,其也在稍后描述。如果在自变量中存在指示符(步骤S032为是),代理处理511进行确定指示符所参考的数据是否在大小上小于自变量写入区域5111。代理处理511可以参考规定大小的自变量的值以便确定参考的数据的大小。可替换地,地阿里处理511可以使用自变量的类型来确定大小(步骤S033)。
如果指示符所参考的数据在大小上等于或大于自变量写入区域5111(步骤S033为否),步骤S034(稍后将描述)被跳过,然后计算核心611执行步骤S035中的处理,也将在稍后描述。如果指示符所参考的类型在大小上小于自变量写入区域5111(步骤S033为是),代理处理511将指示符所参考的数据写入自变量写入区域5111(步骤S034)。
然后,计算核心611生成系统呼叫例外(步骤S035)。通常,系统呼叫例外是在相同节点内(在计算节点6内)被处置。但是,在根据本示例实施例的并行计算机1中,通过使用例如中断,从计算节点6向控制节点5通知例外,如上所述。上面已经详细描述了发生例外的处置,因此这里忽略其描述。
当发生例外的处置被发起时,例外的发生被通知到控制节点5上的计算节点管理处理52,如上所述。一旦接收到发生例外的通知,计算节点管理处理52参考处理关联表522以基于用于发生例外的计算核心611的号来获得计算处理ID。因此,计算节点管理处理52通过参考计算处理DB 521获得关联于用于发生了例外的计算核心611的号而存储的代理处理511。后续的处理由代理处理511来处置。
首先,代理处理511分析写入到其自变量写入区域5111的自变量以检查缓冲是否需要被传送以执行系统呼叫(步骤S036)。
如果代理处理511发现缓冲需要被传送(步骤S036为是),代理处理511分配代理处理511内的数据缓冲区域5112(步骤S037)。然后,代理处理511指令数据传送电路33(DMA引擎功能331)将对应于代理处理511的处理图像321中的缓冲的内容传送到代理处理511中的数据缓冲区域5112。这样,缓冲的内容从计算节点6被传送到控制节点5(步骤S038)。这样的从计算节点6到控制节点5的缓冲内容的传送,例如,将被需要用于写入系统呼叫。
在完成上述DMA传送时,或者当代理处理511发现不需要传送缓冲时(步骤S036为否),代理处理511想着控制节点OS 50调用系统呼叫(执行功能)(步骤S039)。
在调用系统呼叫之后,代理处理511确定代理处理511中的缓冲的内容是否需要被传送到对应于代理处理511的处理图像321中的通信缓冲区域3211(步骤S040)。
如果缓冲需要被传送(步骤S040为是),代理处理511指令数据传送电路33(DMA引擎331)传送缓冲(步骤S041)。将需要这样的缓冲从控制节点5到计算节点6的传送用于例如,准备的系统呼叫。
一旦完成上述的缓冲传送,或者当代理处理511确定没有必要传送缓冲时(步骤S040为否),计算节点管理处理52将系统呼叫的返回值写入通用寄存器组6111(步骤S042)。注意,计算节点管理处理52将系统呼叫的返回值经由计算核心611中的寄存器组存取6115写入通用寄存器组6111。在一般ABI中,系统呼叫的返回值被写入相同节点中的通用寄存器。但是,在并行计算机1中,系统呼叫的返回值从控制节点5写入计算节点6上的通用寄存器组6111。
然后,计算核心611继续执行程序(步骤S043)。上面已经描述了计算核心611执行的用于开始程序的执行的操作,因此这里可以忽略。
上面已经描述了在“4.当计算处理需要OS服务时执行处理(系统呼叫)”期间执行的并行计算机1的操作。接下来,下面结合图12来描述在“5.改变计算处理的分配到计算核心(上下文切换)”期间执行的并行计算机1的操作。图12是示出用于在计算处理的数目大于计算核心611的数目时执行的上下文切换的示例操作的流程图。
首先,控制节点5中的计算节点管理处理52选择要被停止的计算核心611(步骤S051)。例如,每次预定时期过去,计算节点管理处理52选择要被停止的计算核心611。计算节点管理处理52可以使用任何方法来进行要被停止的计算核心611的选择。
接下来,计算节点管理处理52停止在步骤S051中选择的计算核心611,如上所述(步骤S052)。已经描述了用于停止计算核心611的操作,因此这里忽略。
然后,计算节点管理处理52使用停止的计算核心611中的寄存器组存取单元6115来存取通用寄存器组6111。计算节点管理处理52随后从通用寄存器组6111获得上下文611A并且在计算处理DB 521中存储获得的上下文611A(步骤S053)。
在这个操作期间,计算节点管理处理52可以对控制节点5中的处理图像321进行复制。进行对控制节点5中处理图像321的这样的复制使得有可能创建逐个处理的检查点数据。
然后,计算节点管理处理52基于接下来将在计算核心611上运行的计算处理的ID来更新处理关联表522(步骤S054)。在本示例实施例中,假设接下来在计算核心611上运行的计算处理的ID遵从现有调度算法而被选择。计算节点管理处理52只需要被配置为能够以某种方式选择计算处理ID。
然后,计算节点管理处理52基于接下来在计算核心611上运行的计算处理的ID查询计算处理DB 521,并且获得接下来在计算核心611上运行的计算处理ID的寄存器值(上下文)。计算节点管理处理52经由寄存器值存取单元6115将所获得的寄存器值存储到包括在计算核心611中的通用寄存器组6111中的上下文611A中(步骤S055)。
如果检查点数据包含在接下来在计算核心611上运行的计算处理中,当检查点数据被获得时的处理图像321可以通过在该时刻将计算处理传送到计算节点而恢复。
在恢复上下文611A之后,计算节点管理处理52开始在计算核心上执行,其中上下文已经被切换(步骤S056)。
上面已经描述了在“5.改变计算处理的分配到计算核心(上下文切换)”期间执行的并行计算机1的操作。接下来,下面结合图13来描述在“6.终止计算处理(程序的退出)”期间执行的并行计算机1的操作。图13是示出用于退出在计算节点6上运行的程序所执行的示例操作的流程图。
当运行在计算核心611上的程序结束时,计算核心611首先通知代理处理511用于终止计算处理的例外(步骤S061)。用于终止计算处理的例外可以是例如退出系统呼叫或关于存储器存取的例外。例外的发生在上面已经被描述过了,因此在此忽略其描述。
一旦接收到例外的通知,代理处理511通知计算节点管理处理52计算处理要被终止(步骤S062)。
一旦接收到终止计算处理的通知,计算节点管理处理52搜索处理关联表522以释放已经用于计算处理的任何资源(步骤S063)。这终止了计算处理。
具体地,计算节点管理处理52删除存储在计算处理DB 521中且与要被终止的代理处理511相关联的上下文611A。此外,计算节点管理处理52从存储器32释放对应于要被终止的代理处理511的处理图像321。在对应于要被终止的代理处理511的上下文611A在计算节点6上的任何计算核心611中活动的情况下,计算节点管理处理52可以被配置为释放这样的计算核心611。在此情况下,计算节点管理处理52可以被配置为当释放计算核心611时从释放的计算核心611的上下文切换到另一上下文。
在计算处理被终止之后,代理处理511被终止(步骤S064)。
注意,步骤S062、S063和S064可以不以提及的次序发生。例如,在可替换配置中,代理处理511可以在接收到在步骤S061中调用的退出系统呼叫时终止。在此情况下,计算节点管理处理52被通知计算处理要通过例如释放代理处理511保持的属于控制节点OS 50的处置而被终止。一旦接收到计算处理要被终止的通知,计算节点管理处理52释放计算处理的资源且将其终止。
并行计算机1通过上述的操作流。通过这些操作,并行计算机1可以在不运行OS的计算节点6上利用以一般计算机实现的计算模型。
在这里描述的本示例实施例中,并行计算机1由一个控制节点5和多个计算节点6构成。但是,并行计算机1可以包括多个节点组,每个由一个控制节点5和多个计算节点6构成。也就是,控制节点5的数目不必限制为一个。
如上所见,根据本示例实施例的并行计算机1包括安装了OS的控制节点5和没有安装OS的计算节点6。在控制节点5上,部署代理处理511和计算节点管理处理52。计算节点6包括通用寄存器组6111和控制寄存器组6112。这样的配置允许控制节点5管理计算节点6的操作。换句话说,并行计算机1可以在不运行OS的计算节点6上利用计算模型,其在一般计算机上实现。结果,并行计算机1可以解决OS抖动和缓存污染的问题,如果OS运行在计算节点6上的话就会引发这些问题。
如上所述的配置允许控制节点5充当代理来控制需要特权的I/O设备。结果,不再有必要写入专用于计算节点6的设备驱动,只要控制节点5利用基于商品硬件的配置。因此,损失多样性和开发成本增加的的问题可以得到解决。
根据本示例实施例的计算核心611包括例外检测单元6113和例外通知单元6114。这个配置使得有可能检测在计算核心611正在执行指令时发生的任何例外处理且通知具有OS的控制核心6例外处理的发生。结果,计算节点6可以停止发生了例外处理的计算处理的执行。控制节点5具有提供OS功能,诸如系统呼叫,给计算节点的能力。换句话说,这使得有可能在没有OS运行的计算节点6上利用在一般计算机中实现的计算模型。
<示例实施例2>
现在将结合图14来描述本发明的第二示例实施例。图14是图示根据本示例实施例的信息处理装置7的配置的框图。
类似于上述的第一示例实施例,本示例实施例包括具有OS功能的控制单元(控制节点)和不具有OS功能的计算单元(计算节点)。本示例实施例可以被实现,只要其包括OS功能活动的区域和OS功能不活动的另一区域,即使其不符合第一示例实施例中所述的并行计算机。
下面描述根据本示例实施例的信息处理装置7,该装置包括两个区域:在OS控制下的区域和在OS控制外的区域。根据本示例实施例的信息处理装置7可以由例如包括这两个区域的半导体集成电路来实现。
如图14中所图示,根据本示例实施例的信息处理装置7被配置为包括在OS控制下的OS管理的控制单元8和不在OS控制下的OS非管理的计算单元9。在根据本示例实施例的信息处理装置7中,OS管理的控制单元8和OS非管理的计算单元9每个被配置为使得以一般计算机实现的计算模型可以在未运行OS(OS的控制之外)的OS非管理的计算单元9上利用。在下面的描述中,在OS管理的控制单元8上运行的OS被称为控制单元OS 80。作为控制单元OS80,商品OS,诸如Linux或Windows,可以被使用。OS管理的控制单元8和OS非管理的计算单元9互相通信连接。
下面描述OS管理的控制单元8的配置。OS管理的控制单元8被配置为包括未图示的存储装置(例如存储器)和处理装置(例如CPU)。这个OS管理的控制单元8是在控制单元OS80的控制下的区域,如上所述。因此,在OS管理的控制单元8上,在其控制下的任何硬件(存储装置和处理装置)可以被虚拟化。因此,下面描述了在OS管理的控制的那样8上部署的处理。这些处理可以通过在OS管理的控制单元8的控制下读取和执行存储在存储装置中的程序而实现,处理装置所执行的读取和执行在OS管理的控制单元8的控制下。
如图14中所图示,在OS管理的控制的那样8上,控制单元OS 80部署代理处理81和OS非管理的计算单元管理处理82。OS非管理的计算单元管理处理82包括计算处理DB 83和处理关联表84。代理处理81以与第一示例实施例中相同的方式来配置。OS非管理的计算单元管理处理82等价于第一示例实施例中的计算节点管理处理。因此这里忽略对各个配置的详细描述。
上面已经描述了OS管理的控制单元8的配置。现在下面描述OS非管理的计算单元9的配置。
如图14中所图示,OS非管理的计算单元9被配置为包括计算核心91和存储器92。OS非管理的计算单元9还包括数据传送电路,其未图示。计算核心91以与第一示例实施例中相同的方式配置。存储器92和数据传送电路也以与第一示例实施例中相同的方式来配置。因此这里忽略各个配置的细节。
根据本示例实施例的信息处理装置7被如上所述配置。这个配置允许信息处理装置7以与在第一示例实施例中相同的方式操作。信息处理装置7的操作与第一示例实施例中相同,因此忽略对其的描述。
根据本示例实施例的信息处理装置7包括在OS控制下的OS管理的控制单元8和不在OS控制下的OS非管理的计算单元9。在OS管理的控制的那样8上,部署代理处理81和OS非管理的计算单元管理处理82。此外,OS非管理的计算单元9包括计算核心91。因此,OS非管理的计算单元9可以执行计算处理,就好像它具有OS功能。换句话说,信息处理装置7可以解决OS抖动和缓存污染的问题,如果在OS非管理的计算单元9上运行OS的话将引起上述的问题。
而且,上面的配置允许OS管理的控制单元8充当OS非管理的计算单元9的代理来控制需要特权的I/O设备。结果,不再有必要写入专用于OS非管理的计算单元9的设备驱动,只要OS管理的控制的那样8利用基于商品硬件的配置。因此,损失多样性和开发成本增加的问题可以得到解决。
<示例实施例3>
现在将结合图15来描述本发明的第三示例实施例。图15是图示说明根据本示例实施例的信息处理装置70的一般配置的框图。
如图15中所图示,根据本示例实施例的信息处理装置70被配置为包括控制核心71和计算核心72。控制核心71包括计算核心控制单元711。计算核心72包括计算处理控制单元721和例外检测单元722。
控制核心71是处理单元,在其上安装操作系统(OS)。另一方面,计算核心72是处理单元,其在控制核心71的控制下执行预定计算处理。具体地,在计算核心72上没有安装操作系统。
计算核心控制单元711是指令停止中的计算核心72开始要被计算核心处置的计算处理。如稍后所述,当被计算和控制单元711指令开始计算处理时,停止中的计算核心72开始计算处理。
计算处理控制单元721是控制计算核心72的部分,使得计算核心72指令响应于计算核心控制单元711提供的开始计算处理的指令而开始计算处理。例外检测单元722是检测在执行计算处理期间发生的预设例外处理并且停止发生了例外处理的计算处理的执行的部分。预设例外处理可以包括例如算术例外、关于存储器存取的例外以及在一般处理器上提供的例外。
一旦计算核心72停止计算处理的执行,其保持中止而不开始新的计算处理,直到被控制核心71上的计算核心控制单元711再次指令开始计算处理。
如上所见,根据本示例实施例的信息处理装置70包括安装OS的控制核心71和计算核心72。控制核心71包括计算核心控制单元711而计算核心72包括计算处理控制单元721。这个配置允许计算核心72在控制核心71的控制下执行预定计算处理。换句话说,信息处理装置70被启用来在未运行OS的计算核心72上执行预定计算处理。结果,信息处理装置70可以解决OS抖动和缓存污染的问题,如果在计算核心72上运行OS的话将会引起上述的问题。
而且,上述配置允许控制核心71充当代理来控制需要特权的I/O设备。结果,不再有必要写入专用于计算核心72的设备驱动,只要控制核心71利用基于商品硬件的配置。因此,损失多样性和开发成本增加的问题可以得到解决。
根据本示例实施例的计算核心72还包括例外检测单元722。这个配置允许计算核心72检测在执行计算处理期间发生的例外处理且停止发生了例外处理的计算处理的执行。结果,信息处理装置70被启动来在未运行OS的信息处理装置70上更加完整地执行预定计算处理。
上述的信息处理装置可以通过在信息处理装置上安装预定程序来实现。具体地,这样的程序,作为本发明的另一示例实施例,被用于在信息处理装置上实现下面的处理(a)到(c)。这个信息处理装置包括安装操作系统的控制核心,还包括至少一个计算核心,其由控制核心来控制并执行预定计算处理。(a)指令停止中的计算核心开始要由计算核心处置的计算处理的处理;(b)控制计算核心使得计算核心响应于开始计算处理的指令而开始计算处理的处理;和(c)检测在执行计算处理期间发生的预设例外处理且停止发生了例外处理的计算处理的执行的处理。
如上操作的信息处理装置所实现的信息处理方法包括由计算核心响应于控制核心提供的开始计算处理的指令而开始预定计算处理。信息处理方法还包括,如果在计算核心执行计算处理期间发生预设例外处理,检测预定例外且停止发生了例外处理的计算处理,检测和停止由计算核心来执行。
涉及上述配置且代表发明的另一方面的程序或信息处理方法也可以获取上述的本发明的目标,因为程序和方法具有与上述信息处理装置所运用的相同的效果。
<示例实施例4>
现在将结合图16来描述本发明的第四示例实施例。图16是图示说明根据本示例实施例的计算处理装置10的一般配置的框图。
计算处理装置10在外部装置的控制下执行预定计算处理。也就是,在计算处理装置10上没有安装OS。如图16中所图示,根据本示例实施例的计算处理装置10包括计算处理控制单元101和例外检测单元102。
计算处理控制单元101是控制计算处理装置的部分,使得装置响应于外部装置提供的开始计算处理的指令而开始计算处理。例外检测单元102是检测在执行计算处理期间发生的预设例外处理的部分。预设例外处理可以包括例如算术例外、关于存储器存取的例外以及在一般处理器上提供的例外。
当例外检测单元102检测到例外处理时,计算处理装置10被配置为停止发生了例外处理的计算处理的执行。一旦计算处理装置10停止计算处理的执行,其保持中止而不开始计算处理,直到被外部装置指令再次开始计算处理。
如上所见,根据本示例实施例的计算处理装置10响应于由外部装置提供开始计算处理的指令而开始计算处理。计算处理装置10包括计算处理控制单元101。这个配置使得计算处理装置10能够不管没有安装OS而在外部装置的控制下执行预定计算处理。结果,计算处理装置10可以解决OS抖动和缓存污染的问题,如果在计算处理装置10上运行OS的话将会引起上述问题。
根据本示例实施例的计算处理装置10还包括例外检测单元102。这个配置使得计算处理装置10能够检测在执行计算处理期间发生的例外处理并且停止发生了例外处理的计算处理的执行。换句话说,计算处理装置10被启用来在未运行OS的计算处理装置10上更加完整地执行预定计算处理。
上述的计算处理在可以通过在计算处理装置上安装预定程序来实现。具体地,这样的程序,作为本发明的另一示例实施例,实现以下处理:控制计算处理装置,使得装置响应于外部装置所提供的开始计算处理的指令而开始计算处理;以及检测在执行计算处理期间发生的预设例外处理。在检测到例外处理时,这样的程序还具有功能停止发生了例外处理的计算处理的执行。
由如上操作的计算处理装置实现的计算处理方法包括:响应于由外部装置提供的开始计算处理的指令而开始预定计算处理;当在执行计算处理期间发生预设例外处理时,检测例外处理;以及停止发生了例外处理的计算处理。
涉及上述配置且代表发明的另一方面的程序或信息处理方法也可以获取上述的本发明的目标,因为程序和方法具有与上述信息处理装置所运用的相同的效果。
<补充注释>
上面的示例实施例的全部或部分可以被描述为下面的补充注释。本发明的信息处理装置和其他方面现在在下面被概括描述。应该注意到,但是,本发明不限于下面的配置。
(补充注释1)
一种信息处理装置,包括:
控制核心,在其上安装操作系统;以及
至少一个计算核心,其由控制核心来控制且执行预定计算处理,
其中,所述控制核心包括计算核心控制装置,用于指令停止中的计算核心开始要由计算核心执行的计算处理,
以及其中,所述计算核心包括:
计算处理控制装置,用于控制计算核心,使得计算核心响应于指令开始计算处理,所述指令由计算核心控制装置提供;以及
例外检测装置,用于检测在执行计算处理期间发生的预设例外处理并且停止发生例外处理的计算处理。
通过上面的配置,信息处理装置包括在其上安装操作系统的控制核心和由控制核心控制执行预定计算处理的至少一个计算核心。控制核心包括计算核心控制装置。计算核心包括计算处理控制装置。通过该配置,可以在未运行OS的计算核心上执行预定计算处理。因此,信息装置能够解决可能由执行计算处理的计算核心中的OS的操作引起的OS抖动和缓存污染的问题。
通过这个配置,计算核心包括例外检测装置。计算核心能够检测在执行计算处理期间发生的例外处理,并且通过该配置停止发生了例外处理的计算处理。结果,信息装置能够在未运行OS的信息处理装置上更加完整地执行预定计算处理。
(补充注释2)
根据补充注释1所述的信息处理装置,
其中,所述计算核心控制装置指令计算核心响应于由例外检测装置检测到的例外处理开始计算处理,
以及其中,当由计算核心控制装置提供用于开始计算处理的指令时,所述计算处理控制装置控制计算核心,使得计算核心开始计算处理。
通过这个配置,信息装置的控制核心被配置为响应于由例外检测装置检测到的例外处理而指令计算核心开始计算处理。因此,信息装置能够在未运行OS的信息处理装置上更加完整地执行预定计算处理。
(补充注释3)
根据补充注释2所述的信息处理装置,
其中,所述例外检测装置通知控制核心例外检测装置检测到例外处理,
以及其中,所述计算核心控制装置响应于由从例外检测装置接收到的通知所指示的例外处理而指令计算核心开始计算处理。
通过这个配置,计算核心如果被配置为向控制核心通知例外,则已经检测到例外。因此,信息装置能够在未运行OS的信息处理装置上更加完整地执行预定计算处理。
(补充注释4)
根据补充注释1到3中任意一项所述的信息处理装置,
其中,所述计算核心进一步包括数据传送装置,用于将数据传送到控制核心,所述数据是用于处置由例外检测装置所检测到的例外处理所必需的,
以及其中,所述控制核心进一步包括代理例外处置装置,用于作为计算核心的代理,使用由数据传送装置传送的数据来处置例外处理。
通过这个配置,计算核心包括数据传送装置,且控制核心包括例外处置装置。通过这个配置,计算核心能够处置例外处理。结果,控制核心能够作为计算核心的代理,处置系统呼叫的处理。
(补充注释5)
根据补充注释4所述的信息处理装置,
其中,当在计算核心上发生的例外处理是系统呼叫时,所述数据传送装置将处置系统呼叫所必需的数据传送到包括在控制核心上的代理例外处置装置中的缓冲区域。
(补充注释6)
根据补充注释1到5中任意一项所述的信息处理装置,
其中,所述计算核心控制装置被配置为能够指令计算核心停止由计算核心执行的计算处理,并且能够指令正在停止计算处理的计算核心改变要由计算核心执行的计算处理的内容,
以及其中,所述计算处理控制装置控制计算核心,使得计算核心响应于停止计算处理的指令而停止正在执行的计算处理,所述指令由计算核心控制装置提供,并且响应于用于改变计算处理的内容的指令而改变要由计算核心执行的计算处理的内容,所述指令由计算核心控制装置提供。
通过这个配置,控制核心被配置为指令计算核心停止计算处理且改变计算处理。计算能够响应于来自控制核心的指令而停止且改变计算处理。结果,信息处理装置能够执行上下文切换。
(补充注释7)
根据补充注释6所述的信息处理装置,
其中,当要由计算核心执行的计算处理的数目大于计算核心的数目时,
所述计算核心控制装置以预定时间间隔且基于预定标准选择正在执行计算处理的计算核心;指令所选择的计算核心停止计算处理;以及改变要由停止了计算处理的计算核心执行的计算处理的内容。
(补充注释8)
一种计算机可读记录介质,记录使得包括信息处理装置的计算机执行以下处理的程序,所述信息处理装置包括:控制核心,在其上安装操作系统;以及至少一个计算核心,其由控制核心来控制且执行预定计算处理,
执行的处理包括:
计算核心控制处理,用于指令停止中的计算核心开始要由计算核心执行的计算处理;
计算处理控制处理,用于控制计算核心,使得计算核心响应于指令开始计算处理,所述指令用来开始计算处理;以及
例外检测处理,用于检测在执行计算处理期间发生的预设例外处理并且停止发生例外处理的计算处理的执行。
(补充注释8-1)
根据补充注释8所述的记录介质,其中
所述计算核心控制处理包括响应于由例外检测处理检测到的例外处理而指令计算核心开始计算处理的处理。
(补充注释9)
根据补充注释8所述的记录介质,
其中,所述例外检测处理包括通知控制核心已经检测到例外处理的处理。
(补充注释10)
根据补充注释9所述的记录介质,其中,所述记录介质记录使得计算机进一步执行以下处理的程序:
数据传送处理,用于将数据传送到控制核心,所述数据是用于处置检测到的例外处理所必需的;以及
代理例外处置处理,用于作为计算核的代理,使用传送的数据来处置例外处理。
(补充注释10-1)
根据补充注释10所述的记录介质,其中
所述数据传送处理包括当发生在计算核上的例外处理是系统呼叫时,将处置系统呼叫所必需的数据传送到包括在控制核心中的缓冲区域的处理。
(补充注释11)
根据补充注释8到10中任意一项所述的记录介质,
其中,所述计算核控制处理包括:
指令计算核停止由计算核所执行的计算处理且关于正在停止计算处理的计算核改变要由计算核执行的计算处理的内容的处理,
以及其中,所述计算处理控制处理包括:
响应于停止计算处理的指令而停止正在执行的计算处理的处理,所述指令由计算核控制处理提供;以及
响应于用于改变计算处理的内容的指令而改变要由计算核执行的计算处理的内容的处理,所述指令由计算核控制处理提供。
(补充注释11-1)
根据补充注释11所述的记录介质,其中
当要由计算核执行的计算处理的数目大于计算核的数目时,
所述计算核控制处理包括处理:
以预定时间间隔且基于预定标准,选择正在执行计算处理的计算核;
指令所选择的计算核停止计算处理;以及
改变要由计算核执行的计算处理的内容。
(补充注释12)
一种信息处理方法,包括:
由计算核响应于由控制核心提供的开始计算处理的指令而开始预定的计算处理;以及
当在执行由计算核执行的计算处理期间发生预设例外处理时,由计算核检测例外处理,并且由计算核停止发生了例外处理的计算处理。
(补充注释13)
根据补充注释12所述的信息处理方法,
其中,当检测到例外处理时,计算核通知控制核心检测到了例外处理。
(补充注释14)
根据补充注释13所述的信息处理方法,
其中,计算核将处置例外处理所必需的数据传送到控制核心,
以及其中,控制核心作为计算核的代理,使用传送的数据来处置例外处理。
(补充注释15)
根据补充注释12到14中任意一项所述的信息处理方法,
其中,控制核心向正在停止计算处理的计算核提供指令以改变要由计算核执行的计算处理的内容,
以及其中,计算核响应于改变计算处理的内容的指令而改变要由计算核执行的计算处理的内容。
(补充注释15-1)
根据补充注释15所述的信息处理方法,其中
当要由计算核执行的计算处理的数目大于计算核的数目时,
以预定时间间隔且基于预定标准,选择正在执行计算处理的计算核;
指令所选择的计算核停止计算处理;以及
改变要由计算核执行的计算处理的内容。
(补充注释16)
一种计算处理装置,其在外部装置的控制下执行预定计算处理,所述计算处理装置包括:
计算处理控制装置,用于控制计算处理装置,使得计算处理装置响应于指令开始计算处理,所述指令由外部装置提供用来开始计算处理;以及
例外检测装置,用于检测在执行计算处理期间发生的预设例外处理并且停止发生例外处理的计算处理的执行。
(补充注释17)
根据补充注释16所述的计算处理装置,
其中,所述例外检测装置通知外部装置例外检测装置已经检测到例外处理。
(补充注释18)
根据补充注释16或17所述的计算处理装置,进一步包括:
数据传送装置,用于将数据传送到外部装置,所述数据是用于处置例外检测装置所检测到的例外处理所必需的。
(补充注释19)
根据补充注释16到18中任意一项所述的计算处理装置,
其中,所述计算处理控制装置:
控制所述计算处理装置,使得所述计算处理装置响应于停止计算处理的指令而停止正在执行的计算处理,所述指令由外部装置提供;以及
响应于改变计算处理的内容的指令而改变要由所述计算处理装置执行的计算处理的内容,所述指令由外部装置提供。
(补充注释20)
一种计算机可读存储介质,存储使得计算处理装置执行以下处理的程序:
计算处理控制处理,用于控制计算处理装置,使得计算处理装置响应于指令开始计算处理,所述指令由外部装置提供用来开始计算处理;以及
例外检测处理,用于检测在执行计算处理期间发生的预设例外处理并且停止发生例外处理的计算处理的执行。
(补充注释21)
如补充注释20所述的存储介质,
其中,所述例外检测处理包括通知外部装置已经检测到例外处理的处理。
(补充注释22)
根据补充注释20或21所述的存储介质,
其中,所述介质记录使得所述计算处理装置进一步执行以下处理的程序:
数据传送处理,用于将数据传送到外部装置,所述数据是用于处置检测到的例外处理所必需的。
(补充注释23)
根据补充注释20到22中任意一项所述的存储介质,
其中,所述计算处理控制处理包括:
响应于停止计算处理的指令而停止正在执行的计算处理的处理,所述指令由外部装置提供;以及
响应于改变计算处理的内容的指令而改变要由计算核执行的计算处理的内容的处理,所述指令由外部装置提供。
(补充注释24)
一种计算处理方法,包括:
响应于指令而开始预定的计算处理,所述指令由外部装置提供用来开始计算处理;以及
当在执行计算处理期间发生预设例外处理时,检测例外处理并且停止发生了例外处理的计算处理。
(补充注释25)
根据补充注释24所述的计算处理方法,包括:
当检测到例外处理时,通知外部装置已经检测到了例外处理。
(补充注释26)
根据补充注释25所述的计算处理方法,包括:
当检测到例外处理时,将处置例外处理所必需的数据传送到控制核心。
在上面示例实施例和补充注释中任意一个中描述的程序存储在存储装置中或者记录在计算机可读记录介质中,记录介质可以是例如便携介质,诸如软盘、光盘、磁光盘或者半导体存储器。
通过上述示例实施例作为示例性例子已经描述了本发明。但是,本发明不限于上述的示例实施例。换句话说,可以被本领域技术人员理解的本发明的各种方面可以在本发明的范围内应用。
本申请要求基于2013年11月8日提交的日本专利申请No.2013-232197的优先权,其完整公开内容在此引入进来。
附图标记列表
1 并行计算机
2,3 节点
21,31 CPU
211,311 处理器核心
22,32 存储器
321 处理图像
3211 通信缓冲区域
23,33 数据传送电路
231,331 DMA引擎功能
232,332 CPU定向通信功能
4 节点间通信设备
5 控制节点
511 代理处理
5111 自变量写入区域
5112 数据缓存区域
52 计算节点管理处理
521 计算处理DB
522 处理关联表
6 计算节点
611 计算核
611A 上下文
6111 通用寄存器组
6112 控制寄存器组
6113 例外检测单元
6114 例外通知单元
6115 寄存器组存取单元
7,70 信息处理装置
71 控制核心
711 计算核控制单元
72 计算核
721 计算处理控制单元
722 例外检测单元
8 OS管理的控制单元
80 控制OS
81 代理处理
82 OS非管理计算单元管理处理
9 OS非管理计算单元
91 计算核
92 存储器
10 计算处理装置
101 计算处理控制单元
102 例外检测单元
Claims (30)
1.一种信息处理装置,包括:
控制核心,在所述控制核心上安装操作系统;以及
至少一个计算核心,所述至少一个计算核心由所述控制核心来控制并且执行预定计算处理,
其中,所述控制核心包括计算核心控制单元,所述计算核心控制单元被配置为指令停止中的所述计算核心开始要由所述计算核心执行的所述计算处理,
并且其中,所述计算核心包括:
计算处理控制单元,所述计算处理控制单元被配置为控制所述计算核心,使得所述计算核心响应于由所述计算核心控制单元提供的用于开始所述计算处理的指令来开始所述计算处理;以及
例外检测单元,所述例外检测单元被配置为检测在执行所述计算处理期间发生的预设例外处理,并且停止所述例外处理已经发生的所述计算处理;以及
数据传送单元,所述数据传送单元被配置为将数据传送到所述控制核心,所述数据是用于处置由所述例外检测单元所检测到的所述例外处理所需要的,并且
其中,所述控制核心进一步包括代理例外处置单元,所述代理例外处置单元被配置为作为所述计算核心的代理,使用由所述数据传送单元传送的数据来处置所述例外处理,
其中,当在所述计算核心上发生的所述例外处理是系统呼叫时,所述数据传送单元将处置所述系统呼叫所需要的数据传送到包括在所述控制核心上的所述代理例外处置单元中的缓冲区域,
其中,所述例外处理是用于例外操作、关于存储器存取的例外以及在一般处理器上提供的意外中的至少一个的处理。
2.根据权利要求1所述的信息处理装置,
其中,所述计算核心控制单元指令所述计算核心响应于由所述例外检测单元检测到的所述例外处理来开始所述计算处理,
以及其中,当由所述计算核心控制单元提供用于开始所述计算处理的指令时,所述计算处理控制单元控制所述计算核心,使得所述计算核心开始所述计算处理。
3.根据权利要求2所述的信息处理装置,
其中,所述例外检测单元向所述控制核心通知所述例外检测单元检测到所述例外处理,
并且其中,所述计算核心控制单元指令所述计算核心响应于由从例外检测单元接收到的所述通知所指示的所述例外处理来开始计算处理。
4.根据权利要求1所述的信息处理装置,
其中,所述计算核心控制单元被配置为能够指令所述计算核心停止由所述计算核心执行的所述计算处理,并且能够指令正在停止所述计算处理的所述计算核心来改变要由所述计算核心执行的所述计算处理的内容,
并且其中,所述计算处理控制单元控制所述计算核心,使得所述计算核心响应于用于停止所述计算处理的指令来停止正在被执行的所述计算处理,所述指令由所述计算核心控制单元来提供;并且响应于用于改变所述计算处理的内容的指令来改变要由所述计算核心执行的所述计算处理的内容,所述指令由所述计算核心控制单元来提供。
5.根据权利要求4所述的信息处理装置,
其中,当要由所述计算核心执行的所述计算处理的数目大于所述计算核心的数目时,
所述计算核心控制单元以预定时间间隔并且基于预定标准来选择正在执行所述计算处理的所述计算核心;指令所选择的计算核心停止所述计算处理;并且改变要由已经停止了所述计算处理的所述计算核心执行的所述计算处理的内容。
6.一种计算机可读记录介质,所述计算机可读记录介质记录使得包括信息处理装置的计算机执行以下处理的程序,所述信息处理装置包括:控制核心,在所述控制核心上安装操作系统;以及至少一个计算核心,所述至少一个计算核心由所述控制核心来控制并且执行预定计算处理:
计算核心控制处理,由计算核心控制单元指令停止中的所述计算核心开始要由所述计算核心执行的所述计算处理;
计算处理控制处理,由计算处理控制单元控制所述计算核心,使得所述计算核心响应于用于开始所述计算处理的指令来开始所述计算处理;
例外检测处理,由例外检测单元检测在执行所述计算处理期间发生的预设例外处理,并且停止所述例外处理已经发生的所述计算处理的执行;以及
数据传送处理,由数据传送单元将数据传送到所述控制核心,所述数据是用于处置由所述例外检测单元所检测到的所述例外处理所需要的,并且
其中,所述控制核心进一步包括代理例外处置单元,所述代理例外处置单元被配置为作为所述计算核心的代理,使用由所述数据传送单元传送的数据来处置所述例外处理,
其中,当在所述计算核心上发生的所述例外处理是系统呼叫时,所述数据传送单元将处置所述系统呼叫所需要的数据传送到包括在所述控制核心上的所述代理例外处置单元中的缓冲区域,
其中,所述例外处理是用于例外操作、关于存储器存取的例外以及在一般处理器上提供的意外中的至少一个的处理。
7.根据权利要求6所述的记录介质,
其中,所述计算核心控制单元指令所述计算核心响应于由所述例外检测单元检测到的所述例外处理来开始所述计算处理,
以及其中,当由所述计算核心控制单元提供用于开始所述计算处理的指令时,所述计算处理控制单元控制所述计算核心,使得所述计算核心开始所述计算处理。
8.根据权利要求7所述的记录介质,
其中,所述例外检测处理包括下述处理:向所述控制核心通知已经检测到所述例外处理,
并且其中,所述计算核心控制单元指令所述计算核心响应于由从例外检测单元接收到的所述通知所指示的所述例外处理来开始计算处理。
9.根据权利要求6所述的记录介质,
其中,所述计算核心控制处理包括下述处理:
指令所述计算核心停止由所述计算核心执行的所述计算处理,并且关于正在停止所述计算处理的所述计算核心改变要由所述计算核心执行的所述计算处理的内容,
并且其中,所述计算处理控制处理包括下述处理:
响应于用于停止所述计算处理的指令来停止正在被执行的所述计算处理,所述指令由所述计算核心控制处理来提供;以及
响应于用于改变所述计算处理的内容的指令来改变要由所述计算核心执行的所述计算处理的内容,所述指令由所述计算核心控制处理来提供。
10.根据权利要求9所述的记录介质,
其中,当要由所述计算核心执行的所述计算处理的数目大于所述计算核心的数目时,
所述计算核心控制单元以预定时间间隔并且基于预定标准来选择正在执行所述计算处理的所述计算核心;指令所选择的计算核心停止所述计算处理;并且改变要由已经停止了所述计算处理的所述计算核心执行的所述计算处理的内容。
11.一种信息处理方法,包括:
由计算核心响应于由控制核心提供的用于开始计算处理的指令来开始预定的所述计算处理;
当在由所述计算核心执行的所述计算处理的执行期间发生预设例外处理时,由所述计算核心来检测所述例外处理,并且由所述计算核心停止所述例外处理已经发生的所述计算处理;以及
由数据传送单元将数据传送到控制核心,所述数据是用于处置由例外检测单元所检测到的所述例外处理所需要的,并且
其中,所述控制核心进一步包括代理例外处置单元,所述代理例外处置单元被配置为作为所述计算核心的代理,使用由所述数据传送单元传送的数据来处置所述例外处理,
其中,当在所述计算核心上发生的所述例外处理是系统呼叫时,所述数据传送单元将处置所述系统呼叫所需要的数据传送到包括在所述控制核心上的所述代理例外处置单元中的缓冲区域,
其中,所述例外处理是用于例外操作、关于存储器存取的例外以及在一般处理器上提供的意外中的至少一个的处理。
12.根据权利要求11所述的信息处理方法,
其中,计算核心控制单元指令所述计算核心响应于由例外检测单元检测到的所述例外处理来开始所述计算处理,
以及其中,当由所述计算核心控制单元提供用于开始所述计算处理的指令时,计算处理控制单元控制所述计算核心,使得所述计算核心开始所述计算处理。
13.根据权利要求12所述的信息处理方法,
其中,当检测到所述例外处理时,所述计算核心向所述控制核心通知已经检测到所述例外处理,
并且其中,所述计算核心控制单元指令所述计算核心响应于由从例外检测单元接收到的通知所指示的所述例外处理来开始计算处理。
14.根据权利要求11所述的信息处理方法,
其中,所述控制核心向正在停止所述计算处理的所述计算核心提供用于改变要由所述计算核心执行的所述计算处理的内容的指令,
并且其中,所述计算核心响应于用于改变所述计算处理的内容的指令来改变要由所述计算核心执行的所述计算处理的内容。
15.根据权利要求14所述的信息处理方法,
其中,当要由所述计算核心执行的所述计算处理的数目大于所述计算核心的数目时,
计算核心控制单元以预定时间间隔并且基于预定标准来选择正在执行所述计算处理的所述计算核心;指令所选择的计算核心停止所述计算处理;并且改变要由已经停止了所述计算处理的所述计算核心执行的所述计算处理的内容。
16.一种计算处理装置,所述计算处理装置在外部装置的控制下执行预定计算处理,所述计算处理装置包括:
计算处理控制单元,所述计算处理控制单元被配置为控制所述计算处理装置,使得所述计算处理装置响应于由所述外部装置提供的用于开始计算处理的指令来开始所述计算处理;
例外检测单元,所述例外检测单元被配置为检测在执行所述计算处理期间发生的预设例外处理,并且停止所述例外处理已经发生的所述计算处理的执行;以及
数据传送单元,所述数据传送单元被配置为将数据传送到控制核心,所述数据是用于处置由所述例外检测单元所检测到的所述例外处理所需要的,并且
其中,所述控制核心进一步包括代理例外处置单元,所述代理例外处置单元被配置为作为计算核心的代理,使用由所述数据传送单元传送的数据来处置所述例外处理,
其中,当在所述计算核心上发生的所述例外处理是系统呼叫时,所述数据传送单元将处置所述系统呼叫所需要的数据传送到包括在所述控制核心上的所述代理例外处置单元中的缓冲区域,
其中,所述例外处理是用于例外操作、关于存储器存取的例外以及在一般处理器上提供的意外中的至少一个的处理。
17.根据权利要求16所述的计算处理装置,
其中,计算核心控制单元指令所述计算核心响应于由所述例外检测单元检测到的所述例外处理来开始所述计算处理,
以及其中,当由所述计算核心控制单元提供用于开始所述计算处理的指令时,所述计算处理控制单元控制所述计算核心,使得所述计算核心开始所述计算处理。
18.根据权利要求17所述的计算处理装置,
其中,所述例外检测单元向所述外部装置通知所述例外检测单元已经检测到所述例外处理,
并且其中,所述计算核心控制单元指令所述计算核心响应于由从例外检测单元接收到的所述通知所指示的所述例外处理来开始计算处理。
19.根据权利要求16所述的计算处理装置,
其中,所述计算处理控制单元:
控制所述计算处理装置,使得所述计算处理装置响应于用于停止所述计算处理的指令来停止正在执行的所述计算处理,所述指令由所述外部装置提供;并且
响应于用于改变所述计算处理的内容的指令来改变要由所述计算处理装置执行的所述计算处理的内容,所述指令由所述外部装置提供。
20.根据权利要求19所述的计算处理装置,
其中,当要由所述计算核心执行的所述计算处理的数目大于所述计算核心的数目时,
计算核心控制单元以预定时间间隔并且基于预定标准来选择正在执行所述计算处理的所述计算核心;指令所选择的计算核心停止所述计算处理;并且改变要由已经停止了所述计算处理的所述计算核心执行的所述计算处理的内容。
21.一种计算机可读存储介质,所述计算机可读存储介质存储使得计算处理装置执行以下处理的程序:
计算处理控制处理,由计算处理控制单元控制所述计算处理装置,使得所述计算处理装置响应于由外部装置提供的用于开始计算处理的指令来开始所述计算处理;
例外检测处理,由例外检测单元检测在执行所述计算处理期间发生的预设例外处理,并且停止所述例外处理已经发生的所述计算处理的执行;以及
数据传送处理,由数据传送单元将数据传送到控制核心,所述数据是用于处置由所述例外检测单元所检测到的所述例外处理所需要的,并且
其中,所述控制核心进一步包括代理例外处置单元,所述代理例外处置单元被配置为作为计算核心的代理,使用由所述数据传送单元传送的数据来处置所述例外处理,所述计算核心由所述控制核心来控制并且执行预定计算处理,
其中,当在所述计算核心上发生的所述例外处理是系统呼叫时,所述数据传送单元将处置所述系统呼叫所需要的数据传送到包括在所述控制核心上的所述代理例外处置单元中的缓冲区域,
其中,所述例外处理是用于例外操作、关于存储器存取的例外以及在一般处理器上提供的意外中的至少一个的处理。
22.如权利要求21所述的存储介质,
其中,计算核心控制单元指令所述计算核心响应于由所述例外检测单元检测到的所述例外处理来开始所述计算处理,
以及其中,当由所述计算核心控制单元提供用于开始所述计算处理的指令时,所述计算处理控制单元控制所述计算核心,使得所述计算核心开始所述计算处理。
23.如权利要求22所述的存储介质,
其中,所述例外检测处理包括下述处理:向所述外部装置通知所述例外处理已经被检测到,
并且其中,所述计算核心控制单元指令所述计算核心响应于由从例外检测单元接收到的所述通知所指示的所述例外处理来开始计算处理。
24.根据权利要求21所述的存储介质,
其中,所述计算处理控制处理包括下述处理:
响应于用于停止所述计算处理的指令来停止正在执行的所述计算处理,所述指令由所述外部装置提供;并且
响应于用于改变所述计算处理的内容的指令来改变要由所述计算处理装置执行的所述计算处理的内容,所述指令由所述外部装置提供。
25.根据权利要求24所述的存储介质,
其中,当要由所述计算核心执行的所述计算处理的数目大于所述计算核心的数目时,
计算核心控制单元以预定时间间隔并且基于预定标准来选择正在执行所述计算处理的所述计算核心;指令所选择的计算核心停止所述计算处理;并且改变要由已经停止了所述计算处理的所述计算核心执行的所述计算处理的内容。
26.一种计算处理方法,包括:
由计算处理控制单元响应于由外部装置提供的用于开始计算处理的指令来开始预定的所述计算处理;
当在执行所述计算处理期间发生预设例外处理时,由例外检测单元检测所述例外处理,并且停止所述例外处理已经发生的所述计算处理;以及
由数据传送单元将数据传送到控制核心,所述数据是用于处置由所述例外检测单元所检测到的所述例外处理所需要的,并且
其中,所述控制核心进一步包括代理例外处置单元,所述代理例外处置单元被配置为作为计算核心的代理,使用由所述数据传送单元传送的数据来处置所述例外处理,所述计算核心由所述控制核心来控制并且执行预定计算处理,
其中,当在所述计算核心上发生的所述例外处理是系统呼叫时,所述数据传送单元将处置所述系统呼叫所需要的数据传送到包括在所述控制核心上的所述代理例外处置单元中的缓冲区域,
其中,所述例外处理是用于例外操作、关于存储器存取的例外以及在一般处理器上提供的意外中的至少一个的处理。
27.根据权利要求26所述的计算处理方法,
其中,计算核心控制单元指令所述计算核心响应于由所述例外检测单元检测到的所述例外处理来开始所述计算处理,
以及其中,当由所述计算核心控制单元提供用于开始所述计算处理的指令时,所述计算处理控制单元控制所述计算核心,使得所述计算核心开始所述计算处理。
28.根据权利要求27所述的计算处理方法,包括:
当检测到所述例外处理时,向所述外部装置通知已经检测到所述例外处理,
并且其中,所述计算核心控制单元指令所述计算核心响应于由从例外检测单元接收到的所述通知所指示的所述例外处理来开始计算处理。
29.根据权利要求26所述的计算处理方法,包括:
其中,计算核心控制单元指令所述计算核心停止由所述计算核心执行的所述计算处理,并且指令正在停止所述计算处理的所述计算核心来改变要由所述计算核心执行的所述计算处理的内容,
并且其中,所述计算处理控制单元控制所述计算核心,使得所述计算核心响应于用于停止所述计算处理的指令来停止正在被执行的所述计算处理,所述指令由所述计算核心控制单元来提供;并且响应于用于改变所述计算处理的内容的指令来改变要由所述计算核心执行的所述计算处理的内容,所述指令由所述计算核心控制单元来提供。
30.根据权利要求29所述的计算处理方法,
其中,当要由所述计算核心执行的所述计算处理的数目大于所述计算核心的数目时,
计算核心控制单元以预定时间间隔并且基于预定标准来选择正在执行所述计算处理的所述计算核心;指令所选择的计算核心停止所述计算处理;并且改变要由已经停止了所述计算处理的所述计算核心执行的所述计算处理的内容。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013232197A JP5867482B2 (ja) | 2013-11-08 | 2013-11-08 | 情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法 |
JP2013-232197 | 2013-11-08 | ||
PCT/JP2014/005561 WO2015068382A1 (ja) | 2013-11-08 | 2014-11-05 | 情報処理装置、情報処理方法、記録媒体、計算処理装置、計算処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105723340A CN105723340A (zh) | 2016-06-29 |
CN105723340B true CN105723340B (zh) | 2019-12-10 |
Family
ID=53041177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480061338.6A Active CN105723340B (zh) | 2013-11-08 | 2014-11-05 | 信息处理设备、信息处理方法、记录介质、计算处理设备、计算处理方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10241829B2 (zh) |
EP (1) | EP3067796A4 (zh) |
JP (1) | JP5867482B2 (zh) |
KR (1) | KR101783164B1 (zh) |
CN (1) | CN105723340B (zh) |
WO (1) | WO2015068382A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101870492B1 (ko) * | 2015-06-22 | 2018-06-22 | 엘에스산전 주식회사 | Plc 시스템 |
JP7000858B2 (ja) | 2015-12-09 | 2022-01-19 | Agc株式会社 | 硬化性組成物および硬化物 |
JP6798211B2 (ja) * | 2016-09-21 | 2020-12-09 | 日本電気株式会社 | 並列計算機システムおよび管理方法 |
JP6249119B1 (ja) * | 2017-03-15 | 2017-12-20 | 日本電気株式会社 | 制御装置、制御方法、プログラム、情報処理装置 |
CN111291373B (zh) * | 2020-02-03 | 2022-06-14 | 思客云(北京)软件技术有限公司 | 用于分析数据污染传播的方法、设备和计算机可读存储介质 |
JP7405008B2 (ja) | 2020-06-08 | 2023-12-26 | 富士通株式会社 | 情報処理装置、情報処理プログラム、及び、情報処理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304963B1 (en) * | 1998-05-14 | 2001-10-16 | Arm Limited | Handling exceptions occuring during processing of vector instructions |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3375649B2 (ja) | 1991-09-20 | 2003-02-10 | 株式会社日立製作所 | 並列計算機 |
TW200502847A (en) * | 2003-07-08 | 2005-01-16 | Benq Corp | Control device and method for reducing number of interrupts in a processor |
JP2008165318A (ja) | 2006-12-27 | 2008-07-17 | Hitachi Ltd | 計算機システム |
KR101615472B1 (ko) | 2007-09-24 | 2016-04-25 | 애플 인크. | 전자 장치 내의 내장형 인증 시스템들 |
JP5239752B2 (ja) * | 2008-10-31 | 2013-07-17 | 富士通株式会社 | 同期メッセージ発行システム、同期メッセージ発行方法および同期メッセージ発行プログラム |
US8271990B2 (en) * | 2009-02-27 | 2012-09-18 | International Business Machines Corporation | Removing operating system jitter-induced slowdown in virtualized environments |
US8260996B2 (en) * | 2009-04-24 | 2012-09-04 | Empire Technology Development Llc | Interrupt optimization for multiprocessors |
US8537832B2 (en) * | 2010-03-12 | 2013-09-17 | Lsi Corporation | Exception detection and thread rescheduling in a multi-core, multi-thread network processor |
JP5387776B2 (ja) | 2010-07-27 | 2014-01-15 | 富士通株式会社 | 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム |
US9601767B2 (en) | 2010-11-17 | 2017-03-21 | Luvata Appleton Llc | Alkaline collector anode |
US20140351617A1 (en) * | 2013-05-27 | 2014-11-27 | Motorola Mobility Llc | Method and Electronic Device for Bringing a Primary Processor Out of Sleep Mode |
-
2013
- 2013-11-08 JP JP2013232197A patent/JP5867482B2/ja active Active
-
2014
- 2014-11-05 WO PCT/JP2014/005561 patent/WO2015068382A1/ja active Application Filing
- 2014-11-05 CN CN201480061338.6A patent/CN105723340B/zh active Active
- 2014-11-05 KR KR1020167014916A patent/KR101783164B1/ko active IP Right Grant
- 2014-11-05 EP EP14860668.4A patent/EP3067796A4/en not_active Ceased
- 2014-11-05 US US15/035,065 patent/US10241829B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304963B1 (en) * | 1998-05-14 | 2001-10-16 | Arm Limited | Handling exceptions occuring during processing of vector instructions |
Also Published As
Publication number | Publication date |
---|---|
EP3067796A4 (en) | 2017-07-19 |
EP3067796A1 (en) | 2016-09-14 |
JP2015094974A (ja) | 2015-05-18 |
CN105723340A (zh) | 2016-06-29 |
KR101783164B1 (ko) | 2017-09-28 |
US10241829B2 (en) | 2019-03-26 |
JP5867482B2 (ja) | 2016-02-24 |
KR20160083916A (ko) | 2016-07-12 |
WO2015068382A1 (ja) | 2015-05-14 |
US20160371113A1 (en) | 2016-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105723340B (zh) | 信息处理设备、信息处理方法、记录介质、计算处理设备、计算处理方法 | |
JP5180373B2 (ja) | 仮想化環境における割り込みメッセージ終了のレイジー処理 | |
US9720714B2 (en) | Accelerator functionality management in a coherent computing system | |
US7149832B2 (en) | System and method for interrupt handling | |
US10452580B2 (en) | Method and system for providing remote direct memory access to virtual machines | |
US9946870B2 (en) | Apparatus and method thereof for efficient execution of a guest in a virtualized enviroment | |
KR101936950B1 (ko) | 컴퓨팅 디바이스, 코프로세서와 비휘발성 메모리 사이의 데이터 이동 방법 및 이를 포함하는 프로그램 | |
US20150370582A1 (en) | At least one user space resident interface between at least one user space resident virtual appliance and at least one virtual data plane | |
US20200250092A1 (en) | Shared filesystem metadata caching | |
Diakhaté et al. | Efficient shared memory message passing for inter-VM communications | |
KR102092459B1 (ko) | 컨테이너 기반 가상화 환경에서 gpu 메모리 자원 관리 및 스케줄링 방법 및 시스템 | |
US10467149B2 (en) | Control apparatus, control method, program, and information processing apparatus | |
Stecklina | Shrinking the hypervisor one subsystem at a time: A userspace packet switch for virtual machines | |
Asmussen et al. | Efficient and scalable core multiplexing with M³v | |
US9459910B1 (en) | Controlling a layered driver | |
KR102000721B1 (ko) | 컴퓨팅 디바이스, 코프로세서와 비휘발성 메모리 사이의 데이터 이동 방법 및 이를 포함하는 프로그램 | |
Mvondo et al. | Closer: A new design principle for the privileged virtual machine os | |
US7493526B2 (en) | System and method for supporting debugging of host channel adapters in a logical partitioning | |
Zeng et al. | Naplus: a software distributed shared memory for virtual clusters in the cloud | |
Parker | High-performance Networking on seL4 | |
WO2016067496A1 (ja) | 情報処理装置 | |
Tu | Memory-Based Rack Area Networking | |
US9378046B1 (en) | Manipulating hardware using a layered device driver | |
Stecklina | Shrinking the Hypervisor One Subsystem at a Time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |