CN1855085A - 用于在多处理器计算机中提供有效虚拟时基的方法和设备 - Google Patents
用于在多处理器计算机中提供有效虚拟时基的方法和设备 Download PDFInfo
- Publication number
- CN1855085A CN1855085A CNA2006100576670A CN200610057667A CN1855085A CN 1855085 A CN1855085 A CN 1855085A CN A2006100576670 A CNA2006100576670 A CN A2006100576670A CN 200610057667 A CN200610057667 A CN 200610057667A CN 1855085 A CN1855085 A CN 1855085A
- Authority
- CN
- China
- Prior art keywords
- base
- processor cores
- machine
- logical partition
- time
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种用于在逻辑分区的数据处理系统中提供虚拟化时基的数据处理系统中的方法和设备。为多个处理器内核中的每一个处理器内核确定时基。该时基用于向所确定的时基所对应的一个处理器内核指示当前时间。针对这些处理器内核共同地对时基进行同步,使得每一个处理器内核包括其自己的同步时基副本。对于一个处理器内核,产生不同于同步时基但与该同步时基的至少一部分保持同步的一个虚拟化时基。处理器内核利用虚拟化时基而不是同步时基来向处理器内核指示当前时间。同步时基与虚拟化时基的一部分保持共同的同步。
Description
技术领域
本发明涉及多处理器系统领域,并且更特别地涉及一种用于在可扩展的多处理器计算机系统中提供有效的虚拟化时基(time base)的方法和设备。
背景技术
对称多处理(SMP)数据处理系统具有对称的多个处理器内核,其中每个处理器内核具有相同的处理速度和处理延迟。SMP系统具有一个操作系统,该操作系统通过一次将作业的一个软件线程分发给每个处理器内核而将作业划分为均匀地分布在各内核中的任务。因此,SMP系统中的一个处理器内核一次只执行一个线程。
同时多线程(SMT)数据处理系统包括多个处理器内核,每个处理器内核一次均能并行地执行多个线程。当两个线程运行于同一处理器内核上时,SMT系统能够使一个线程优先于另一线程而执行。
已知的系统可以包括一个或多个共享的处理器内核,其中在系统正在执行的各进程之间共享这些共享处理器内核。处理器内核可以是SMT处理器内核。共享处理器内核可以是逻辑分区的系统的一部分,并且可以在该系统的各分区之间进行共享。虚拟分区的数目和分配给每个分区的系统容量可以由系统的操作者在引导系统时定义或修改。
这些系统典型地包括固件(又称系统管理程序),该固件管理和执行对系统中所有处理器内核的分区和/或共享。例如,系统管理程序可以将一个虚拟分区分发给一个或多个物理处理器内核。虚拟分区包括对将由每个物理处理器内核所完成的作业的定义以及在每个物理处理器内核中需要设定的各种设置和状态信息,以便使物理处理器内核执行作业。因此,每个虚拟分区可以是一个“虚拟”SMP系统。
在已知的共享处理器系统中,系统管理程序监督和管理每个物理处理器内核在所有的逻辑分区之间的共享。系统管理程序为每个逻辑分区分配一个分发时间片(dispatch time slice)。系统管理程序可通过将逻辑分区分发给物理处理器内核来为所有的逻辑分区提供服务。系统管理程序通过为每个逻辑分区分配时间来为逻辑分区服务,在此时间内会在一个或多个物理处理器内核上执行逻辑分区。系统管理程序可以同时将多个逻辑分区分发给不同的多组物理处理器内核。
每个逻辑分区可由特定的配置数据来确定,物理处理器内核需要用该特定配置数据来处理逻辑分区。该配置数据包括特定的数据、寄存器值、状态、设置和信息。所有的配置数据由系统管理程序存储于该系统管理程序的存储器中。当要将特定的逻辑分区分发给物理处理器内核时,系统管理程序将取回该分区的配置数据,恢复对寄存器的所有设置和处理器内核中的状态,并且从该分区最后一次挂起的时间点继续进行处理。一旦分配给物理分区的时间片已经过期,系统管理程序就会将所有配置数据的当前值保存回其存储器中,待稍后的时间对该逻辑分区进行进一步处理时取回。
每个处理器内核包括其自己的时基(TB)寄存器。TB寄存器是自由运行(free-running)的64位寄存器,其以恒定的速率递增,以便其值代表相对时间。在SMP系统中的所有处理器之间对TB寄存器进行初始同步,使得系统中的所有处理器具有相同的相对时间。TB寄存器所指示的时间是自重启机器开始已经逝去的时间。
TB寄存器是多线程处理器中的所有线程之间的共享资源,并且对在每个线程上执行的软件来说TB寄存器递增的恒定速率是已知的。系统管理程序还为每个逻辑分区保持实时偏移(RTO)。该RTO是TB从零开始递增时的挂钟时间(wall-clock time)。在由系统管理程序对其进行更新之前RTO保持不变。
通过用TB值乘以TB递增的周期并加上RTO,系统管理程序能够将TB值转换为当前的挂钟时间。系统管理程序将RTO作为每个分区的配置数据的一部分进行维护。当操作系统软件想要改变其挂钟时间时,该操作系统软件通知系统管理程序,并且系统管理程序只修改分区的RTO而不改变硬件TB。通常,软件任务只需要相对时间,可以简单地通过读取存储于TB中的当前值来确定该相对时间。
可以将一个逻辑分区同时分发给一个或多个物理处理器内核。这些处理器内核可以位于同一芯片内,或位于同一机器中的不同芯片内。此外,一次可以将一个逻辑分区分发给一个特定的处理器内核,并随后在稍后的时间将该逻辑分区分发给一个完全不同的处理器内核。两个处理器内核可以位于同一芯片内,或位于同一机器中的不同芯片内。
分区通过读取当前正在执行该分区的处理器内核的TB寄存器中当前所存储的值来获得当前的相对时间。如果分区被挂起并随后在第二处理器内核上得以继续,则该分区可使用该第二处理器内核中所包括的TB寄存器中所存储的值来获得当前的相对时间。
运行于不同的逻辑分区中的软件可以具有不同的挂钟时间,但所有分区中的所有线程必须始终观察时间的推进,包括挂钟时间和相对时间。较小的时间前跳是可允许的,但时间后跳则是不允许的。
由于操作系统或所分发的处理线程可以以任意顺序从运行该分区的不同处理器中读取TB,因此必须在执行相同的逻辑分区的所有物理处理器之间对TB寄存器进行同步,并且TB寄存器必须始终观察时间的推进。由于运行相同分区的所有处理器必须使其TB寄存器同步,并且系统管理程序能够将任意的逻辑分区分发给机器中的任意物理处理器,因此必须在整台机器中的所有处理器内核之间对TB寄存器进行同步。
由于TB寄存器在同一机器中的所有处理器之间是同步的,因此在同一机器中的不同处理器上得以继续的曾被挂起的逻辑分区会观察到时间前跳,时间前跳量为该分区被挂起的时间。为了分发分区而分配的时间片会将该时间前跳保持为小到可以接受的程度。
如果TB寄存器不同步,则在具有不同TB值的处理器上继续曾被挂起的分区将显示出较大的时间前跳或时间后跳,这是该体系结构所不允许的。由于不同机器内的处理器内核中的TB一般具有不同的值,因此现有技术的一个局限是逻辑分区仅限于在同一机器的处理器上运行。所希望的是能够在同一机器或不同机器上挂起和继续逻辑分区。
根据现有技术,一种不可接受的情形是每当分发逻辑分区时都使得每个逻辑分区可以改变其所有的处理器内核中的TB的值。如果改变了分区内的一个内核中的TB值,则该分区内的所有TB的值就不会再是全部彼此同步的。TB中的值有可能需要彼此重新同步,为此应挂起机器中正在执行的所有分区,阻止所有的TB值前移,更新运行该分区的其他内核中所需的TB值,由所有的时基重新开始计数,然后继续所有的分区。该方法是不可接受的,其原因在于该方法由于挂起逻辑分区的处理而影响了机器的性能,并且该方法由于频繁地中止TB寄存器而在该机器和其他机器以及时钟之间造成了明显的时间漂移。
一个可能的解决方案可以是使系统管理程序固件通过中断来截取到TB的所有软件访问,并应用由该系统管理程序为每个分区保持的附加偏移。然而,由于处理到TB的每个访问的中断的开销,这种解决方案会对性能产生消极影响。
因此,需要一种用于在可扩展的多处理器系统中提供虚拟化时基的方法和设备,当在同一机器或不同机器上挂起和继续逻辑分区时,该方法和设备在逻辑分区中的所有软件线程之间提供了准确的单调非减(monotonically non-decreasing)时间同步,同时保持了与其他机器或时钟的实时相关性。
发明内容
本发明公开了一种用于在逻辑分区的数据处理系统中提供虚拟化时基的数据处理系统中的方法和设备。为多个处理器内核中的每一个处理器内核确定时基。该时基用于向所确定的时基所对应的一个处理器内核指示当前时间。针对这些处理器内核共同地对时基进行同步,使得每一个处理器内核包括其自己的同步时基副本。对于一个处理器内核,产生不同于同步时基但与该同步时基的至少一部分保持同步的一个虚拟化时基。处理器内核利用虚拟化时基而不是同步时基来向处理器内核指示当前时间。同步时基与虚拟化时基的一部分保持共同的同步。
在以下的详细描述中,本发明的以上以及附加的目的、特征和优点将变得明显。
附图说明
在所附权利要求中阐明了保证本发明特性的新颖特征。然而,当结合附图阅读时,通过参考以下对说明性实施例的详细描述,可以最好地理解本发明本身及优选使用方式、其另外的目的和优点,其中:
图1示出了根据本发明的芯片,在该芯片中具有多个处理器内核;
图2示出了根据本发明的优选实施例的多处理器芯片的物理配置,该多处理器芯片诸如图1的芯片,其位于包括在一个计算机系统机器内的电路板上的对称多处理器(SMP)结构中;
图3示出了一张高级流程图,其说明,根据本发明使机器内的每个芯片与该机器中的其他芯片同步,使每个处理器内核的TB与该芯片中的每个其他的处理器内核中的TB同步,并使多个独立的机器彼此同步;
图4示出了一张高级流程图,其说明的过程由特定机器的系统管理程序根据本发明执行,以将处理器内核中的TB值调整为与正常的分区处理期间在该处理器上继续的特定分区相关联的相对时间;
图5示出了一张高级流程图,其说明的过程由特定机器的系统管理程序根据本发明执行,以将处理器内核中的TB值调整为与发生机器检查(machine check)之后在该处理器上得以继续的特定分区相关联的相对时间;
图6示出了一张高级流程图,其说明,根据本发明创建逻辑分区,为该分区分配初始时基偏移(TBO)0,并在该分区的配置数据中存储该TBO;
图7A示出,根据本发明,第一机器中的系统管理程序将逻辑分区发送给第二机器以便由第二机器中的处理器内核执行该逻辑分区;
图7B示出,根据本发明,第一机器中的系统管理程序接收来自第二机器的逻辑分区以便由第一机器中的处理器内核执行该逻辑分区;
图8是根据本发明的包括本发明的机器的网络的图示;
图9是包括根据本发明的处理器的计算机系统机器的图示;
图10是包括系统管理程序的可以实现本发明的计算机系统机器的框图;以及
图11是包括本发明的逻辑分区平台的框图。
具体实施方式
通过参考附图,可以更好地理解本发明的优选实施例及其优点,相同的标号用于附图的相同或相应的部分。
当在同一机器或不同机器上挂起和继续逻辑分区时,本发明在逻辑分区中的所有软件线程之间提供了准确的单调非减时间同步,同时保持了与其他机器的时间或其他时钟的实时相关性。
每个多内核处理器芯片保持其自己的时刻(TOD)寄存器,该时刻寄存器在机器中的所有处理器芯片之间是同步的。处理器芯片中的每个处理器内核包括其自己的时基(TB)寄存器。使每个处理器内核中的每个TB内的值与该芯片中的TOD寄存器初始同步。这种同步由硬件中的状态机响应于系统管理程序通过MTSPR(移动到专用寄存器)指令在TFMR(定时器设施管理寄存器)中写入一位而完成。TFMR是一种专用寄存器。使用32MHz阶跃信号来完成这种同步,该阶跃信号由系统中的所有芯片TOD同时接收到并从芯片TOD转发到同一芯片内的处理器内核中的TB。该32MHz阶跃信号的周期为0.03125微秒,其对应于该优选实施例中的TB的第59位。
2.0微秒对应于TB寄存器的第53位,因此在每2.0微秒的边界上,TB的第54-63位为零。当系统管理程序对TFMR进行写入时,硬件等待下一个2.0微秒的边界并随后使用32MHz阶跃信号来开始步进,从零开始加载TB值的第54-59位,同时从该芯片的TOD值中加载TB的第0-53位。TB与芯片的TOD之间的这种重同步可以在稳态运行期间的任意时间上(例如在机器检查之后)执行。
由于机器内的所有芯片中的TOD是彼此同步的并且芯片中的TB寄存器是与其芯片的TOD初始同步的,因此TB寄存器在整台机器上彼此之间也是初始同步的。一旦完成了初始同步,每个处理器内核中的TB寄存器就由从该芯片的TOD转发的同步的32MHz阶跃信号递增。因此,所有的TB寄存器都同时步进以保持精确的相对时间同步。
通过用TB的递增周期乘以TB值并加上分区的RTO,将TB中的相对时间转换为分区的挂钟时间。该RTO是TB中的相对时间为零时递增时分区的挂钟时间。显然,不同的逻辑分区可以具有不同的挂钟时间设置,但由于不同的机器很有可能在不同的时间启动,因此具有相同挂钟时间但在不同机器上的分区很有可能具有不同的相对时间。对于简化的示例,假定两个不同机器中的分区的挂钟时间为4:00pm。第一机器已经在1:00pm启动,因此第一机器上的分区的RTO将为4:00pm,并且其TB中表示相对时间为3小时。第二机器已经在3:00pm启动,因此第二机器上的分区的RTO将为3:00pm,并且其TB中表示相对时间为1小时。在本例中,如果第二机器上的分区被挂起并随后在第一机器上再继续处理,则对该分区将显示出时间从4:00pm回退到2:00pm。这是因为第二机器中执行该分区的处理器内核中的TB寄存器包括指示相对时间为3小时的值,而第一机器中将执行该分区的处理器内核中的TB寄存器包括指示相对时间为1小时的TB值。由于该分区是从执行该分区的TB寄存器中获得当前相对时间的,因此该分区将观察到时间从4:00pm回退到2:00pm。有必要使分区不会观察到时间在回退。
本发明是一种在可扩展的多处理器系统中提供虚拟化时基的方法和设备,其中无论选择了哪个系统中的哪个处理器来处理特定的逻辑分区,逻辑分区中正在执行的软件都始终观察到时间在前进。
逻辑分区中正在执行的软件和操作系统使用正在执行该分区的处理器内核中所包括的TB寄存器中当前所存储的值来获得当前的相对时间。
此外,本发明提供一种时基偏移(TBO),其由系统管理程序针对每个逻辑分区而计算并被存储在每个逻辑分区的配置数据中。TBO代表首先创建分区的机器的TB与当前运行该分区的机器的TB之间的差值。
每个TB值优选地是一个64位的值。该64位的值的精度从高阶位到低阶位增加,因此低阶位代表最精确的时间。低阶位优选地是第40-63位,而高阶位是第0-39位。在优选实施例中,第53位代表2.0微秒,并且第39位代表32.768微秒(0.032768秒)。
每个TBO优选地是有符号的40位的值,因此其可以代表正数或负数。TBO的40位与TB值的高40位代表相同的解析度。TBO的单位对应于由TB的第39位代表的时间量,其为32.768微秒。例如,代表1小时的TBO的十六进制值为0x000001AD27。该有符号的值采用标准的二进制的补数,因此代表-1小时的TBO的十六进制值为0xFFFFFE52D9。
当系统管理程序创建新的逻辑分区时,TBO值为零。只要仅将逻辑分区分发在创建该分区的同一台机器上,TBO就会保持为零。如果将逻辑分区移植到不同的机器上,就需要调整TBO以使其运行于该不同的机器上。
对于简化的示例,假定第一机器运行于其重启之后的1小时的相对时间上,第二机器运行于其重启之后的3小时的相对时间上,并且第三机器运行于其重启之后的6小时的相对时间上。如果最初创建于第二机器上的第一逻辑分区在第二机器上被挂起并在第一机器上得以继续,则针对运行于第一机器上的该第一逻辑分区而计算的TBO代表2小时,其原因在于第二机器运行在比第一机器晚2小时的时间上。
如果最初创建于第三机器上的第二逻辑分区在第三机器上被挂起并在第一机器上得以继续,则针对运行于第一机器上的该第二逻辑分区而计算的TBO代表5小时,其原因在于第三机器运行在比第一机器晚5小时的时间上。
如果创建于第三机器上的第二逻辑分区随后在第一机器上被挂起并在第二机器上得以继续,则必须重新计算TBO。该第二逻辑分区的TBO不再代表5小时,其被重新计算为代表3小时,其原因在于第三机器运行在比第二机器晚3小时的时间上。
TBO是一个有符号的值。因此,TBO可以代表正数或负数。例如,如果创建于第一机器上的第三逻辑分区在第一机器上被挂起并在第三机器上得以继续,则针对该第三逻辑分区而计算的TBO代表-5小时,其原因在于第一机器运行在比第三机器早5小时的时间上。
如果分区在不同的机器上挂起和继续,则新机器上的系统管理程序将接收该分区的配置数据。这种情况下的配置数据将包括由第一机器存储于该分区的配置数据中的TBO。此外,当第一机器中的系统管理程序将分区发送给另一机器以便执行时,该第一机器同样会发送最后执行该分区的处理器内核的TB寄存器的当前值。因此,第二机器中的系统管理程序根据其自己的数据和该分区的配置数据以及从原始机器上的系统管理程序传递给该第二机器的TB值来计算新的TBO值。
按照以上给出的这一个示例,假定第二逻辑分区创建于第三机器上。当创建该分区时,该分区的TBO为零。只要第三机器中的处理器内核继续处理该第二分区,该分区的TBO就会保持为零。如果第二分区在第三机器上被挂起并在第一机器上得以继续,则第三机器中的系统管理程序就会将该分区的配置数据发送给第一机器。
该分区配置数据会包括为零的TBO,其原因在于已经在创建该分区的机器上执行过该分区。此外,第三机器中的系统管理程序同样会发送最后执行第二分区的内核的TB寄存器的值。该TB寄存器的值将指示出第三机器内的该内核中的相对时间是6小时。
然后,第一机器中的系统管理程序会为第二分区计算新的TBO值。第一机器中的系统管理程序将使用其自己的数据来确定该第一机器的相对时间为1小时。第一机器中的系统管理程序将分析其在第二分区的配置数据中所接收的TBO以及其从第三机器中接收的TB值。然后,第一机器中的系统管理程序会确定该新的TBO值应该代表5小时。然后,第一机器中的系统管理程序会将该新的TBO值存储于该分区的配置数据中作为第二分区的TBO的当前值。
通过从系统管理程序的存储器中取回已挂起的逻辑分区的配置数据,并在选定为处理该逻辑分区的每个处理器内核中恢复所有已建立的寄存器值和状态,可在处理器上继续已挂起的逻辑分区。这种配置数据包括时基偏移(TBO)值。系统管理程序将新分发的分区的TBO应用于选定为处理该逻辑分区的每个处理器内核的TB。以下各段说明了如何将TBO应用于TB。
在可以于选定的处理器内核上继续已挂起的分区之前,必须首先挂起当前正在这些相同的处理器内核上执行的分区。挂起分区包括提取稍后继续执行该分区所需的所有已建立的寄存器内容和其他状态,以及将该数据保存到为该分区分配的系统管理程序的存储区域。挂起的分区有可能已经将其TBO应用于处理该分区的每个处理器内核中的TB。
当继续一个分区时,系统管理程序必须在将新分区的TBO应用于TB寄存器时将来自旧分区的TBO考虑在内。系统管理程序通过MFSPR(从专用寄存器中移出)指令来读取TB寄存器的当前值。然后,系统管理程序将旧分区的TBO与新分区的TBO之间的差值加到从TB寄存器中读取的值上,并采用MTSPR(移动到专用寄存器)指令只将结果写入TB寄存器的高阶位。将新的SPR(专用寄存器)号即助记码TBU40(时基的高40位)分配为仅表示TB寄存器的高阶40位。为TB的高40位分配新的助记码(SPR号)使得处理器内核硬件可以将MTSPR TBU40指令识别为新的操作。
当执行MTSPR TBU40指令时,硬件只将第0-39位写到TB寄存器中。TB值的低阶位即第40-63位不受MTSPR的影响,并且保持与芯片的TOD的精确同步。在执行该指令之后,芯片的TOD保持不变。
由于读取TB寄存器、计算旧分区的TBO与新分区的TB0之间的差值以及执行MTSPR指令的一系列动作会占用若干个机器周期,因此TB值有可能已经在读取该TB值与将新值写到高阶40位之间的时间内进行了递增。在将高阶位写入到TB寄存器中之前,低阶位的值有可能正好进位到高阶位中。因此,通过执行MTSPR TBU40指令来覆盖进入高阶位的进位。这有可能导致显示出TB发生回退,或使得不同物理处理器内核上的TB值不同。
由于TB寄存器中的第39位经过大约32微秒才发生改变,因此这可以通过检查最初读取的TB值是否在有限的递增数目内来比较容易地避免进位到第39位。例如,如果第40-53位全是1,这将意味着递增值将在接下来的2微秒内进位到第39位(原因是第53位对应于2微秒)。如果第40-53位中的任意一位是0,这将意味着在进位到第39位之前系统管理程序有至少2微秒的时间来完成上述一系列动作。如果所读取的值未给出足够的时间以确保上述一系列动作在进位到第39位之前完成,则系统管理程序会在一个循环中等待,读取TB,直到观察到进位到第39位,在此情况下,整个32微秒的窗口都是可用的。
这种有界机制会引起因等待进位到第39位而产生的显著延迟。为避免这些延迟,本优选实施例检查是否进位到第39位,并且如果进位到第39位,则纠正该值。要完成这一过程,可在更新之后再次读取TB值并将低阶位与初始值相比较,并且如果新的TB寄存器值小于初始的TB寄存器值,则再次递增该值。
机器检查是必须由系统管理程序立刻处理的高优先级的中断。在某些情况下,在中断之后将返回的指令地址有可能丢失。系统管理程序有可能正处于挂起或继续的进程中,并且不能准确地返回到发生中断的指令,因此系统管理程序无法再跟踪目前是将哪一个分区的TB0应用于TB的高位。在机器检查的情况下,从芯片的TOD中恢复TB的值,并将处理器内核将要执行的下一逻辑分区的TBO加到TB寄存器的高阶位上。检查该值以观察当应用TBO时TB的低阶位是否进位到第39位,并且如果当应用TBO时TB的低阶位进位到第39位,则TB在第39位在此递增。
一旦将TBO应用到TB,TB就代表分区的相对时间,而芯片TOD代表机器的相对时间。
当逻辑分区从第一机器中的处理器内核移植到第二机器中的不同的处理器内核时,两台机器都必须支持虚拟化并具有支持分区移植的系统管理程序固件层,具有相同的固定TB递增速率,并由可将数据从任一系统管理程序发送到另一系统管理程序的网络连接。由于分区中的作系统有可能需要得知已将分区移植到不同的机器,因此不能直接移植已经挂起的分区。系统管理程序将已经不再运行的分区分发给该系统管理程序的机器中的处理器内核,通知待移植的逻辑分区的作系统准备进行移植,并使该分区不再在该处理器内核上执行以准备将其移植到不同的机器。
第一机器中的系统管理程序将在不同的机器上继续处理逻辑分区所需的分区配置数据打包,这些数据包括该分区的RTO值。这些数据还包括来自发送这些数据的机器中的最后挂起对该分区的处理的处理器的TB值。应当注意,TB值包括这个时间点上的该分区的TBO。通过网络将该配置数据发送给第二机器。每台机器上的系统管理程序定义一个服务分区以执行打包、发送和接收数据的作业。
出于说明的目的,已将前面的确定TBO的示例进行了简化,即假定将分区从一台机器移动到另一机器的过程是时的。实际上,通过网络发送数据会耗费相当的时间量,并且在计算新的TBO时应将该逝去时间计算在内。
为了在计算第二机器(接收机器)上的新TBO值时将用以通过网络发送分区数据的逝去时间计算在内,两台机器上的服务分区采用相同的挂钟时间,即格林尼治标准时间(GMT)。在每台机器中保持时间的32MHz阶跃信号典型地只精确到+/-20ppm(正负百万分之二十),意味着两台机器中的服务分区的挂钟时间可以随时间缓慢地互相远离。运行于两台机器上的服务分区中的系统管理程序定期地通过网络利用消息来彼此同步以纠正任意的长时间漂移。
服务分区只运行于其自己的机器上,因此其TBO值始终为零。因此,运行服务分区的处理器上的TB值始终与代表该机器的相对时间的芯片TOD值相同。第一机器(发送机器)上的系统管理程序包括来自服务分区的TB值和分区时间(TB递增周期×TB值+RTO),该服务分区具有发送给第二机器(接收机器)的用于移植分区的数据。
当第二机器中的系统管理程序接收到用于移植分区数据的数据时,该系统管理程序通过在第一机器(发送机器)中从其自己的服务分区的挂钟时间中减去该服务分区的挂钟时间来确定发送数据的同时逝去的时间量。
第二机器(接收机器)中的系统管理程序还必须计算移植分区的新的TBO。通过用逝去的挂钟时间乘以恒定的TB递增速率来将用于发送数据的逝去时间转换为TB的单位。然后,新的TBO值就是来自移植分区的TB加上转换为TB的单位的用于发送数据的逝去时间再减去第二机器(接收机器)的服务分区的TB。
将新的TBO值连同移植后的分区数据存储于第二机器(接收机器)的系统管理程序的存储器中。然后,第二机器中的系统管理程序可以如上所述应用TBO将逻辑分区分发给第二机器中的特定处理器内核。
图1是可以执行接收和分发定时信号以及偶尔在一个或多个输入的振荡器信号发生故障时进行恢复的功能的代表性微处理器或芯片。芯片100包括第一处理器内核101a和第二处理器内核101b。可以简单地将每个处理器内核称为内核。处理器内核可以具有多线程能力、检错和恢复功能、大量的通用寄存器(GPR)和专用寄存器(SPR)。
优选地采用第2级缓存103(或L2缓存103)以及不可缓存单元105(或NCQ 105)来实现第一内核101a与第二内核101b的连通性。NCU 105处理用于存储经由交换总线110从内核接收的数据的命令以将这些数据存储到主存储器。这些存储器可以是存储映射I/O(memory-mapped I/O)。可以将对稍后有可能受到频访问的存储器的访问存储到L2 103,以便减小由内核所执行的作的延迟。
L2缓存103可以类似地提供经由交换总线110对其内容的访问,交换总线110可以与放置芯片100的同一电路板上以及在该电路板以外的其他芯片互连。
可以提供附近的但又在芯片外(off-chip)的第3级缓存(或L3缓存)。管理内核与L3之间的存取的控制在L3缓存控制113中进行。与此类似,可以在芯片内(on-chip)提供存储控制器115和I/O接口117以分别促进对通用RAM和对各外围设备的较长延迟的访问。
对称多处理器(SMP)交换控制119是对所连接的各设备对交换总线的争用进行仲裁的专用设备,并且SMP交换控制119经由扩展端口A、B、X、Y和Z提供SMP拓扑配置。本实施例中示出了五个扩展端口,然而,应当理解,要实现不同级别的复杂多芯片拓扑,可以采用更少或更多的扩展端口。预期五个端口可以在64个芯片之间或64个芯片中提供快速的指令、数据和定时信号。
普遍控制(pervasive control)121是存在于形成在芯片上的各处理模块(block)之外或集成在这些处理模块内的电路。普遍控制121的功能之一是通过在每个处理器内核的方便的指令边界上提供各GPR和SPR的冗余副本来提供对处理器状态的备份。此外,普遍控制121可以在检测错误和将这些错误传送给外部服务处理器以便由例如固件进行进一步作时提供辅助。
普遍控制121是冗余振荡器或者提供或接收派生定时信号的其他电路的选通点(gating point)。应当意识到,有可能因故障或其他原因而将一个或多个冗余振荡器从配置中去掉,并且普遍控制的一个目的是从冗余的振荡器中选择更好的定时信号(或至少一个在容限内的定时信号),并选择有可能经由扩展端口而到达的阶跃编码信号(step-encoded signal)。
每个处理器内核包括其自己的时基寄存器(TBR)。例如处理器内核101a包括时基寄存器101aa,并且处理器内核101b包括时基寄存器101bb。当重启包括特定芯片的机器时,将包括在该芯片内的每个处理器内核中的每个时基寄存器与包括在该芯片内的时刻(TOD)寄存器同步。例如,当重启包括芯片100的机器时,会将一个值写入到该系统内的每个芯片中所包括的时刻寄存器中。因此,会将一个值写入到TOD 130中。在此之后,通过以已知的时间边界单位将TOD130中的值写入到每个TB寄存器101aa和101bb中,可将TB寄存器101aa和TB寄存器101bb与TOD 130同步,之后它们通过根据公共阶跃信号来进行递增而保持同步。
在芯片100中由TOD 130、TB寄存器MTSPR TBU40指令101aa和TB寄存器101bb接收32MHz阶跃信号132。
图2示出了根据本发明的优选实施例的多处理器芯片的物理配置,该多处理器芯片诸如图1的芯片,其位于包括在一个计算机系统机器内的电路板上的对称多处理器(SMP)结构中。处理器节点200可以包含存储器组201a和存储器组201b,I/O集线器203,服务处理器205a和服务处理器205b,以及端口或连接器207a和207b,端口或连接器207a和207b处理来自每个多芯片模块(MCM)221a、221b、221c和221d的SMP交换扩展端口A和B。SMP交换扩展端口X、Y、Z对节点200内的多个MCM221进行互连,而端口A、B对多个不同节点上的MCM进行互连。每个多芯片模块在硬件配置上可以是相同的,但通过软件配置为具有不同的拓扑和功能,例如存在主模块功能与从模块功能之分。在MCM中可以存在图2的芯片222a-222d,以及第3级缓存存储器223a和223b。处理器节点200可以具有初级振荡器231和次级振荡器233,每个振荡器都连接到存在于该处理器节点上的每个芯片。振荡器和功能单元之间的连接在整个电路板和芯片上延伸,但在图2中未示出,以避免引起混淆。与此类似,应当理解,在端口和I/O集线器之间,在其他组件中,存在很多旋绕的互连,但在此并未示出这些互连。
每个MCM均包括一个芯片。例如,MCM 221a包括芯片222a,MCM 221b包括芯片222b,MCM 221c包括芯片222c,MCM221d包括芯片222d。
每个芯片包括它自己的时刻(TOD)寄存器。例如,芯片222a包括TOD 230a,芯片222b包括TOD 230b,芯片222c包括TOD 230c,芯片222d包括TOD 230d。
对机器内的所有芯片中的TOD寄存器共同进行初始同步。通过使TOD寄存器值步进到分布在整台机器中的32MHz脉冲来保持同步。除32MHz脉冲之外,在每2微秒的边界上发送同步脉冲。在本优选实施例中,该32MHz脉冲纠正该64位的值的第59位,并且2微妙的边界发生于第54-63位全部为零时。
图3示出了一张高级流程图,其说明,根据本发明使机器内的每个芯片与该机器中的其他芯片同步,使每个处理器内核的TB与该芯片中的每个其他的处理器内核中的TB同步,以及使多个独立的机器彼此同步。如方框300所示,进程开始,并随后进行到方框302,方框302示出,对机器进行开机和引导,例如在该机器上执行上电复位(Power-on-Reset)。机器引导包括加载和启动系统管理程序固件。
接着,方框304示出,在所有芯片之间对时刻(TOD)寄存器中的值进行同步。在一个优选的方法中,这种同步包括将初始值(通常是0)写到一个芯片TOD,然后例如通过对TFMR(定时器设施管理寄存器)进行写入来调用硬件状态机(这就将该值在整台机器中传播到所有的其他芯片,使得所有芯片上的TOD能够同时根据同步信号在每2微秒的边界上进行递增),以及使用对应于TOD值的一位(第59位)的32MHz阶跃信号来保持同步。
接着,方框306示出,对于该机器中的每个芯片,将该芯片内的每个处理器内核中的时基(TB)寄存器中的值与该芯片的TOD值同步。在本优选方法中,这由系统管理程序采用MTSPR(移动到专用寄存器)指令对每个处理器内核中的TFMR(定时器设施管理寄存器)进行写入而完成,TFMR使得该芯片的TOD值在下一个2微秒的同步边界上被传送到TB寄存器,TB寄存器随后通过将TB寄存器步进到与该芯片的TOD所步进到的脉冲相同的32MHz阶跃脉冲而保持同步。接着,方框308示出,开始该机器的系统管理程序的服务分区。
然后,进程进行到方框310,其示出,在该机器和连接到该机器的支持逻辑分区的移植的所有机器的服务分区中设置相同的挂钟时间(例如GMT)。每个机器上的系统管理程序将服务分区的相对时间偏移(RTO)存储于其存储器中。通过用特定的挂钟时间减去TB值与TB递增周期的乘积来确定RTO。确定哪台机器可用于分区移植的过程由网络管理员和系统操作者来进行。
然后,进程进行到方框312,其示出了确定是否已经诸如通过循环地关机/开机或通过重新引导(reboot)机器重启了机器。如果确定已经重启了机器,则进程返回方框304。再次参考方框312,如果确定还未重启机器,则进程进行到方框314,方框314示出,该机器中的系统管理程序继续通过其他机器的系统管理程序来查询这些机器中的服务分区,以便继续将该服务分区中的时间与其他机器内的服务分区中的时间同步。然后,进程循环回到方框312。
图4示出了一张高级流程图,其说明的过程由特定机器的系统管理程序根据本发明执行,以便将处理器内核中的TB值调整为与正常的分区处理期间在该处理器上继续的特定分区相关联的相对时间。如方框400所示,进程开始,并随后进行到方框402,方框402示出,用于特定处理器内核上当前正在执行的逻辑分区的时间片结束。接着,方框404示出,系统管理程序挂起特定处理器内核上当前正在执行的分区并确定在该处理器内核上继续哪个分区。然后,方框406示出,将先前在特定处理器内核上执行的分区的所有的配置数据和状态信息存储到系统管理程序的存储器,这些配置数据和状态信息是稍后继续处理分区所需要的。
然后,进程进行到方框408,其示出,系统管理程序根据存储于该系统管理程序的存储器中的配置数据来得到已分发给特定内核的前一分区的TBO。接着,方框410示出,系统管理程序根据存储于该系统管理程序的存储器中的配置数据来得到将分发给特定内核的下一分区的TBO。
在此之后,方框412示出,确定这两个TBO是否相等。如果确定这两个TBO相同,则进程进行到方框414,其表明该特定的处理器内核的TB寄存器值未改变。然后,如方框416所示,进程结束。
再次参考方框412,如果确定这两个TBO不同,则进程进行到方框418,其示出,计算先前分发给该处理器内核的分区的TBO与将要分发给该处理器内核的下一分区的TBO之间的差值。在此之后,方框420示出,从该处理器内核中读取当前的TB寄存器值并用从该内核中读取的TB寄存器值减去前一分区的TBO与下一分区的TBO之间的差值以计算新的TB寄存器值。
接着,方框422示出,通过对TBU40(时基的高40位)执行MTSPR(移动到专用寄存器)指令而将新的TB值的高40位写到该内核的TB寄存器的高40位。然后,进程进行到方框423,其示出,低阶位即第40-63位通过与该芯片的TOD同步地步进来继续计时。
然后,方框424示出,读取该内核的TB寄存器的当前值(更新后的值)。在此之后,方框426示出,只将更新后的值的低阶位与如方框420所示而读取的旧值的低阶位相比较。
在此之后,方框428示出,确定刚读取的当前值(更新后的值)的低阶位是否大于或等于旧值的低阶位。如果确定刚读取的当前值的低阶位大于或等于旧值的低阶位,则这一进程完成并且如方框434所示,处理继续。再次参考方框428,如果确定刚读取的当前值的低阶位并不大于或等于旧值的低阶位,则进程进行到方框430,其示出,通过递增第39位来递增刚读取的当前TB值。方框428中的比较结果为“否”表明TB寄存器值已经递增并在第一次读取该TB寄存器值的时间与将改变后的值写回高40位的时间之间进位到第39位。递增第39位上的值对由于被覆盖而丢失的增量进行了调整。
在此之后,方框432示出,采用对TBU40的MTSPR指令将递增后的TB值的高40位写到该内核的TB寄存器的高40位。然后,这一进程完成并且如方框434所示,处理继续。
图5示出了一张高级流程图,其说明的过程由特定机器的系统管理程序根据本发明执行,以便将处理器内核中的TB值调整为与发生机器检查(machine check)之后在该处理器上得以继续的特定分区相关联的相对时间。如方框500所示,进程开始,并随后进行到方框502,该方框502示出该机器中发生机器检查。当发生机器检查时,每个芯片的TOD中的值不受影响。因此,该TOD值仍然有效。
然后,进程进行到方框504,其示出,系统管理程序通过对该处理器内核中的定时器设施管理寄存器(TFMR)进行写入而从芯片的TOD中恢复特定处理器内核中的TB值。这使得硬件等待下一个2微秒边界,然后将该值从芯片的TOD传送到内核的TB并继续进行同步步进。
然后,方框506示出,从存储于系统管理程序的存储器中的该分区的配置数据中得到将分发给特定内核的下一分区的时基偏移(TBO)。接着,方框507示出,从该处理器内核中的该TB寄存器内读取当前TB值并将下一分区的TBO加到刚读取的TB值上以便计算新的TB值。然后,方框508示出,采用对TBU40的MTSPR指令将新的TB值的高40位写到该内核的TB寄存器的高40位。
接着,方框510示出,从该内核的TB寄存器中读取该内核的TB的当前值(更新后的值)。然后,方框512示出,只将更新后的值的低阶位与旧值的低阶位相比较。
然后,进程进行到方框514,其示出,确定刚读取的当前值(更新后的值)是否大于或等于旧值的低阶位。如果确定刚读取的当前值(更新后的值)并不大于或等于旧值的低阶位,则进程进行到方框518,其示出,通过递增第39位来递增刚读取的当前TB值。方框518中的比较结果为“否”表明TB寄存器值已经递增并在第一次读取该TB寄存器值的时间与将改变后的值写回TB寄存器的高40位的时间之间进位到第39位。递增第39位上的值对由于被覆盖而丢失的增量进行了调整。
接着,方框520示出,采用对TBU40的MTSPR指令将递增后的TB值的高40位写到该内核的TB寄存器的高40位。然后,这一进程进行到方框516并继续进行处理。
再次参考方框514,如果确定刚读取的当前值(更新后的值)的低阶位大于或等于旧值的低阶位,则进程进行到示出继续进行处理的方框514。
图6示出了一张高级流程图,其说明,根据本发明创建逻辑分区,为该分区分配初始时基偏移(TBO)0,并在该分区的配置数据中存储该TBO。图6所示的进程由系统管理程序执行。如方框600所示,进程开始,并随后进行到示出配置逻辑分区的方框602。接着,方框604示出,将该分区的包括寄存器数据、值和状态的所有配置数据存储于系统管理程序的存储器中。
然后,进程进行到方框606,其示出,将该分区的初始TBO分配为零。当系统管理程序创建新的逻辑分区时,TBO值初始为零。只要仅将逻辑分区分发在创建该分区的同一台机器上,TBO就会保持为零。接着,方框608示出,在存储器中存储该分区的时基偏移以及该分区的其他配置数据、值和状态。然后,如方框610所示,进程结束。
图7A示出,根据本发明,第一计算机系统机器中的系统管理程序发送逻辑分区给第二计算机系统机器以便由第二计算机系统机器中的处理器内核执行该逻辑分区。如方框700所示,进程开始,并随后进行到方框702,该方框702示出,由第一机器中的系统管理程序确定将特定的逻辑分区分发到第二机器中的处理器内核上执行。
接着,方框704示出,如果内核还没有执行特定分区,则系统管理程序将该分区分发给当前机器上的处理器内核。系统管理程序通知该分区的操作系统准备移植到第二机器。然后,方框706示出,系统管理程序挂起该分区使其不再在该内核上执行,并将该分区的配置数据和状态存储到系统管理程序的存储器,这些配置数据和状态包括该分区的实时偏移(RTO)。系统管理程序还包括来自最后执行该分区的处理器内核的时基(TB)值。最后执行该分区的处理器内核就是最后一个挂起该分区的内核。该TB值应用了该分区的TBO。
然后,方框708示出,第一机器中的系统管理程序将配置数据发送给第二机器。系统管理程序还发送第一机器上的服务分区的挂钟时间,该挂钟时间是与第二机器上的服务分区的挂钟时间同步的。然后,如方框710所示,进程结束。
图7B示出,根据本发明,第一计算机系统机器中的系统管理程序接收来自第二计算机系统机器的逻辑分区以便由第一计算机系统机器中的处理器内核执行该逻辑分区。如方框720所示,进程开始,并随后进行到方框722,该方框722示出,由第一机器从第二机器接收特定逻辑分区的配置数据,包括移植分区的RTO,应用了TBO的来自先前在第二机器中运行该分区的处理器内核的TB值,以及第二机器上的服务分区的挂钟时间。在此之后,方框724示出,计算用于发送配置数据的逝去时间。
接着,方框726示出,使用应用了移植分区的TBO的来自第二机器的TB、来自在第一机器上运行服务分区的处理器的TB以及用于数据发送的逝去时间来计算新的TBO。通过用逝去的挂钟时间乘以恒定的TB递增速率来将用于发送数据的逝去时间转换为TB的单位。然后,新的TBO值就是来自移植分区的TB加上转换为TB的单位的用于发送数据的逝去时间再减去第一机器(接收机器)的服务分区的TB。
接着,方框728示出,在第一机器中的系统管理程序内的存储器中存储所接收的配置数据和已移植的逻辑分区的新TBO。然后,如方框730所示,进程结束。
图8是根据本发明的包括本发明的计算机系统机器的网络的图示。网络数据处理系统800是可以实现本发明的计算机系统机器的网络。网络数据处理系统800包含网络802,该网络802是用于在网络数据处理系统800中为连接在一起的各个设备和计算机之间提供通信链路的媒介。网络802可以包括诸如有线通信链路、无线通信链路或光纤电缆之类的连接。
在所述示例中,将诸如服务器之类的机器804连同存储单元806一起连接到网络802。此外,还将其他机器808、810和812连接到网络802。这些机器808、810和812可以是客户机。例如,机器808、810和812可以是个人计算机、网络计算机或其他计算设备。在所述示例中,服务器804向客户机808-812提供数据和应用程序,这些数据诸如引导文件和操作系统映像。客户机808、810和812是服务器804的客户端。网络数据处理系统800可以包括未示出的另外的服务器、客户机以及其他设备。在所述示例中,网络数据处理系统800是具有网络802的因特网,其代表采用TCP/IP协议组来彼此通信的世界范围内的网络和网关的集合。因特网的核心是主节点或主计算机之间的高速数据通信线路组成的主干,包括成千上万的对数据和消息进行路由的商业、政府、教育和其他的计算机系统。
当然,还可以将网络数据处理系统800实现为多种不同类型的网络,诸如内网、局域网(LAN)、广域网(WAN)或无线网络。图8旨在作为示例,而不是作为对本发明的结构性限制。
图9是包括根据本发明的处理器的计算机系统机器的图示。数据处理系统900可以是对称多处理器(SMP)系统,其包括连接到系统总线906的多个处理器902和904。作为替代,可以采用单处理器系统。一个处理器可以是服务处理器,例如服务处理器904。同样连接到系统总线906的还有存储控制器/缓存908,其提供到本地存储器909的接口。I/O总线桥910连接到系统总线906并提供到I/O总线912的接口。可以如图所示将存储控制器/缓存908与I/O总线桥910集成在一起。
连接到I/O总线912的外围组件互连(PCI)总线桥914提供到PCI本地总线916的接口。可以将多个调制解调器连接到PCI总线916。典型的PCI总线实现可支持四个本地扩展插槽或插入连接器(add-in connector)。可以通过经由插入板(add-in board)连接到PCI本地总线916的调制解调器918和网络适配器920提供到其他计算机的通信链路。
网络适配器920包括物理层982,该物理层982对将通过R45连接器输出到诸如以太网之类的网络的模拟信号进行调节。媒体接入控制器(MAC)980包括在网络适配器920内。媒体接入控制器(MAC)980连接到总线916并处理数字网络信号。MAC 980用作总线916和物理层982之间的接口。
附加的PCI总线桥922和924为附加的PCI总线926和928提供接口,这些接口可以支持附加的调制解调器或网络适配器。以这种方式,数据处理系统900可以连接到多个网络计算机。如图所示,存储映射(memory-mapped)图形适配器930和硬盘932也可以直接或间接地连接到I/O总线912。
本领域的普通技术人员应当意识到,图9中示出的硬件是可以改变的。例如,除所述硬件之外,还可以使用诸如光驱等其他外围设备,或者用诸如光驱等其他外围设备来替代所示硬件。所述示例并非旨在暗示对本发明的结构性限制。
图10是包括系统管理程序的可以实现本发明的计算机系统机器的框图。系统1000优选地是对称多处理(SMP)服务器计算机系统。SMP服务器计算机系统1000包括能够映射到用户应用程序(即由用户应用程序暂时占用)以执行该应用程序的物理硬件设备。
SMP服务器计算机系统1000包括物理SMP服务器1002。物理SMP服务器1002包括诸如处理器1004、存储器1006和I/O适配器1008之类的物理硬件设备。这些物理设备由系统管理程序1010管理。每一个处理器1004优选地是同时多线程(SMT)处理器,可以在该处理器上并行地执行多个不同的线程。
虚拟服务器是物理服务器的代理,其具有与物理服务器相同的能力、接口和状态。虚拟服务器由驻留在SMP服务器计算机系统1000上的系统管理程序创建和管理。虚拟服务器对其用户表现为物理SMP服务器,操作系统、中间件和应用软件在其上运行。SMP服务器计算机系统1000包括一个或多个虚拟服务器,诸如虚拟服务器1012和虚拟服务器1012a。
每个虚拟服务器对其软件表现为包括其自己的专用于该虚拟服务器的虚拟处理器、存储器和适配器。例如,虚拟服务器1012包括虚拟处理器1020、虚拟存储器1022和虚拟I/O适配器1024。虚拟服务器1012a包括虚拟处理器1020a、虚拟存储器1022a和虚拟I/O适配器1024a。
每个虚拟服务器支持其自己的软件环境,包括操作系统、中间件和应用程序。每个虚拟服务器的软件环境可以不同于其他虚拟服务器的软件环境。例如,由每个虚拟服务器执行的操作系统可以彼此不同。
例如,虚拟服务器1012支持操作系统1014、中间件1016和应用程序1018。虚拟服务器1012a支持操作系统1014a、中间件1016a和应用程序1018a。操作系统1014和操作系统1014a可以是相同的或不同的操作系统。
虚拟服务器是对服务器的逻辑描述,其定义了服务器环境,对用户来说,虚拟服务器表现得好像是物理服务器,以与物理服务器相同的方式被访问和提供信息。为每个虚拟服务器定义的虚拟处理器、虚拟存储器和虚拟I/O适配器是对物理处理器、物理存储器和物理I/O适配器的逻辑替代。
系统管理程序1010管理具有其虚拟处理器、虚拟存储器和虚拟I/O适配器的虚拟服务器与选定为实现这些虚拟设备的物理硬件设备之间的映射。例如,当分发虚拟处理器时,系统管理程序1010选择诸如一个物理处理器1004之类的物理处理器以用于执行和实现该虚拟处理器。系统管理程序1010负责选择物理设备并将这些物理设备临时地分配给虚拟设备。
系统管理程序1010负责动态地创建、管理和去除虚拟SMP服务器。系统管理程序1010可以去除或添加整个虚拟处理器、虚拟I/O适配器和虚拟存储器模块(block)。系统管理程序1010还负责在不涉及操作系统的情况下进行动态资源分配、管理物理资源的时间共享以及改变映射到处理器的物理资源。系统管理程序1010负责将逻辑分区分发给系统1000中的一个或多个物理处理器内核。对于不希望共享的情形,系统管理程序1010还能够将物理资源专用为虚拟资源。系统管理程序1010负责管理对物理资源的添加或去除。系统管理程序1010使得这些添加和去除对于上级应用来说是透明的。
图11是包括本发明的逻辑分区平台的框图。数据处理系统1120包括逻辑分区平台1150。平台1150包括分区硬件1152、又称系统管理程序的分区管理固件1154以及分区1156-1159。
操作系统1161-1164存在于分区1156-1159中。操作系统1161-1164可以是一个操作系统的多个副本或同时运行于平台1150上的多个不同种类的操作系统。
服务分区1155包括在系统1120中并专用于系统管理程序1154。
分区硬件1152包括多个处理器节点1165-1168、多个系统存储单元(system memory unit)1170-1173、多个输入/输出(I/O)适配器1174-1181以及一个存储单元(storage unit)1182。可以将包括在处理器节点1165-1168、存储单元1170-1173、NVRAM存储器(非易失性随机存取存储器)1183以及I/O适配器1174-1181中的每个处理器内核分配给多个分区1156-1159中的一个分区。分区硬件1152还包括服务处理器1190。诸如设备之类的非易失性存储设备1191可以包括在服务处理器1190内。
分区管理固件(系统管理程序)1154执行分区1156-1159的多种功能和服务以创建和加强逻辑分区平台1150的分区。系统管理程序1154是与下层硬件相同的固件实现的虚拟机。固件是存储于不加电地保存其内容的存储芯片中的“软件”,这些存储芯片诸如只读存储器(ROM)、可编程ROM(PROM)可擦除可编程ROM(EPROM)、电可擦除可编程只读存储器ROM(EEPROM)以及非易失性随机存取存储器(非易失性RAM)。因此,系统管理程序1154可以通过对逻辑分区平台1150的所有硬件资源进行虚拟化来同时执行独立的OS(操作系统)映像1161-1164。系统管理程序1154可以通过I/O适配器1174-1181以专用模式将I/O设备连接到单一的虚拟机,以便由一个OS映像1161-1164所用。
将存储器1154a保留为专用于系统管理程序1154。
硬件管理控制台(HMC)1180可以连接到数据处理系统1120中的服务处理器1190。HMC 1180是连接到服务处理器1190的独立计算机系统并且用户可以使用HMC 1180通过服务处理器1190来控制系统1120的各种功能。
重要的是注意到,虽然已经在全功能数据处理系统的环境下对本发明进行了描述,但本领域的普通技术人员应当意识到,本发明的处理能够以包括指令的计算机可读介质的形式以及各种形式分布,并且不管用于实际执行这种分布的信号承载介质的具体类型如何,本发明都同样适用。计算机可读介质的例子包括可记录型介质和传输型介质,可记录型介质诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM,传输型介质诸如模拟通信链路和数字通信链路、有线通信链路和无线通信链路,无线通信链路采取诸如射频传输和光波传输之类的传输形式。计算机可读介质可以采取编码格式的形式,可以对该编码格式进行解码以便在特定的数据处理系统中实际使用。
至此已经出于说明和描述的目的提供了本发明的说明书,并且本发明的说明书并非旨在穷举和局限于所公开的发明形式。本领域的普通技术人员可以很容易地想到各种修改和变型。选择和描述这些实施例是为了最好地说明本发明的原理和实际应用,并使得本领域的普通技术人员能够理解,进行了各种修改的本发明的各种实施例将适用于预期的特定应用。
Claims (20)
1.一种用于在逻辑分区的数据处理系统中提供虚拟化时基的方法,所述方法包括:
为多个处理器内核中的每一个处理器内核确定时基,所述时基用于向所确定的所述时基所对应的所述多个处理器内核中的一个处理器内核指示当前时间;
针对所述多个处理器内核共同地对所述时基进行同步,其中所述多个处理器内核中的每一个处理器内核包括其自己的同步时基副本;
对于所述多个处理器内核中的一个处理器内核,产生不同于所述同步时基但与所述同步时基的至少一部分保持同步的一个虚拟化时基;
所述多个处理器内核中的所述一个处理器内核利用所述虚拟化时基而不是所述同步时基来向所述多个处理器内核中的所述一个处理器内核指示所述当前时间;以及
所述同步时基与所述虚拟化时基的所述一部分保持共同的同步。
2.根据权利要求1所述的方法,还包括:
采用包括第一组数位和第二组数位的多个数位来表示所述同步时基和所述虚拟化时基;以及
通过修改所述时基的所述第一组数位而不影响所述时基的所述第二组数位来产生所述虚拟化时基,所述虚拟化时基包括所述经修改的第一组数位和所述第二组数位。
3.根据权利要求2所述的方法,还包括:
执行“移动到专用寄存器”指令,所述指令只修改所述第一组数位而不影响所述第二组数位;以及
所述指令只向所述第一组数位中写入新值。
4.根据权利要求2所述的方法,还包括:
在修改所述第一组数位之后,所述时基的所述第二组数位继续保持与所述同步时基的所述第二组数位同步。
5.根据权利要求4所述的方法,还包括:
在第一机器中的所述多个处理器内核中的第一个处理器内核上执行多个逻辑分区中的一个逻辑分区,所述多个处理器内核中的所述一个处理器内核使用所述同步时基;
为所述多个处理器内核中的所述一个处理器内核确定时基偏移;以及
利用所述时基偏移来修改所述时基的所述第一组数位。
6.根据权利要求5所述的方法,还包括:
在修改所述第一组数位之后,确定在修改所述第一组数位时由所述第二组数位代表的所述时基是否已经进位到所述第一组数位;
响应于确定在修改所述第一组数位时由所述第二组数位代表的所述时间已经进位到所述第一组数位,更新所述第一组数位以表示所述进位。
7.根据权利要求1所述的方法,还包括:
在第一机器中的所述多个处理器内核中的第一个处理器内核上执行第一批逻辑分区中的一个逻辑分区,所述多个处理器内核中的所述第一个处理器内核使用所述同步时基;
挂起对所述第一机器上的所述多个逻辑分区中的所述一个逻辑分区的处理;
将所述多个逻辑分区中的所述一个逻辑分区发送给第二机器以便在包括于所述第二机器中的第二批处理器内核中的一个处理器内核上进行处理;
为所述第二批处理器内核中的每一个处理器内核确定第二时基;
针对所述第二批处理器内核对所述第二时基进行共同的同步,其中所述第二批处理器内核中的每一个处理器内核包括其自己的第二同步时基副本;
为所述第二批处理器内核中的所述一个处理器内核产生第二虚拟化时基,所述第二虚拟化时基不同于所述第二同步时基但与所述第二同步时基的至少一部分保持同步;以及
利用所述第二批处理器内核中的所述一个处理器内核来执行所述多个逻辑分区中的所述一个逻辑分区,所述第二批处理器内核中的所述一个处理器内核使用所述第二虚拟化时基。
8.根据权利要求7所述的方法,还包括:
在所述第一机器上创建所述第一批逻辑分区中的所述一个逻辑分区;以及
由所述第二机器为所述第一批逻辑分区中的所述一个逻辑分区产生时基偏移,所述时基偏移指示了所述第一机器中的所述同步时基与所述第二机器中的所述第二同步时基之间的相对时间差。
9.根据权利要求7所述的方法,还包括:
在所述第一机器上创建所述第一批逻辑分区中的所述一个逻辑分区;
在将所述第一批逻辑分区中的所述一个逻辑分区发送给所述第二机器之前,由所述第一机器为所述第一批逻辑分区中的所述一个逻辑分区产生时基偏移,将所述时基偏移初始地设置为等于零,只要所述第一批逻辑分区中的所述一个逻辑分区是由所述第一机器处理的并且没有发送给另一机器,所述时基偏移就保持不变;
由所述第二机器修改所述时基偏移以指示所述第一机器中的所述同步时基与所述第二机器中的所述第二同步时基之间的相对时间差;以及
只要所述第一批逻辑分区中的所述一个逻辑分区是由所述第二机器处理的并且没有发送给另一机器,所述第二机器中的所述经修改的时基偏移就保持不变。
10.根据权利要求1所述的方法,还包括:
由包括使用所述同步时基的所述多个处理器内核的第一机器创建逻辑分区;
将所述逻辑分区发送给第二机器以便由所述第二机器执行,所述第二机器使用第二同步时基;以及
为所述逻辑分区确定时基偏移,所述时基偏移代表了所述第一同步时基与所述第二同步时基之间的差值。
11.根据权利要求10所述的方法,还包括:
利用所述时基偏移来确定第二虚拟化时基;以及
由所述第二机器中的处理器内核来执行所述逻辑分区,所述处理器内核利用所述第二虚拟化时基而不是所述同步时基来向所述第二机器中的所述处理器内核指示当前时间。
12.根据权利要求11所述的方法,还包括:
使所述第一机器与所述第二机器同步;
确定在将所述逻辑分区从所述第一机器发送到所述第二机器期间所经过的逝去时间;以及
通过将所述逝去时间加到所述时基偏移上而利用所述逝去时间来调整所述第二虚拟化时基。
13.根据权利要求1所述的方法,还包括:
利用所述多个处理器内核中的一个特定的处理器内核来执行具有第一时基偏移的第一逻辑分区;
挂起对所述第一逻辑分区的执行;
确定将由所述多个处理器内核中的所述一个特定的处理器内核执行的第二逻辑分区;
为所述第二逻辑分区确定第二时基偏移;
确定所述第一时基偏移与所述第二时基偏移之间的差值;
通过修改虚拟化时基的第一组数位来为所述多个处理器内核中的所述一个特定的处理器内核确定所述虚拟化时基,其中所述第一组数位代表所述差值。
14.根据权利要求1所述的方法,还包括:
确定将由所述多个处理器内核中的所述的一个特定的处理器内核执行的下一逻辑分区;
为所述下一逻辑分区确定第一时基偏移;
为刚刚完成的由所述多个处理器内核中的所述的一个特定的处理器内核执行的前一逻辑分区确定第二时基偏移;
确定所述第一时基偏移与所述第二时基偏移之间的差值;
通过修改虚拟化时基的第一组数位来为所述多个处理器内核中的所述一个特定的处理器内核确定所述虚拟化时基,其中所述第一组数位代表所述差值。
15.根据权利要求14所述的方法,还包括:
在所述多个处理器内核中的所述一个特定的处理器内核中执行机器检查;
恢复来自时刻寄存器的所述多个处理器内核中的所述一个特定的处理器内核的同步时基,所述时刻寄存器由包括所述多个处理器内核中的所述一个特定的处理器内核的芯片维护;
在发生所述机器检查之后,所述第二时基偏移是不可知的;
确定所述第一时基偏移与从所述时刻寄存器中恢复的时基之间的差值;
通过修改虚拟化时基的第一组数位来为所述多个处理器内核中的所述一个特定的处理器内核确定所述虚拟化时基,其中所述第一组数位代表所述差值。
16.一种用于在逻辑分区的数据处理系统中提供虚拟化时基的设备,所述设备包括:
为多个处理器内核中的每一个处理器内核确定的时基,所述时基用于向所确定的所述时基所对应的所述多个处理器内核中的一个处理器内核指示当前时间;
针对所述多个处理器内核共同地对所述时基进行同步,其中所述多个处理器内核中的每一个处理器内核包括其自己的同步时基副本;
对于所述多个处理器内核中的一个处理器内核产生的一个虚拟化时基,其不同于所述同步时基但与所述同步时基的至少一部分保持同步;
所述多个处理器内核中的所述一个处理器内核利用所述虚拟化时基而不是所述同步时基来向所述多个处理器内核中的所述一个处理器内核指示所述当前时间;以及
所述同步时基与所述虚拟化时基的所述一部分保持共同的同步。
17.根据权利要求16所述的设备,还包括:
所述多个处理器内核中的一个特定的处理器内核,其执行具有第一时基偏移的第一逻辑分区;
挂起对所述第一逻辑分区的执行;
确定将由所述多个处理器内核中的所述一个特定的处理器内核执行的第二逻辑分区;
为所述第二逻辑分区确定的第二时基偏移;
所述系统包括CPU执行码,所述CPU执行码用于确定所述第一时基偏移与所述第二时基偏移之间的差值;
所述码用于通过修改虚拟化时基的第一组数位来为所述多个处理器内核中的所述一个特定的处理器内核确定所述虚拟化时基,其中所述第一组数位代表所述差值。
18.根据权利要求16所述的设备,还包括:
用于执行下一逻辑分区的所述多个处理器内核中的一个特定的处理器内核;
为所述下一逻辑分区确定的第一时基偏移;
所述系统包括CPU执行码,所述CPU执行码用于为刚刚完成的由所述多个处理器内核中的所述的一个特定的处理器内核执行的前一逻辑分区确定第二时基偏移;
所述码用于确定所述第一时基偏移与所述第二时基偏移之间的差值;
所述码用于通过修改虚拟化时基的第一组数位来为所述多个处理器内核中的所述一个特定的处理器内核确定所述虚拟化时基,其中所述第一组数位代表所述差值。
19.根据权利要求16所述的设备,还包括:
在第一机器中的所述多个处理器内核中的第一个处理器内核,其执行第一批逻辑分区中的一个逻辑分区,所述多个处理器内核中的所述第一个处理器内核使用所述同步时基;
挂起对所述第一机器上的所述多个逻辑分区中的所述一个逻辑分区的处理;
将所述多个逻辑分区中的所述一个逻辑分区发送给第二机器以便在包括于所述第二机器中的第二批处理器内核中的一个处理器内核上进行处理;
为所述第二批处理器内核中的每一个处理器内核确定的第二时基;
针对所述第二批处理器内核对所述第二时基进行共同的同步,其中所述第二批处理器内核中的每一个处理器内核包括其自己的第二同步时基副本;
为所述第二批处理器内核中的所述一个处理器内核产生的第二虚拟化时基,所述第二虚拟化时基不同于所述第二同步时基但与所述第二同步时基的至少一部分保持同步;以及
所述第二批处理器内核中的所述一个处理器内核执行所述多个逻辑分区中的所述一个逻辑分区,所述第二批处理器内核中的所述一个处理器内核使用所述第二虚拟化时基。
20.一种用于在逻辑分区的数据处理系统中提供虚拟化时基的计算机程序产品,所述产品包括用于执行权利要求1-13之任意一项中的步骤的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/110,180 US7512826B2 (en) | 2005-04-20 | 2005-04-20 | Method, apparatus, and product for an efficient virtualized time base in a scaleable multi-processor computer |
US11/110,180 | 2005-04-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1855085A true CN1855085A (zh) | 2006-11-01 |
CN100520759C CN100520759C (zh) | 2009-07-29 |
Family
ID=37188482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100576670A Expired - Fee Related CN100520759C (zh) | 2005-04-20 | 2006-02-22 | 用于在多处理器计算机中提供有效虚拟时基的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7512826B2 (zh) |
JP (1) | JP5078274B2 (zh) |
CN (1) | CN100520759C (zh) |
TW (1) | TWI362577B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105518659A (zh) * | 2014-10-28 | 2016-04-20 | 华为技术有限公司 | 分布式数据库的数据分区分配方法及装置 |
WO2016131247A1 (zh) * | 2015-07-30 | 2016-08-25 | 中兴通讯股份有限公司 | 一种用于虚拟机的高性能定时器实现方法、虚拟机 |
CN106462551A (zh) * | 2014-06-05 | 2017-02-22 | 密克罗奇普技术公司 | 用于为多处理器核心装置分配装置引脚所有权的装置及方法 |
CN107107839A (zh) * | 2014-12-10 | 2017-08-29 | 日立汽车系统株式会社 | 电子控制装置 |
CN109471588A (zh) * | 2018-09-13 | 2019-03-15 | 北京米文动力科技有限公司 | 一种同步方法及设备 |
CN111913412A (zh) * | 2019-05-08 | 2020-11-10 | 意法半导体应用有限公司 | 处理系统、相关集成电路、装置和方法 |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7778814B2 (en) * | 2004-03-30 | 2010-08-17 | Siemens Aktiengesellschaft | Method and device for simulating an automation system |
US8621458B2 (en) | 2004-12-21 | 2013-12-31 | Microsoft Corporation | Systems and methods for exposing processor topology for virtual machines |
US7406407B2 (en) * | 2006-06-01 | 2008-07-29 | Microsoft Corporation | Virtual machine for operating N-core application on M-core processor |
WO2008011030A2 (en) * | 2006-07-17 | 2008-01-24 | Xensource, Inc | Tracking current time on multiprocessor hosts and virtual machines |
GB0614515D0 (en) * | 2006-07-21 | 2006-08-30 | Ibm | An apparatus for managing power-consumption |
US20080059556A1 (en) * | 2006-08-31 | 2008-03-06 | Egenera, Inc. | Providing virtual machine technology as an embedded layer within a processing platform |
EP1939741A3 (en) * | 2006-11-17 | 2009-10-07 | Fujitsu Ltd. | Resource management apparatus and radio network controller |
JP4492618B2 (ja) * | 2007-01-18 | 2010-06-30 | トヨタ自動車株式会社 | 車両用制御システム |
US8214585B2 (en) * | 2007-08-15 | 2012-07-03 | International Business Machines Corporation | Enabling parallel access volumes in virtual machine environments |
US7996648B2 (en) * | 2007-12-19 | 2011-08-09 | Microsoft Corporation | Coupled symbiotic operating systems |
US8321840B2 (en) * | 2007-12-27 | 2012-11-27 | Intel Corporation | Software flow tracking using multiple threads |
US7941688B2 (en) * | 2008-04-09 | 2011-05-10 | Microsoft Corporation | Managing timers in a multiprocessor environment |
JP5180729B2 (ja) * | 2008-08-05 | 2013-04-10 | 株式会社日立製作所 | 計算機システム及びバス割当方法 |
US8207752B2 (en) * | 2010-01-11 | 2012-06-26 | Kannan Raj | Fault-tolerant multi-chip module |
FR2957433B1 (fr) * | 2010-03-11 | 2016-01-15 | Bull Sas | Procede de configuration d'un systeme informatique, programme d'ordinateur et systeme informatique correspondants |
US8359488B2 (en) * | 2010-04-12 | 2013-01-22 | Red Hat, Inc. | Keeping time in multi-processor virtualization environments |
US20120036214A1 (en) * | 2010-08-03 | 2012-02-09 | International Business Machines Corporation | Alternative transfer of logical partitions (lpar) from one lpar computer system to another |
US8560584B2 (en) * | 2010-12-15 | 2013-10-15 | Teradata Us, Inc. | Database partition management |
US9003218B2 (en) | 2012-05-21 | 2015-04-07 | International Business Machines Corporation | Power shifting in multicore platforms by varying SMT levels |
WO2014073324A1 (ja) | 2012-11-12 | 2014-05-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 光回路スイッチ(ocs)による電気/光メモリリンクの確立 |
GB2516083A (en) * | 2013-07-11 | 2015-01-14 | Ibm | Virtual Machine Backup |
GB2516087A (en) | 2013-07-11 | 2015-01-14 | Ibm | Virtual Machine Backup |
US9606870B1 (en) | 2014-03-31 | 2017-03-28 | EMC IP Holding Company LLC | Data reduction techniques in a flash-based key/value cluster storage |
US10007546B2 (en) * | 2015-01-19 | 2018-06-26 | Vmware, Inc. | Operating-system exchanges using memory-pointer transfers |
US10445123B2 (en) | 2015-01-19 | 2019-10-15 | Vmware, Inc. | Hypervisor exchange with virtual-machine consolidation |
US10725770B2 (en) | 2015-01-19 | 2020-07-28 | Vmware, Inc. | Hot-swapping operating systems using inter-partition application migration |
US9507646B2 (en) | 2015-02-11 | 2016-11-29 | International Business Machines Corporation | Cycle-level thread alignment on multi-threaded processors |
US10203977B2 (en) | 2015-11-25 | 2019-02-12 | Red Hat Israel, Ltd. | Lazy timer programming for virtual machines |
US10152527B1 (en) | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
US10324635B1 (en) | 2016-03-22 | 2019-06-18 | EMC IP Holding Company LLC | Adaptive compression for data replication in a storage system |
US10310951B1 (en) | 2016-03-22 | 2019-06-04 | EMC IP Holding Company LLC | Storage system asynchronous data replication cycle trigger with empty cycle detection |
US10095428B1 (en) | 2016-03-30 | 2018-10-09 | EMC IP Holding Company LLC | Live migration of a tree of replicas in a storage system |
US10565058B1 (en) | 2016-03-30 | 2020-02-18 | EMC IP Holding Company LLC | Adaptive hash-based data replication in a storage system |
US9959073B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Detection of host connectivity for data migration in a storage system |
US9959063B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Parallel migration of multiple consistency groups in a storage system |
US10705867B2 (en) | 2016-06-22 | 2020-07-07 | Vmware, Inc. | Hypervisor exchange with virtual machines in memory |
US10152232B1 (en) | 2016-06-29 | 2018-12-11 | EMC IP Holding Company LLC | Low-impact application-level performance monitoring with minimal and automatically upgradable instrumentation in a storage system |
US9983937B1 (en) | 2016-06-29 | 2018-05-29 | EMC IP Holding Company LLC | Smooth restart of storage clusters in a storage system |
US10083067B1 (en) * | 2016-06-29 | 2018-09-25 | EMC IP Holding Company LLC | Thread management in a storage system |
US10048874B1 (en) | 2016-06-29 | 2018-08-14 | EMC IP Holding Company LLC | Flow control with a dynamic window in a storage system with latency guarantees |
US10013200B1 (en) | 2016-06-29 | 2018-07-03 | EMC IP Holding Company LLC | Early compression prediction in a storage system with granular block sizes |
US10387186B2 (en) | 2017-06-28 | 2019-08-20 | Vmware, Inc. | Hypervisor with virtual-memory file system |
JP6777050B2 (ja) | 2017-09-21 | 2020-10-28 | 株式会社デンソー | 仮想化システム、仮想化プログラム、及び、記憶媒体 |
US10867462B1 (en) | 2020-03-18 | 2020-12-15 | B/E Aerospace, Inc. | Self-vending beverage distribution station |
US11564185B2 (en) | 2020-04-17 | 2023-01-24 | Rockwell Collins, Inc. | Precise time synchronization for 4G automatic link establishment (ALE) stations |
US12050930B2 (en) | 2021-06-23 | 2024-07-30 | International Business Machines Corporation | Partition migration with critical task prioritization |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01309136A (ja) * | 1988-06-08 | 1989-12-13 | Hitachi Ltd | 仮想タイマー加速制御方式 |
JP2907958B2 (ja) * | 1990-06-06 | 1999-06-21 | 富士通株式会社 | 時刻機構制御方法 |
US5235539A (en) * | 1990-12-12 | 1993-08-10 | Sun Microsystems, Inc. | Method and apparatus for generating carry out signals |
JP3414209B2 (ja) * | 1997-07-30 | 2003-06-09 | 松下電器産業株式会社 | プロセッサ |
JP3958662B2 (ja) * | 2002-09-25 | 2007-08-15 | 松下電器産業株式会社 | プロセッサ |
US7155629B2 (en) * | 2003-04-10 | 2006-12-26 | International Business Machines Corporation | Virtual real time clock maintenance in a logically partitioned computer system |
DE10327116B4 (de) * | 2003-06-13 | 2006-03-16 | Eads Deutschland Gmbh | Verfahren zur Zeitsynchronisation von mindestens zwei in einem Mikroprozessorsystem enthaltenden Uhren |
-
2005
- 2005-04-20 US US11/110,180 patent/US7512826B2/en not_active Expired - Fee Related
-
2006
- 2006-02-22 CN CNB2006100576670A patent/CN100520759C/zh not_active Expired - Fee Related
- 2006-04-05 JP JP2006103737A patent/JP5078274B2/ja not_active Expired - Fee Related
- 2006-04-07 TW TW095112580A patent/TWI362577B/zh not_active IP Right Cessation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462551A (zh) * | 2014-06-05 | 2017-02-22 | 密克罗奇普技术公司 | 用于为多处理器核心装置分配装置引脚所有权的装置及方法 |
CN105518659A (zh) * | 2014-10-28 | 2016-04-20 | 华为技术有限公司 | 分布式数据库的数据分区分配方法及装置 |
CN105518659B (zh) * | 2014-10-28 | 2019-07-26 | 华为技术有限公司 | 分布式数据库的数据分区分配方法及装置 |
CN107107839A (zh) * | 2014-12-10 | 2017-08-29 | 日立汽车系统株式会社 | 电子控制装置 |
WO2016131247A1 (zh) * | 2015-07-30 | 2016-08-25 | 中兴通讯股份有限公司 | 一种用于虚拟机的高性能定时器实现方法、虚拟机 |
CN109471588A (zh) * | 2018-09-13 | 2019-03-15 | 北京米文动力科技有限公司 | 一种同步方法及设备 |
CN109471588B (zh) * | 2018-09-13 | 2021-08-10 | 北京米文动力科技有限公司 | 一种同步方法及设备 |
CN111913412A (zh) * | 2019-05-08 | 2020-11-10 | 意法半导体应用有限公司 | 处理系统、相关集成电路、装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US7512826B2 (en) | 2009-03-31 |
JP5078274B2 (ja) | 2012-11-21 |
JP2006302270A (ja) | 2006-11-02 |
TWI362577B (en) | 2012-04-21 |
US20060242442A1 (en) | 2006-10-26 |
CN100520759C (zh) | 2009-07-29 |
TW200708920A (en) | 2007-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1855085A (zh) | 用于在多处理器计算机中提供有效虚拟时基的方法和设备 | |
US11372688B2 (en) | Resource scheduling method, scheduling server, cloud computing system, and storage medium | |
US10333981B2 (en) | Method and apparatus for security checking of image for container | |
US8312464B2 (en) | Hardware based dynamic load balancing of message passing interface tasks by modifying tasks | |
US8108876B2 (en) | Modifying an operation of one or more processors executing message passing interface tasks | |
US8893148B2 (en) | Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks | |
CN1251074C (zh) | 计算机的重启动方法 | |
US8127300B2 (en) | Hardware based dynamic load balancing of message passing interface tasks | |
US20050091354A1 (en) | Online computer maintenance utilizing a virtual machine monitor | |
US20230297401A1 (en) | Hybrid quantum-classical cloud platform and task execution method | |
US20200334065A1 (en) | A method, apparatus and system for real-time virtual network function orchestration | |
WO2013101193A1 (en) | Method and device for managing hardware errors in a multi-core environment | |
CA3003789A1 (en) | Virtual non-uniform memory architecture for virtual machines | |
US9811346B2 (en) | Dynamic reconfiguration of queue pairs | |
US20090064166A1 (en) | System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks | |
US20130298119A1 (en) | Management system and method using the same | |
Lee et al. | Shard manager: A generic shard management framework for geo-distributed applications | |
US20130125131A1 (en) | Multi-core processor system, thread control method, and computer product | |
CN112527451B (zh) | 容器资源池的管理方法、装置、设备以及存储介质 | |
CN1928832A (zh) | 多处理计算系统中的状态跟踪和恢复方法和系统 | |
US10567239B2 (en) | Techniques of providing data to screen saver of thin client | |
EP4109255A1 (en) | Scheduling in a container orchestration system utilizing hardware topology hints | |
CN107220101B (zh) | 一种容器创建方法和装置 | |
CN103186403A (zh) | 节点置换处理方法与使用该方法的服务器系统 | |
US11748141B2 (en) | Providing virtual devices direct access to clock times in memory locations managed by a hypervisor |
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: 20090729 Termination date: 20190222 |
|
CF01 | Termination of patent right due to non-payment of annual fee |