CN1096034C - 多处理系统 - Google Patents
多处理系统 Download PDFInfo
- Publication number
- CN1096034C CN1096034C CN96111046A CN96111046A CN1096034C CN 1096034 C CN1096034 C CN 1096034C CN 96111046 A CN96111046 A CN 96111046A CN 96111046 A CN96111046 A CN 96111046A CN 1096034 C CN1096034 C CN 1096034C
- Authority
- CN
- China
- Prior art keywords
- logout
- checkpoint
- processor
- storer
- memory
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
用于记录主存储器更新历程的运行记录存贮器,多个CPU将主存贮器的更新历程记录到两个运行记录存贮器的一个之内,并在校验点获得处将其上下文和高速缓冲存贮器的内容写入主存贮器。主存贮器的更新历程被从多个CPU中已经完成校验点处理的一个转换到多个记录存贮器中CPU尚未使用过的另一个内以记录主存贮器的更新历程。可以在不必等待多个CPU中其它一些CPU的校验点获得的情况下重新开始正常处理。
Description
本发明涉及一种具有共享存贮器的多处理器系统,特别涉及到一种采用一种运行记录存贮器(10g memory)的校验点重新开始方法的多处理器系统。
校验点重新开始方法是在容错计算机系统中所使用的公知的系统复杂技术。在校验点重新开始方法中,在运行记录存贮器内周期性地记录执行处理所需的信息。与记录该信息有关的时间点称之为校验点,把该信息记录到运行记录存贮器的过程称之为校验点的采集。当在一个计算机系统中执行一个由故障的产生而引起的程序中断时,被中断处理的程序的状态返回到故障产生之前的校验点,并从该校验点开始重新执行所述程序。
由校验点处理所记录的信息包括多个处理器的内部状态或上下文(例如是来自多个寄存器的数据)、高速缓冲存储器的内容以及主存储器的内容。最近,运行记录存贮器也被应用到校验点处理之中,用以通过存贮正常程序执行被中断的时间来缩短执行这种处理所需的时间。使用这种方法,例如每次通过执行一个处理来更新主存贮器时,在从某个校验点到下个校验点的周期内进行更新之前的图象数据作为更新后的过去信息记录在一个运行记录存贮器之中。当在计算机系统中产生故障时,利用该记录存贮器中的内容,将主存贮器的状态恢复到那个故障发生之前的校验点处的状态。因此,在利用记录存贮器的校验点重新开始方法中,校验点处理记录的仅是处理器和高速缓冲存贮器的内容,因此,校验点处理所需的时间被相对缩短。图一示出了采用利用运行记录存贮器的校验点重新开始方法的一个计算机系统的典型的例子。
该系统包括处理器模块100,总线400,总线控制器500,运行记录存贮器600和主存储器700。处理器模块100包括CPU(中央处理单元)105和高速缓冲存贮器110。
当CPU 105更新主存储器700中的数据时,总线控制器500记录在运行记录存贮器600中被更新的历程。当运行记录存贮器剩余的存贮规模低于某个规模时,CPU 105开始一个校验点处理,并将CPU 105的上下文和高速缓冲存贮器110的内容存贮在主存贮器700之中。当完成点采集处理时,在存贮器600中记录的更新后的过去信息变得不再需要。在记录存贮器600被启动并抛弃了更新后的过去数据之后,由CPU 105重新开始正常处理。从正常处理被重新开始的时间到下个校验点这个周期内主存储器700被更新的历程被记录在运行记录存贮器600之中。
其中的每一个都包括有具有一个主存贮器的多个处理器模块的现存多处理器系统都适合于采用校验点重新开始方法。在这种现存系统中每个处理器模块都具有它自己单独的运行记录存储器。下面结合图2(a)来详细解释与这种结构的多处理器系统相关的校验点处理。这个例子的多处理器系统具有三个CPU,即CPU"0"、CPU"1"和CPU"2",其中的每一个都具有它自己单独的运行记录存贮器。CPU"0"、CPU"1"和CPU"2"分别执行处理(图2(9)中的(1)),此后,当CPU"0"的运行记录存贮器的剩余量低于一个预定量(图2(9)中的(2))时,CPU"0"检测该状态并开始校验点处理。在一个预定时间(图2(a)中的(3))之后,CPU"0"的校验点处理完成,重新开始CPU"0"的正常数据处理。在CPU"0"校验点处理期间内,CPU"1"或CPU"2"中的每一个继续正常的数据处理。按照CPU"1"和CPU"2"的顺序,校验点处理的每一个被单独开始(图2(a)中的(4)和(5))并单独完成(图2(a)中的(6)和(7))。在这种情况下,CPU"0"、CPU"1"和CPU"2"的顺序,校验点处理的每一个被单独开始(图2(a)中的(4)和(5))并单独完成(图2(a)中的(6)和(7))。在这种状态下,CPU"0"、CPU"1"和CPU"2"中的每一个能够单独地开始校验点处理和重新开始正常的程序处理。
在这个例子的这个多处理器系统中,每个处理器都能重新开始正常的数据处理。但是,这需要在该多处理器系统中具有足够数量的用于每个CPU的运行记录存贮器的硬件结构。
其它一些现存的多处理器系统仅需要一个运行记录存贮器以用于多个具有所述主存贮器的多个处理器。在这种情况下,即使是一个处理器已经完成了校验点处理,在所有其它的处理器完成校验点处理以前,还是不能够重新开始正常的处理。下面结合图2(b)来解释与在具有这种结构的多处理器系统中的校验点处理相关的问题。
在三个CPU,即,CPU"0"、CPU"1"和CPU"2"共享一个主存贮器的多处理器系统中,三个CPU,即CPU"0"、CPU"1"和CPU"2"单独地执行一个处理(图2(b)中的(1))。此后,当运行记录存贮器中的剩余量低于一个预定量(图2(b)中的(2))时,CPU"0"、CPU"1"和CPU"2"中的每一个检测该状态,并开始校验点处理(图2(b)中的(3))。校验点处理的开始定时以及完成它所需的时间取决于检测定时、该定时被检测时的处理类型以及高速缓冲器的状态。因此,对于各CPU来讲,完成校验点处理的定时是不同的。图2(b)示出了按照CPU"0"、CPU"2"和CPU"1"的顺序所完成的校验点处理。
在这种情况下,在CPU"1"的校验点处理没有完成之前,CPU"0"和CPU"2"不能重新开始正常的程序处理并处于等待状态(图2(b)的(4))。这就是为什么在所有的CPU的校验点处理被完成的时间点之前,存贮在运行记录存贮器中的更新的历程必需相对于故障的发生而被保持的原因(图2(b)的(5))。如果在所有的CPU的校验点处理被完成之前一个CPU重新开始了正常的处理,那么就要通过程序执行处理利用更新该存贮器来重写运行记录存储器的内容。在这种情况下,如果发生了故障,那么在故障发生之前的校验点操作的时间点处主存贮器就不能正常复原。因此,只有在所有CPU的校验点处理被完成之后,CPU"0"、CPU"1"和CPU"2"才能重新开始正常的处理(图2(b)的(6))。
在多处理器系统中,即使是在其中的一个处理器的校验点处理已经完成,但除非是所有其它的处理器都已经完成了校验点处理,否则每一个处理器都不能重新开始正常的程序执行处理。另外,高速缓冲器的大的规模延长了每个处理器相关的校验点处理所需的时间。
本发明的目的就是要提供一种多处理器系统,用于当每个处理器完成了校验点处理时,利用每个处理器来重新开始正常的处理。
本发明的另一个目的就是要有效地减少具有容错保护的多处理器系统的等待时间。
根据本发明,前述或其它目的是通过提供一个多处理器系统实现的。该多处理器系统包括多个处理器,每个处理器具有一个高速缓冲存贮器和与该处理器共享的共享存贮器;一个用于存贮共享存贮器更新的历程的运行记录存贮器;一个用于通过每个处理器在每个校验点处将高速缓冲存贮器的内容和该处理器的上下文写入共享存贮器的装置;一个用于在故障发生处使用存贮在运行记录存贮器中的更新历程在故障发生前的校验点的时间点处恢复共享存贮器状态的装置;一个用于在所述时间点处重新开始处理的装置,其中运行记录存贮器包括一个第一和第二运行记录存贮器,用于存贮表示共享存贮器更新历程的过去信息;还包括一个运行记录存贮器选择装置,用于选择每次处理器所使用的多个运行记录存贮器中的一个;包括一个当多个处理器中的每一个所执行的校验点处理被完成时,用于控制运行记录存贮器选择装置从被处理器使用过的一个运行记录存贮器到未被处理器使用的其它运行记录存贮器中选择一个运行记录存贮器。
在该多处理器系统中,至少提供两个运行记录存贮器。通过转换多个处理器中的每一个使用这些运行记录存贮器。通过按照校验点处理被完成的多个处理器的顺序从一个使用过的运行记录存贮器转换到另一个运行记录存贮器,可以在不破坏所述运行记录存贮器内容的情况下重新开始系统的正常处理。因此,当每个处理器完成了校验点处理时,可以立即重新开始正常的处理,因此极大地减少了整个系统的等待时间。
通过下面详细描述,可以使本发明的其它目的,特性和优点变得更加明显。但是,应当理解,由于通过该详细描述使本专业技术领域以内的普通技术人员可以在不脱离本发明精神和范围的基础上对本发明作出各种改变和修改。所以,在指出本发明最佳实施例的同时,这种详细描述和特定例子作为说明而给出。
图1的方框图用于解释现有技术中带有一个运行存贮器的计算机系统的例子。
图2(a)示出了由多处理器计算机系统执行的一个校验点处理,在该系统中,多个CPU中的每一个都具有单独的运行记录存贮器。
图2(b)示出了由仅具有一个运行记录存贮器的计算机系统执行的校验点处理。
图3的方框图示出了本发明第一实施例中的最佳多处理器系统。
图4示出了图3中多处理器系统的运行记录表。
图5简要示出了图3的多处理器系统中两个运行记录存贮器和两个运行记录计数器之间的关系。
图6的简图用于解释由图3所示多处理器执行的校验点处理的整个流程。
图7的流程图示出了由图3所示多处理器系统中的每个处理器模块中的CPU所执行的校验点处理的过程。
图8的简图用于解释根据本发明第二实施例的激励(prodder)多处理器系统的高速缓冲存贮器写入策略控制的原理。
图9的简图用于解释一个校验点处理的整个流程,在该处理中,在根据本发明第二实施例的多处理器系统中包括有通过高速缓冲存贮器写入和写回到高速缓冲存贮器。
图10示出了一个处理的流程图,该处理用于在根据本发明第二实施例的多处理器系统中改变每一个都具有通过高速缓冲存贮器的各个CPU的编号写入。
图11的方框图示出了根据本发明第三实施例的一个多处理器系统。
图12示出了图11所示总线控制器的操作流程图。
图13的流程图用于解释在第三实施例的多处理器系统中由多个处理器模块中每一个CPU所执行的校验点处理过程。
图14的简图示出了在第三实施例的多处理器系统中两个运行记录计数器指针值的变化。
图3的方框图示出了根据本发明第一实施例的一个多处理器系统。如图3所示,该多处理器系统包括共享一个主存贮器7的三个处理器模块1a-1c。这些处理器模块1a-1c被连接到总线4并分别具有CPU 2a-2c和高速缓冲存储器3a-3c。这些缓冲存贮器3a-3c作为CPU 2a-2c的主高速缓冲存储器或付高速缓冲器进行工作。当一个CPU执行一个从存贮器读出数据的(请求)指令时,每个处理器模块检查数据是否被存贮在各自的高速缓冲存贮器中。若数据存在于所述高速缓冲存储器中,将其传送给CPU。反之,通过总线从主存贮器中读出该数据。在这种方式下,从另一个处理器模块的高速缓冲存府器中或从主存贮器7中接收数据,且该数据可以被存贮在执行读出请求的CPU的高速缓冲存贮器中。
总线控制器5控制处理器模块和主存贮器之间的数据传输,并可对运行记录存贮器6a和6b进行控制,以记录主存贮器的更新历程。总线控制器5具有分别与运行记录存贮器相对应的运行记录计数器52a和52b。另外,总线控制器5具有用于确定多个处理器模块中的每一个使用哪个运行记录存贮器的运行记录表51。
图4示出了该运行记录表的结构。如图4所示,该运行记录表存贮多个处理器模块各自的CPU编号和多个CPU当前正在使用的运行记录存贮器的编号(当前存贮器号)之间的关系。换言之,在运行记录表51中的每次输入对应于所述多个存贮器中的一个,并指示当前所选择的处理器把包括该处理器上下文及该处理器的高速缓冲存贮器内容在内的记录数据存贮在那个相应的运行记录存贮器之中。在该表中当前记录存贮器编号"0"表示运行记录存贮器6a被使用,当前运行记录存贮器号"1"表示运行记录存贮器6b被使用。当启动该系统时,在所有CPU中的当前运行记录存贮器号都表示为"0",且所有CPU都被设定为使用运行记录存贮器6a。
图5示出了在运行记录计数器52a、52b和运行记录存贮器6a、6b之间的关系。运行记录计数器52a保持一个用以指示更新历程信息的指针,以存贮运行记录存贮器6a的位置。每当该更新历程信息被写入到运行记录存贮器6a中一次,所述指针值从该运行记录存贮器6a的最初地址到最后地址增加+1。记录计数器52b也保持一个用以指示更新历程信息的指针,用以存贮记录存贮器6b的位置。每当该更新历程信息被写入到记录存贮器6b中一次,所述指针值从该记录存贮器6b的最初地址到最后地址增加。
在正常处理周期内,当需要将一个处理写入到主存储7中时,CPU 2a-2c中的每一个将下面的内容传输给总线控制器:
(1)CPU的ID(标识)
(2)存贮器的地址
(3)存贮器的数据根据检测到的写入请求,总线控制器根据所述CPU的ID来确定使用记录存贮器6a和6b中的那一个。在总线控制器5获得与记录存贮器6a相对应的计数器52a的值以后,总线控制器将存贮器地址更新之前的存贮器地址和数据作为在与该计数器相对应的运行记录存贮器6a的位置处的更新历程信息记录下来,且主存贮器7被更新。
此后,当多个处理器模块1a-1c中的多个CPU 2a-2c中的每一个利用来自总线控制器5或探询处理的中断信号检测到已经过去了一个预定时间或运行记录存贮器6a剩余的规模低于一个预定量时,开始一个校验总处理。在校验点处理过程中,为恢复多个CPU2a-2c中每一个的上下文所需的一个寄存器的值和在高速缓冲存贮器中不能在主存贮器7中反射的数据通过总线控制器5被写入到主存贮器7之中。另外,在这种情况下的更新历程被如上所述地记录到记录存贮器6a中。
在多个处理器模块1a-1c中的多个CPU中的在给定时间点完成处理的每一个从"0"到"1"的改变运行记录表51的当前运行记录存贮器号,以用于在运行记录存贮器6a和6b之间进行转换,并加以应用。这里,紧接着使用运行记录存贮器6b。之后,多个CPU2a-2c中的每一个立即重新开始执行正常程序。
在这种方式下,通过按照已经变成校验点处理的CPU 2a-2c的顺序从已经被使用的运行记录存贮器6a转换到另一个运行记录存贮器6b,在不破坏运行记录存贮器内容的情况下可以重新开始正常的处理。因此,当CPU 2a-2c中的每一个完成了校验点处理时,正常处理被立即重新开始,从而极大地减少了整个系统的等待时间。
下面结合图6来解释图3所示系统中校验点处理的操作。
如图6所示,假设处理器模块1a-1c中CPU 2a-2c并行执行处理(图6的(1))。另外,假定此时所使用的运行记录存贮器是运行记录存贮器6a(图6的(2))。然后,CPU 2a-2c中的每一个检测运行记录存贮器6a剩余的规模低于一个预定量时(图6的(3)),开始校验点处理(图6的(4))。
如上所述,校验点处理的启动和所需时间取决于CPU 2a-2c中每一个的检测定时、在检测时间处程序操作的类型以及高速缓冲器3a-3c的状态。但是,当CPU 2a-2c中的每一个完成了校验点处理时,通过转换到另一个运行记录存贮器6b,它立即重新开始一个正常的处理(图6的(5))。因此,针对于已经重新开始正常处理的一个CPU而言,一个更新历程被记录在运行记录存贮器6b之中(图6的(6))。
当所有的CPU 2a-2c的校验点处理都被完成时(图6的(7)),运行记录存贮器6a被复位。记录在运行记录存贮器6a中的更新历程被废弃。
下面结合图7的流程图来解释每个CPU所执行的校验点处理的过程。
在多个处理器模块1a-1c中的CPU执行所述正常处理(步骤S1)。当通过一个操作系统检测到该运行记录存贮器剩余的规模低于一个预定值时(步骤S2),利用CPU开始校验点处理(步骤S3)。在校验点处理过程中,包括该CPU各种寄存器在内的该CPU的上下文或状态以及没有被存贮到主存贮器的高速缓冲存贮器的内容被写入该主存贮器。接着CPU从"0"到"1"地改变运行记录表的相应当前运行记录存贮器号以转换运行记录存贮器(步骤S4)。
此后,CPU确定它是否为最后一个完成校验点处理的CPU(步骤S5)。这是通过参照运行记录表检查是否存在有尚未改变当前运行记录存贮器号的CPU来执行的。当针对所有的CPU的当前运行记录存贮器号都已经改变成新的号时,该CPU就是完成校验点处理的最后一个CPU。在这种情况下,该最后的CPU清除所述记录存贮器,从而使已经被使用过的该运行记录存贮器的内容无效(步骤S6)。在该清除处理过程中,与该运行记录存贮器相对应的运行记录计数器的指针值被重新存贮为"0"。然后,最后的CPU重新开始被校验点处理中断的正常处理(步骤S7)。
当在图3的多处理机系统中产生某种故障时,加到当前运行记录存贮器堆栈上的更新历程信息被连续地读出。在更新之前读出的数据被写入主存贮器中相应的地址上。因此,主存贮器被恢复到故障发生之前校验点的时间点处的状态。如果相对于另一运行记录存贮器而言,与之相对应的低计数器的指针值不为"0",则执行相同的处理。
因此,在故障发生之前的校验点的时间点处的主存贮器的内容被恢复。通过使用在主存贮器中保留的多个CPC中寄存器的内容恢复CPU的上下文。在该恢复阶段,引起故障的原因被消除。即使是在它被移走之后产生故障的情况下,也能在不引起任何系统异常的情况下执行正常处理。
下面将要描述根据本发明第二实施例的多处理器系统。
根据本发明第二实施例的多处理器系统,在使用用于动态转换每个处理器的高速缓冲存贮器的写入策略(通过高速缓冲存贮器写/写高速缓冲存贮器)的事务控制器方向不同于本发明的第一实施例的系统。
用于在同一个时间不仅向高速缓冲存贮器,而且还向主存贮器写入数据的方法被称作通过高速缓冲存储器的写入。在这种方法中,向高速缓冲存贮器和主存贮器写入的时间与到主存贮器进行访问的时间相同。因此,不可能指望以相当高的速度来实现一个正常处理。但是,在校验点处理过程中,也不必嵌平高速缓冲存贮器的内容,因此,校验点处理所需的时间被缩短。
相反,用于仅将数据写入高速缓冲存贮器的方法被称之为写回高速缓冲存贮器。当使用这种方法在计算机系统中执行一个高速缓冲存储器的嵌平操作时,该高速缓冲存贮器的内容被重新写入主存贮器。因此,与通过高速缓冲存储器写入相比较,虽然写回高速缓冲存贮器增加了校验点处理所需的时间,但是正常处理中的通信被减少,使整个计算机系统的性能得到了改善。
因此,在根据本发明第二实施例的多处理器系统中,所有处理器模块的高速缓冲存贮器基本上都可以写回高速缓冲存贮器的方式进行工作。在需要在恒定时间内完成处理的实时处理的情况下,高速缓冲存储器被转换到与部份处理器模块相关的通过高速缓冲存贮器的写入。该处理器模块执行实时处理。这种高速缓冲存贮器写入策略的转换处理是在多处理器系统中运行的程序的控制下执行的。
另外,通过使用用于监视系统运行状态的程序,根据该多处理器系统的吞吐量和响应时间,它动态地改变由通过高速缓冲存贮器写入运行的处理器模块的号。
图8用于更加详细地描述根据第二实施例的多处理器系统的事务处理系统。图8示出了多个顾客计算机501和服务器计算机601,这些计算机都是由图3所示多处理器系统加以如下所述某些改变而构成的。在服务器计算机中,来自多个顾客计算机的事务处理请求通过通信处理器300加以接收。利用一个事务控制程序200,事务处理请求被分配给各种应用程序,并由这些程序加以处理。处理结果通过事务控制程序200和通信处理器300提供给顾客计算机501。
事务控制程序200监视服务器计算机601的运行状态。事务控制程序200具有数据吞吐量和响应时间动态改变由通过高速缓冲器写入运行的处理器模块的号的功能。在下述描述中,吞吐量意味每单位时间事务处理请求的数量,响应时间是从事务处理请求被接收时刻到向其报告处理结果时刻的响应时间。
下面来解释写入策略改变操作的原理。高速缓冲存贮器3a-3c作为图8所示CPU 2a-2c的主高速缓冲存器运行。高速缓冲存贮器3a-3c的写入(写回/通过高速缓冲存贮器写入)是由位于相应CPU 2a-2c中写入策略控制寄存器R1-R3设定的值确定的。因此,事务控制程序通过改变写入到写入策略控制寄存器R1-R3的值来控制其中的每一个都具有由写入通过系统运行的多个高速缓冲存贮器的一定数量的CPU。在这种情况下,事务控制程序控制哪一个CPU作为具有通过高速缓冲存贮器写入的CPU当前正被运行。
下面,结合图9来解释通过高速缓冲存贮器写入和写回高速缓冲存贮器被混合在一起的校验点处理的流程。但是仅详细解释不同于参照图6所解释的操作。假设提供给CPU 2a-2b的高速缓冲存贮器进行工作的,并假定提供给CPU 2c的高速缓冲存贮器是利用通过高速缓冲器写入进行工作的。
和CPU 2a-2b的校验点处理(图9的(4))相比较,CPU 2c校验点处理(图9的(4)′)所占用的时间明显缩短。因此,当利用CPU 2c执行总量需要在一个预定时间内完成的实时处理时,可以避免伴随校验点处理出现的任一不良效果。这是因为具有写入通过高速缓冲存贮器的CPU不需要把高速缓冲存贮器的内容拷贝到运行记录存贮器中,而仅仅需要在校验点处理期间将(具有写入通过高速缓冲存贮器的)CPU的内容存贮到运行记录存贮器中。
因此,在样验点处理的长的操作期间实时处理的任何不良影响几乎都被消除。响应时间得到改善。下面参照图10的流程图来解释动态改变由事务控制程序所执行的CPU的号的处理过程。根据系统的运行状态,多个CPU中的每一个都具有一个写入通过高速缓冲存贮器。
事务控制程序首先将值"0"转换成表示作为具有写入通过高速缓冲存贮器的多个COU而运行的处理器的号的可变值(n)。所有的CPU 2a-2c都作为具有写回高速缓冲存贮器的CPU而工作(步骤S11)。开始接收和响应事务请求。事务控制程序计算在某个时间间隔处例如每5分钟的吞吐量TA和平均响应时间RA(步骤S12)。另外,事务控制程序使可变值加1,并从写回高速缓冲存贮器到写入通过高速缓冲存贮器地改变一个CPU的高速缓冲存贮器的写入策略(步骤S13)。事务控制程序相当于下一个5分钟时间间隔计算吞吐量TB和平均响应时间RB(步骤S14)。
接着,事务控制程序计算吞吐量TA和吞吐量TB之间的差,并确定这个差值是否小于一个恒定值α(步骤S15)。由此,事务控制程序确定在可变值(n)变化之前和之后吞吐量的变化是否非常大。如果该吞吐量的变化很小,事务控制程序从响应时间RA中减掉响应时间RB的值。事务控制程序确定可变值(n)变化之后的响应时间是是否比该值变化之前的响应时间减少得更多。事务控制程序确定所述差值是否大于恒定值B(步骤S16)。若该差值大于恒定值B,事务控制程序进一步使可变值(n)的值加1。事务控制程序使利用写入通过高速缓冲器进行操作的CPU的号加1。
反之,如果它小于恒定值B,则事务控制程序使可变值(n)的值减1。事务控制程序减少一定数量的具有写入通过缓冲存贮器的CPU而运行的CPU(步骤S17)。
在系统运行期间,S12-S17的处理被重复执行。因此,写入通过高速缓冲存贮器和写回高速缓冲存贮器以一定的数量被混合在一起。
下面解释根据本发明第三实施例的多处理器系统。在单一的实际存贮器中实施两个运行记录存贮器6a-6b方面,第三实施例的多处理器系统不同于第一实施例。另外,对单一的运行记录存贮器请求的控制需要不同于第一实施例的控制软件。
图3的运行记录存贮器6a和6b是以图11所示的单一实际存贮器60实现的,该存贮器60是一个存贮区域从地址"0"到地址"M-1"的随机存取存贮器。更新历程被存贮在该运行记录存贮器的一个地址之中。两个运行记录存贮器6a和6b(图3)是在运行记录存贮器60的存贮空间内逻辑实现的。
总线控制器5被提供有:运行记录表51,两个运行记录计数器52a和52b,存贮器控制逻辑201,多路转换器202、加法器203和减法器204。
运行记录计数器52a和52b被分别用于在位于记录存贮器60中保持地址,以记录被更新历程信息。由运行记录计数器52a保持的指针值用于与运行记录存贮器6a相对应的运行记录存贮器60的一部份(图3)。每当更新历程信息被记录在与运行记录存贮器6a相对应的运行记录存贮器60的该部份上时,加法器203使该指针值从运行记录存贮器60的地址"0"朝着地址"M-1"连续加1。由运行记录计数器52b保持的指针值用于与运行记录存贮器6b相对应的运行记录存贮器60的一部份(图3),每当更新历程信息被记录在与运行记录存贮器6b相对应的运行记录存贮器60的该部份上时,减法器204使该指针值从运行记录存贮器60的地址"M-1"朝着地址"0"连续减1。
因此,由运行记录计数器52a所表示的地址"0"到地址"M-1"对应于运行记录存贮器6a,由记录计数器52b所表示的地址"M-1"到地址"0"对应于记录存贮器6b。存贮器控制逻辑201将更新历程信息(主存贮器的地址,更新前的图象数据)提供给运行记录存贮器60以用作写入数据。存贮器控制逻辑20把发出写入请求的CPU的号(处理器ID)传送给多路转换器202。
多路转换器202从运行记录表51中获得与所接收的CPU号相对应的当前运行记录存贮器的号。另外,多路转换器202选择与当前运行记录存贮器号相应的运行记录计数器的指针的值,并将该值传送给运行记录存贮器60以作为写入地址。
参考图12,图11中的总线控制器5的操作解释如下:
在最初状态,运行记录计数器52a的指针值是"0",运行记录计数器52b的指针值是"M-1"。这意味着更新历程信息未被记录在与运行记录存贮器6a和运行记录存贮器6b相对应的运行记录存贮器60的任一部份上(图3)。
当总线控制器接收到从CPU 2a-2c中任一个向主存贮器传送的写入请求(更新事务)时(步骤S21),存贮器控制逻辑从主存贮器中读出更新之前的图象数据,并将该更新之前的图象数据和包括主存贮器存贮地址在内的更新历程信息传送给运行记录存贮器(步骤S22)。此后,多路转换器从运行记录表中读出与发出写入请求的CPU的号相对应的当前运行记录存贮器的号(步骤S23)。接着,多路转换器在运行记录计数器52a和52b中选择与读出当前运行记录存贮器号相对应的运行记录计数器的指针值(步骤S24)。因此,更新历程信息被记录在由所选择的运行记录计数器的指针值所指出的运行记录存储器的地址中,然后,所选择的运行记录计数器的指针值被更新(步骤S25)。
例如,如果与该CPU号相对应的当前运行记录存储器号指示与运行记录存贮器6a相对应的运行记录存贮器60的那部份(图3),则选择运行记录计数器52a的指针值。更新历程信息被记录在由该指针值所指示的地址内。另外,加法器使从运行记录计数器52a中读出的指针值加1,并被重新存贮到运行记录计数器52a中。
类似地,如果与该CPU号对应的当前运行记录存贮器号指示与运行记录存贮器6b相对应的运行记录存贮器60的那部份(图3),则选择运行记录计数器52b的指针值,且更新历程信息被记录在由该指针值所指示的地址内。另外,减法器204使从运行记录计数器52b中读出的指针值减1,并重新存贮到运行记录计数器52b中。
下面参考图13的流程图来解释在第三实施例中由多个处理器模块中的CPU执行的校验点处理的过程。
在处理器模块1a-1c中的CPU执行正常处理的同时(步骤S31),总线控制器检测到运行记录存贮器60剩余的规模变得低于一个预定量(步骤S32)。然后,CPU 2a-2c中的一个开始校验点处理(步骤S33)。利用CPU 2a-2c中执行校验点处理的一个CPU计算运行记录存贮器60的剩余规模,以作为运行记录计数器52a中的指针值和运行记录计数器52b中的指针值之间的差。在校验点处理中,没有存贮在主存贮器中包括各寄存器在内的CPU的上下文以及高速缓冲存贮器的内容被存贮到主存贮器中。在写入通过高速缓冲存贮器的情况下,这些内容已经被存贮在主存贮器中。因此,只有CPU的上下文被存贮到主存贮器中。
接着,CPU从"0"到"1"地改变运行记录表的当前运行记录存贮器的号,以转换所要使用的运行记录存贮器。然后,CPU确定它是否是最后一个完成校验点处理的CPU(步骤S35)。例如,CPU通过参考运行记录表来确定是否还存在有尚未改变当前运行记录存贮器号的CPU。如果所有CPU当前运行记录存贮器号都已经变成新号,则该CPU就是最后一个完成校验点处理的CPU。在这种情况下,CPU清除运行记录存贮器以使用过的运行记录存贮器的内容无效(步骤S36)。在清除处理过程中,如果运行记录存贮器是与运行记录存贮器6a相对应的运行记录存贮器60的一部份,运行记录计数器52a的指针值被重新存贮为"0"(图3)。如果该运行记录存贮器是与运行记录存贮器6b相对应的运行记录存贮器60的一部份(图3),则运行记录计数器6b的指针值被重新存贮为"M-1"。然后,CPU重新开始由校验点处理所中断的正常处理(步骤S37)。
当在多处理器系统中发生某种故障时,CPU连续读出以堆栈方式记录在运行记录存贮器60最后一部份(即在图3中所示的与运行记录存贮器6a、6b相对应的运行记录存贮器60的部份)内的更新历程信息。CPU将更新以前的数据存贮在主存贮器中的相应地址内。因此,主存贮器在故障发生前的最后校验点的时间处被恢复。如果该运行记录计数器的指针值不是一个考虑到另一个运行记录存贮器的最初值,执行同样的处理。
图14示出了运行记录计数器52a和52b的指针值的变化特性。在第三实施例系统中的处理器模块重复执行正常操作和校验点处理。
图14中的TD指定了一个最初的状态,在该状态下,运行记录计数器52a的指针值为"0",而运行记录计数器52b的指针值为"M-1"。此时,更新信息不被记录到运行记录存贮器60中。另外,所有CPU当前运行记录存贮器的号表示与运行记录存贮器6a相对应的运行记录存贮器60的一部份。从这个状态T0开始执行正常的处理。
在T1点,与运行记录存贮器6a相对应的运行记录存贮器60的那部份的剩余规模,即保持在运行记录计数器52b中的指针值和保持在运行记录计数器52a中的指针值之间的差值低于一个预定量。当CPU检测到这种情况时,它开始连续地执行校验点处理。
在T2点,首先完成校验点处理的CPU从与运行记录存贮器6a相对应的运行记录存贮器60的那一部分转换到与运行记录存贮器6b相对应的运行记录存贮器60的那一部份,并立即返回到正常处理。此后,与运行记录存贮器6b相对应的运行记录存贮器60的那一部份被用于在该CPU的正常处理过程中记录更新历程信息。
在T3点,最后一个完成校验点处理的CPU从与运行记录存贮器6a相对应的运行记录存贮器60的那部份转换到与运行记录存贮器6b相对应的运行记录存贮器60的那一部份,并执行与运行记录存贮器6a相对应的运行记录存贮器60的那一部分的初始化,然后返回到正常处理。这里,与运行记录存贮器6a相对应的运行记录存贮器60的那一部份的初始化,即:使与运行记录存贮器6a相对应的运行记录存贮器60的那一部份中的更新历程信息失效是通过把运行记录计数器52a的指针值重新存贮为"0"来执行的。
在T4点,与运行记录存贮器6b相对应的运行记录存贮器60的那一部份的剩余规模、即保持在运行记录计数器52b中的指针值和保持在运行记录计数器52a中的指针值之间的差值低于一个预定量。CPU对此作出检测并相继开始校验点处理。
在T5点,首先完成校验点处理的CPU从与运行记录存贮器6b相对应的运行记录存贮器60的那一部份转换到与运行记录存贮器6a相对应的运行记录存贮器60的那一部份,并立即返回到正常处理。与运行记录存贮器6a相对应的运行记录存贮器60的那一部份在正常处理过程中被用于记录更新历程信息。
在T6点,最后一个完成校验点处理的CPU从与运行记录存贮器6b相对应的运行记录存贮器60的那一部份转换到与运行记录存贮器6a相对应的运行记录存储器60的那一部份,并执行与运行记录存贮器6b相对应的运行记录存贮器60的那一部份的初始化,然后返回到正常处理。这里,与运行记录存贮器6b相对应的运行记录存贮器60的那一部份的初始化,即使与运行记录存贮器6b相对应的运行记录存贮器60的那一部份中的更新历程信息失效是通过将记录计数器52b的指针值重新存贮为"M-1"来执行的。
在T0到T2中,由于所有的CPU都在与运行记录存储器6a相对应的运行记录存贮器60的那一部份中记录更新历程且运行记录计数器52b的指针值保持为恒定值"M-1",所以,运行记录计数器52a的指针值是增加的。
在T2到T3中,由于只有多个CPU中的一个在与运行记录存贮器6a相对应的运行记录存贮器60的那一部分中更新历程,而其余的CPU在与运行记录存贮器6b相对应的运行记录存贮器60的那一部分中记录更新历程,所以,运行记录数器52a的指针值是增加的,而运行记录计数器52b的指针值是减少的。
在T3点,通过对与运行记录存贮器6a相对应的运行记录存贮器60的那一部份进行初始化,运行记录计数器52a的指针值变为"0” 。
在T3到T5,由于所有的CPU都在与运行记录存贮器6b相对应的运行记录存储60的那一部份中记录更新历程,所以,运行记录计数器52b的指针值减少,且运行记录计数器52a的指针值恒定保持为"0"。
在T5到T6,由于只有多个CPU当中的一个在与运行记录存贮器6a相对应的运行记录存贮器60的那一部份中记录更新历程,而其余的CPU在与运行记录存贮器6b相对应的运行记录存贮器60的那一部份中记录更新历程,所以运行记录计数器52a的指针值增加,而运行记录计数器52b的指针值减少。
在T6点,通过对与运行记录存贮器6b相对应的运行记录存贮器60的那一部份进行初始化使运行记录计数器52b的指针值变成"M-1"。
如上所述,图3所示的运行记录存贮器6a和6b实际上是使用图11所示的单一记录存贮器60通过从在该运行记录存贮器60的最初地址向其最后地址使两个运行记录计数器的指针值连续加1和通过从其最后地址向其最初地址连续减1而实现的。因此,与提供两个运行记录存贮的情况相比较,其硬件数量近似为一半。
Claims (22)
1.一种在多处理器系统中使用的校验点控制装置,所述多处理器系统能够在执行应用程序期间从故障中复原回来,其中,所述的多处理器系统具有至少两个处理的模块(1a-1c),其中的每一个都具有:一个处理器单元(2a-2c),一个高速缓冲器(3a-3c),一个用于利用处理器模块存储与执行应用程序相关数据的共享存储器(7)、一个用于把记录数据作为更新共享存储器之前与处理器模块相关的处理器单元和高速缓冲存储器的数据状态加以记录的运行记录存储器装置和一个用于在共享存储器内以一定间隔存储在与处理器模块相关的处理器单元和高速缓冲存储器中数据状态的装置,其中,多个处理器模块中的每一个单独执行校验点处理,所述的校验点控制装置包括:
运行记录存储器部分选择器,配置成用于从运行记录存储器装置中的第一部份和第二部份中选择其一;
运行记录数据存储器,配置成用于在记录存储器的选定的部分内存储运行记录数据;和
运行记录存储器部分转换器,配置成用于在第一处理器模块执行完校验点处理之后转换到运行记录存储器装置另一部份上以存储与第一处理器模块相关的运行记录数据。
2.如权利要求1的校验点控制装置,其特征在于还包括第二运行记录存储器部分转换器,配置成用于在每个处理器模块执行校验点处理之后,转换到运行记录存储器装置另外一个上以存储运行记录数据。
3.如权利要求2的校验点控制装置,其特征在于还包括:
校验点处理确定单元,配置成用于确定执行校验点处理的所有其它处理器模块是否已经执行完了校验点处理;和
当确定所有执行校验点处理的所有其它处理器模块已经执行完校验点处理时,用来对该运行记录存储器装置的所选择的第一和第二部分中的一部分清零的运行记录存储器清零单元(S6)。
4.如权利要求1的校验点控制装置,其特征在于还包括一用于从“写回”高速缓冲存储器到“写入通过”高速缓冲存储器地改变多个处理器模块中至少一个的高速缓冲存储器的写入策略,多个处理器模块中的每一个具有用于执行实时处理的“写入通过”高速缓冲存储器,并在校验点处理过程中在共享存储器内仅存储处理器数据的状态的装置。
5.如权利要求4的校验点控制装置,其特征在于还包括:
处理器监视器,配置成用于监视多处理器系统的运行状态;和
处理器改变器,配置成用于根据由监视装置所监视的该系统的吞吐量和响应时间改变具有作为写入通过高速缓冲存储器而运行的高速缓冲存储器的多个处理器模块的号。
6.如权利要求1的校验点控制装置,其特征在于,运行记录存储器装置的第一部份和第二部份是一个实际上的存储器(60),所述的校验点控制装置包括:
第一计数器(52a),用于保持表示一个地址的指针值,所述地址用于在运行记录存储器装置的第一部份中记录运行记录数据,在该记数器中,第一指针值从实际存储器的最初地址向最后地址顺序增加;和
第二计数器(52b),用于保持表示一个地址的第二指针值,该地址用于在运行记录存储器装置的第二部份中记录运行记录数据,在该计数器中,第二指针值从实际存储器的最后地址朝其最初地址顺序减少。
7.如权利要求6的校验点控制装置,其特征在于还包括:
剩余规模计算器,配置成用于计算第一指针值和第二指针值之间的差值,以检测运行记录存储器装置的剩余规模是否低于一个预定量;
运行记录存储器改变器,配置成用于在校验点处理之后改变运行记录表中的运行记录存储器号,以在所使用的运行记录存储器装置的两部份之间进行转换;
校验点处理确定单元,配置成用于在多个处理器中的每一个执行校验点处理之后,确定是否所有的处理器模块都已完成了校验点处理;和
指针值设定单元,配置成用于在多处理器模块使用运行记录存储器装置的第一部份的情况下,将第一运行记录计数器的第一指针值设定给最初地址,或在处理器使用运行记录存储器装置第二部分的情况下,将第二运行记录计数器的第二指针值设定给最后地址。
8.如权利要求1的校验控制装置,其特征在于,选择装置包括:
运行记录表,用于根据来自多个处理器模块中每一个的有关在运行记录存储器装置的第一部份和第二部份之间进行转换的请求,存储表示在多个处理器模块和由这些个处理器模块所使用的运行记录存储器装置中的第一和第二部份之间的对应关系;
运行记录存储器部分确定单元,配置成用于参照运行记录表确定由一个处理器模块所使用的运行记录存储器装置中第一和第二部份中的一个;和
指针值选择器,配置成用于选择和运行记录存储器装置相对应的第一和第二计数器的指针值。
9.一种用于在运行记录存储器(6a和6b)中记录在更新由多处理器系统的多个处理器模块(1a+1c)共享的共享存储器(7)之前的运行记录数据的方法,所述运行记录存储器还包括至少第一和第二运行记录存储器,以用于记录共享存储器的运行记录数据后,所述方法包括如下步骤:
利用多个处理器模块中的每一个,在每次校验点处理中,在共享存储器内存储(S3)每个处理器的上下文和每个高速缓冲存储器的内容;
当由一个处理器模块执行的校验点处理完成时,从处理器模块所使用的运行记录存储器转换到处理器没有使用的其它运行记录存储器。
10.如权利要求9的方法,还包括如下步骤:
确定(S5)完成校验点处理的一个处理器模块是否是最后一个完成校验点处理的处理器模块;
如果确定最后一个处理器模块已经完成了校验点处理,则清除由处理器模块所使用的运行记录存储器的内容。
11.如权利要求10的方法,其特征在于,多处理器系统包括一个具有运行记录存储器号的运行记录表(51),用于确定多个处理器模块中的每一个使用哪一个运行记录存储器,且其中确定步骤包括如下:
参照运行记录表检测是否还存在有还没有改变当前运行记录存储器号的处理器模块。
12.如权利要求9的方法,其特征在于还包括如下步骤:
从“写回”高速缓冲存储器到“写入通过”高速缓冲存储器地改变(图10)多个存储器模块中至少一个的高速缓冲存储器的写入策略,多个处理器模块中的每一个具有“写入通过”高速缓冲存储器,以用于执行实时处理,并在校验点处理中在共享存储器内仅存储它的上下文。
13.如权利要求12的方法,其特征在于还包括下述步骤:
监视(S12和S14)多处理器系统的运行状态;和
根据由监视步骤所监视的系统吞吐量和响应时间,改变(S15-S17)具有作为写入通过高速缓冲存储器而运行的高速缓冲存储器的处理器模块的号。
14.如权利要求9的方法,其特征在于,第一和第二运行记录存储器被包括在一个实际的存储器(60)之中,第一计数器(52a)用于保持表示一个地址的指针值,所述地址用于在第一记录存储器中记录运行记录数据,在该计数器中,指针值从该实际存储器的最初地址向最后地址顺序增加,第二计数器(52b)用于保持表示一个地址的指针值,该地址用于在第二运行记录存储器中记录运行记录数据,在该计数器中,指针值从实际存储器的最后地址向最初地址顺序减少,所述的方法还包括如下步骤:
计算(S32)在第一运行记录计数器中的指针值和在第二运行记录计数器中的指针值之间的差值,以检测运行记录存储器的剩余规模是否低于一个预定量;
改变(S34)运行记录表的当前运行记录存储器号,以在校验处理之后使用;和
确定(S35)完成校验点处理的处理器模块是否是最后一个处理器模块;和
在处理器模块使用第一记录存储器的情况下,将第一运行记录计数器的指针值设定(S36)给最初地址,而当在处理器模块使用第二运行记录存储器的情况下,将第二运行记录计数器的指针值设定给最后地址。
15.一种用于容错多处理器系统中的校验总控制方法,所述系统能够在执行应用程序中从故障状态下复原,其中,该容错多处理器系统具有多个运行记录存储器(6a,6b)、至少两个处理器模块(1a,1b),其中的每一个都具有一个处理器单元(2a,2b)和一个高速缓冲存储器(3a,3b)、一个共享存储器(7)、和一个用于在共享存储器中以一定间隔存储数据的装置(5),并且其中多个处理器模块中的每一个单独执行校验点处理,所述的校验点控制方法包括:
选择(5)多个运行记录存储器中第一运行记录存储器和第二运行记录存储器中的一个;
在第一和第二运行记录存储器中所选择的一个内存储(S3)运行记录数据,该运行记录数据包括用于处理器模块执行校验点处理的处理器单元(2a,2b)的上下文和高速缓冲存储器(3a,3b)的内容;
确定(S5)所有的处理器模块是否都已经执行完校验点处理;和
当它确定所有的处理器模块部已执行完校验点处理时,清除(S6)在第一和第二运行记录存储器中所选定的一个中的内容。
16.如权利要求15的方法,其特征在于还包括下述步骤:
确定处理器模块(1a,1b)的头一个是否已经完成了校验处理,并当它已经确定第一个模块完成了校验点处理时,选择(S4)不同于在先已经选择来存储与第一处理器模块相关的运行记录数据的多个运行记录存储器(6a,6b)中的一个。
17.如权利要求16的方法,其特征在于,容错多处理器系统包括一个运行记录表(51),用于保存一个表,以识别多个运行记录存储器(6a,6b)中的哪一个,被用于存储与多个处理器模块中的每一个相关的运行记录数据,且选择步骤包括如下的子步骤:
更新(S4)运行记录表(51),以表示多个运行记录存储器中不同的一个已被选择去存储与第一处理器模块相关的记录数据。
18.如权利要求17的方法,其特征在于,单一的实际存储器(60)包括多个部份,所述多个部份中的每一个对应于多个运行记录存储器中的一个,且多处理器系统包括一个用于保持第一指针的值的第一计数器(52a)和用于保持第二指针值的第二计数器(52b),所述第一指针值用于表示与在第一运行记录存储器中记录运行记录数据相关的一个地址,该第一指针值从所述实际存储器的最初地址朝着最后地址增加,所述第二指针值用于表示在第二记录存储器中记录与运行记录数据相关的一个地址,该第二指针值从所述实际存储器的最后地址朝着最初地址减少,所述方法还包括如下步骤:
计算(S32)第一指针值和第二指针值之间的差值,以检测该运行记录存储器剩余的规模是否低于一个预定量;
改变(S34)运行记录表的当前运行记录存储器的号,转换运行记录存储器,以在校验点处理之后使用;
确定(S35)完成校验点处理的一个处理器模块是否是最后一个处理器模块;和
如果处理器模块使用第一运行记录存储器,把第一指针值设定(S36)给最初地址,如果处理器模块使用第二运行记录存储器,把第二指针值设定(S36)给最后地址。
19.一种在容错多处理器系统中使用的校验点控制方法,该系统能够在执行应用程序期间从故障中复原,其中,所述容错多处理器系统具有多个运行记录存储器(6a,6b)、至少两个处理器模块(1a,1b),其中的每一个都具有一个处理器单元(2a,2b)和一个高速缓冲存储器(3a,3b)、一个共享存储器(7)、和一个用于在共享存储器中以一定间隔存储数据的装置,且其中,多个处理器模块(1a,1b)中的每一个单独地重复执行校验点处理,所述校验点控制方法包括:
在容错多处理系统的多个运行记录存储器(6a,6b)的第一运行记录存储器(6a)和第二运行记录存储器(6b)中选择一个;
在所述选择的第一和第二运行记录存储器(6a,6b)中的一个内存储(S3)运行记录数据,所述运行记录数据包括处理器模块(1a,1b)执行校验点处理所使用的高速缓冲存储器(3a,3b)的内容及处理器单元(2a,2b)的上下文;
确定是否所有的处理器模块(1a,1b)都已经执行完校验点处理;和
当它确定所有的处理器模块(1a,1b)都已经完成了校验点处理的重复时,清除第一和第二运行记录存储器(6a,6b)中所选择一个的内容。
20.一种在容错多处理器系统中使用的校验点控制方法,该系统能够在执行应用程序期间从故障中复原,其中,所述的容错多处理器系统具有多个运行记录存储器(6a,6b),至少两个处理器模块(1a,1b),其中的每一个具有一个处理器单元(2a,2b)和一个高速缓冲存储器(3a,3b),一个共享存储器(7)和一个用于以一定间隔在共享存储器中存储数据的装置(5),其中的每一个处理器模块单独执行校验点处理,所述的校验点控制方法包括:
(a):选择(S3)容错多处理器系统的多个运行记录存储器的第一运行记录存储器;
(b):确定(S4)称为第一处理器的多个处理器模块中的一个是否已经执行完了校验点处理;
(c):在所选择的第一运行记录存储器中存储(S3)与第一处理器相关的运行记录数据,所述运行记录数据包括第一处理器在执行校验点之前的某个时刻处理相关的处理单元的上下文和高速缓冲存储器的内容;
(d)转换(S4)到在(a)步骤期间没有被选择的第二运行记录存储器;
(e):确定(S3)被称作第二处理器的多个处理器模块的另一个是否执行完校验点处理;和
(f):把与第二处理器相关的运行记录数据存储(S3)在第一运行记录存储器中,所述的运行记录数据包括第二处理器在执行校验处理之前某个时刻的处理单元的上下文和高速缓冲存储器的内容。
21.一种在容错多处理器系统中使用的校验点控制系统,该系统能够在执行应用程序期间从故障状态复原,其中,所述的容错多处理器系统具有多个运行记录存储器(6a,6b),至少两个处理器模块(1a,1b),其中的每一个都具有一个处理器单元(2a,2b)和一个高速缓冲存储器(3a,3b),一个共享存储器(7)和一个用于在共享存储器中以一定的间隔存储数据的装置(5),且其中多个处理器模块的每一个单独执行校验点处理,所述的校验点控制系统包括:
运行记录存储器选择器,配置成用于在容错多处理器系统中的多个运行记录存储器的第一运行记录存储器和第二运行记录存储器中选择一个;
运行记录数据存储器,配置成用于在从第一和第二运行记录存储器中所选择的一个内存储运行记录数据,所述运行记录数据包括与处理器模块执行校验点处理相关的处理单元的上下文和高速缓冲存储器的内容;
校验点处理确定单元(S5,5),配置成用于确定是否所有的处理器模块都已经执行完了校验点处理;和
运行记录存储区清零单元(S6,5),配置成用于当确定所有的处理器模块都已经执行完了校验点处理时,清除在第一和第二运行记录存储器中所选择一个的内容。
22.一种能够在执行应用程序期间从故障状态下恢复的容错多处理器系统,包括:
多个运行记录存储器(6a,6b);
至少两个处理器模块(1a,1b),其中的每一个都具有一个处理器单元(2a,2b)和一个高速缓冲存储器(3a,3b),其中,多个处理器模块中的每一个单独执行校验点处理;
一个共享存储器(7);
数据存储器,配置成用于在共享存储器中以一定间隔存储数据;
运行记录存储器选择器,配置成用于从多个运行记录存储器的第一运行记录存储器和第二运行记录存储器中选择一个;
运行记录数据存储器,配置成用于在从第一和第二运行记录存储器中所选择的一个内存储运行记录数据,所述运行记录数据包括处理器模块执行校验点处理所使用的处理单元的上下文和高速缓冲存储器的内容;
校验点处理确定单元,配置成用于确定是否所有的处理器模块都已执行完了校验点处理;和
运行记录存储器清零单元,配置成用于当确定所有的处理器模块都已执行完成了校验点处理时,清除在从第一和第二运行记录存储器中所选择一个的内容。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP151735/95 | 1995-06-19 | ||
JP15173595 | 1995-06-19 | ||
JP07341839A JP3085899B2 (ja) | 1995-06-19 | 1995-12-27 | マルチプロセッサシステム |
JP341839/95 | 1995-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1147650A CN1147650A (zh) | 1997-04-16 |
CN1096034C true CN1096034C (zh) | 2002-12-11 |
Family
ID=26480880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN96111046A Expired - Lifetime CN1096034C (zh) | 1995-06-19 | 1996-06-19 | 多处理系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5828821A (zh) |
EP (1) | EP0750260A3 (zh) |
JP (1) | JP3085899B2 (zh) |
KR (1) | KR100247875B1 (zh) |
CN (1) | CN1096034C (zh) |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2916421B2 (ja) * | 1996-09-09 | 1999-07-05 | 株式会社東芝 | キャッシュフラッシュ装置およびデータ処理方法 |
JP3648892B2 (ja) * | 1996-12-16 | 2005-05-18 | 富士通株式会社 | 計算機システム |
US6185702B1 (en) * | 1997-01-24 | 2001-02-06 | Kabushiki Kaisha Toshiba | Method and system for process state management using checkpoints |
JPH11134235A (ja) * | 1997-10-31 | 1999-05-21 | Hitachi Ltd | 外部記憶装置故障時の回復支援方法 |
US6353836B1 (en) | 1998-02-13 | 2002-03-05 | Oracle Corporation | Method and apparatus for transferring data from the cache of one node to the cache of another node |
US7930278B2 (en) | 1998-02-13 | 2011-04-19 | Oracle International Corporation | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
US7200623B2 (en) | 1998-11-24 | 2007-04-03 | Oracle International Corp. | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
US6223304B1 (en) * | 1998-06-18 | 2001-04-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Synchronization of processors in a fault tolerant multi-processor system |
US6480510B1 (en) | 1998-07-28 | 2002-11-12 | Serconet Ltd. | Local area network of serial intelligent cells |
US6269432B1 (en) * | 1998-10-23 | 2001-07-31 | Ericsson, Inc. | Distributed transactional processing system having redundant data |
US6338147B1 (en) * | 1998-10-29 | 2002-01-08 | International Business Machines Corporation | Program products for performing checkpoint/restart of a parallel program |
US6401216B1 (en) | 1998-10-29 | 2002-06-04 | International Business Machines Corporation | System of performing checkpoint/restart of a parallel program |
US6393583B1 (en) | 1998-10-29 | 2002-05-21 | International Business Machines Corporation | Method of performing checkpoint/restart of a parallel program |
US6633891B1 (en) | 1998-11-24 | 2003-10-14 | Oracle International Corporation | Managing replacement of data in a cache on a node based on caches of other nodes |
US7065540B2 (en) | 1998-11-24 | 2006-06-20 | Oracle International Corporation | Managing checkpoint queues in a multiple node system |
US6956826B1 (en) | 1999-07-07 | 2005-10-18 | Serconet Ltd. | Local area network for distributing data communication, sensing and control signals |
US6690677B1 (en) | 1999-07-20 | 2004-02-10 | Serconet Ltd. | Network for telephony and data communication |
US7051173B2 (en) * | 2000-02-04 | 2006-05-23 | Fujitsu Limited | Backup system and method thereof in disk shared file system |
US6549616B1 (en) | 2000-03-20 | 2003-04-15 | Serconet Ltd. | Telephone outlet for implementing a local area network over telephone lines and a local area network using such outlets |
IL135744A (en) | 2000-04-18 | 2008-08-07 | Mosaid Technologies Inc | Telephone communication system through a single line |
US6842459B1 (en) | 2000-04-19 | 2005-01-11 | Serconet Ltd. | Network combining wired and non-wired segments |
US7398282B2 (en) * | 2000-06-16 | 2008-07-08 | Fujitsu Limited | System for recording process information of a plurality of systems |
US7117354B1 (en) * | 2000-07-20 | 2006-10-03 | International Business Machines Corporation | Method and apparatus for allowing restarted programs to use old process identification |
US6810489B1 (en) * | 2000-09-06 | 2004-10-26 | Hewlett-Packard Development Company, L.P. | Checkpoint computer system utilizing a FIFO buffer to re-synchronize and recover the system on the detection of an error |
US6850938B1 (en) | 2001-02-08 | 2005-02-01 | Cisco Technology, Inc. | Method and apparatus providing optimistic locking of shared computer resources |
IL144158A (en) | 2001-07-05 | 2011-06-30 | Mosaid Technologies Inc | Socket for connecting an analog telephone to a digital communications network that carries digital voice signals |
US7472230B2 (en) * | 2001-09-14 | 2008-12-30 | Hewlett-Packard Development Company, L.P. | Preemptive write back controller |
JP4323745B2 (ja) | 2002-01-15 | 2009-09-02 | 三洋電機株式会社 | 記憶装置 |
JP3971941B2 (ja) * | 2002-03-05 | 2007-09-05 | 三洋電機株式会社 | データ記憶装置 |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
JP4387087B2 (ja) | 2002-07-25 | 2009-12-16 | 三洋電機株式会社 | データ記憶装置 |
US7117391B1 (en) * | 2002-10-31 | 2006-10-03 | Oracle International Corporation | Checkpoint model building for data mining |
US7272664B2 (en) * | 2002-12-05 | 2007-09-18 | International Business Machines Corporation | Cross partition sharing of state information |
IL154234A (en) | 2003-01-30 | 2010-12-30 | Mosaid Technologies Inc | Method and system for providing dc power on local telephone lines |
IL154921A (en) | 2003-03-13 | 2011-02-28 | Mosaid Technologies Inc | A telephone system that includes many separate sources and accessories for it |
US7039773B2 (en) * | 2003-04-29 | 2006-05-02 | Oracle International Corporation | Method and mechanism for efficient implementation of ordered records |
IL157787A (en) | 2003-09-07 | 2010-12-30 | Mosaid Technologies Inc | Modular outlet for data communications network |
JP2008502953A (ja) * | 2003-11-17 | 2008-01-31 | ヴァージニア テック インテレクチュアル プロパティーズ,インコーポレイテッド | 分散システムにおけるトランスペアレントなチェックポインティング及びプロセス移行 |
IL159838A0 (en) | 2004-01-13 | 2004-06-20 | Yehuda Binder | Information device |
IL160417A (en) | 2004-02-16 | 2011-04-28 | Mosaid Technologies Inc | Unit added to the outlet |
KR20050120341A (ko) * | 2004-06-18 | 2005-12-22 | 엘지전자 주식회사 | 다중 씨피유에서의 메모리 카드 공유 장치 |
US7788300B2 (en) * | 2004-09-15 | 2010-08-31 | Sap Ag | Garbage collection for shared data entities |
CN100399746C (zh) * | 2004-09-23 | 2008-07-02 | 华为技术有限公司 | 日志记录子系统及其方法 |
JP2006259869A (ja) * | 2005-03-15 | 2006-09-28 | Fujitsu Ltd | マルチプロセッサシステム |
US8621275B1 (en) | 2010-08-06 | 2013-12-31 | Open Invention Network, Llc | System and method for event-driven live migration of multi-process applications |
US9043640B1 (en) * | 2005-08-26 | 2015-05-26 | Open Invention Network, LLP | System and method for event-driven live migration of multi-process applications |
US8584145B1 (en) | 2010-08-06 | 2013-11-12 | Open Invention Network, Llc | System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications |
US8316220B2 (en) * | 2005-09-27 | 2012-11-20 | Sony Computer Entertainment Inc. | Operating processors over a network |
TWI348652B (en) * | 2005-10-17 | 2011-09-11 | Via Tech Inc | Driver assisted asynchronous command processing |
US20070168740A1 (en) * | 2006-01-10 | 2007-07-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for dumping a process memory space |
US7761739B2 (en) * | 2006-02-23 | 2010-07-20 | Librato, Inc. | Method for checkpointing a system already engaged in a concurrent checkpoint |
US7624129B2 (en) * | 2006-06-30 | 2009-11-24 | Microsoft Corporation | Dual logging of changes to a user preference in a computer device |
US20080075057A1 (en) * | 2006-09-25 | 2008-03-27 | Mediatek Inc. | Frequency correction burst detection |
KR101132389B1 (ko) | 2007-04-09 | 2012-04-03 | 엘지엔시스(주) | 분산자료구조 기반 체크포인트메모리 구조화 장치 및 방법 |
US8341352B2 (en) * | 2007-04-17 | 2012-12-25 | International Business Machines Corporation | Checkpointed tag prefetcher |
US8566539B2 (en) | 2009-01-14 | 2013-10-22 | International Business Machines Corporation | Managing thermal condition of a memory |
JP4886826B2 (ja) * | 2009-08-24 | 2012-02-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | フォールト・トレラント・コンピュータ・システム、方法及びプログラム |
US8510334B2 (en) | 2009-11-05 | 2013-08-13 | Oracle International Corporation | Lock manager on disk |
US8694639B1 (en) * | 2010-09-21 | 2014-04-08 | Amazon Technologies, Inc. | Determining maximum amount of resource allowed to be allocated to client in distributed system |
CN103309840A (zh) * | 2013-07-08 | 2013-09-18 | 天津汉柏汉安信息技术有限公司 | 一种新建连接的方法及其装置 |
US9767178B2 (en) | 2013-10-30 | 2017-09-19 | Oracle International Corporation | Multi-instance redo apply |
US10599630B2 (en) | 2015-05-29 | 2020-03-24 | Oracle International Corporation | Elimination of log file synchronization delay at transaction commit time |
WO2018103045A1 (zh) * | 2016-12-08 | 2018-06-14 | 华为技术有限公司 | 测试点的创建方法,装置和系统 |
RU2665911C2 (ru) * | 2017-02-08 | 2018-09-04 | Акционерное общество "Лаборатория Касперского" | Система и способ анализа файла на вредоносность в виртуальной машине |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4814971A (en) * | 1985-09-11 | 1989-03-21 | Texas Instruments Incorporated | Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state |
US4878167A (en) * | 1986-06-30 | 1989-10-31 | International Business Machines Corporation | Method for managing reuse of hard log space by mapping log data during state changes and discarding the log data |
US5043866A (en) * | 1988-04-08 | 1991-08-27 | International Business Machines Corporation | Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery |
EP0343567A3 (en) * | 1988-05-25 | 1991-01-09 | Hitachi, Ltd. | Multi-processing system and cache apparatus for use in the same |
JPH0752399B2 (ja) * | 1988-06-30 | 1995-06-05 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 記憶システム |
US5481694A (en) * | 1991-09-26 | 1996-01-02 | Hewlett-Packard Company | High performance multiple-unit electronic data storage system with checkpoint logs for rapid failure recovery |
JP2758311B2 (ja) * | 1992-05-28 | 1998-05-28 | 富士通株式会社 | 複合システムにおけるログファイル制御方式 |
GB9301286D0 (en) * | 1993-01-22 | 1993-03-17 | Int Computers Ltd | Data processing system |
US5544359A (en) * | 1993-03-30 | 1996-08-06 | Fujitsu Limited | Apparatus and method for classifying and acquiring log data by updating and storing log data |
JP3594248B2 (ja) * | 1993-03-30 | 2004-11-24 | 富士通株式会社 | ログデータの分類取得システム |
-
1995
- 1995-12-27 JP JP07341839A patent/JP3085899B2/ja not_active Expired - Fee Related
-
1996
- 1996-06-13 EP EP96304434A patent/EP0750260A3/en not_active Withdrawn
- 1996-06-17 KR KR1019960021798A patent/KR100247875B1/ko not_active IP Right Cessation
- 1996-06-18 US US08/665,542 patent/US5828821A/en not_active Expired - Fee Related
- 1996-06-19 CN CN96111046A patent/CN1096034C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5828821A (en) | 1998-10-27 |
JP3085899B2 (ja) | 2000-09-11 |
JPH0969082A (ja) | 1997-03-11 |
CN1147650A (zh) | 1997-04-16 |
KR970002637A (ko) | 1997-01-28 |
EP0750260A3 (en) | 1998-12-23 |
EP0750260A2 (en) | 1996-12-27 |
KR100247875B1 (ko) | 2000-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1096034C (zh) | 多处理系统 | |
US20200257573A1 (en) | Coordinated garbage collection in distributed systems | |
US10248322B2 (en) | Memory system | |
US6505227B1 (en) | Method and apparatus for distributing work granules among processes based on the location of data accessed in the work granules | |
CN101313285B (zh) | 高速缓存包含性的按组放宽 | |
Wang et al. | Hybrid checkpointing for MPI jobs in HPC environments | |
CN1278235C (zh) | 用于向一处理器让与资源的系统 | |
US6167490A (en) | Using global memory information to manage memory in a computer network | |
US8732402B2 (en) | Managing track discard requests to include in discard track messages | |
US8606994B2 (en) | Method for adapting performance sensitive operations to various levels of machine loads | |
Deshpande et al. | Agile live migration of virtual machines | |
US7543124B1 (en) | Method for preventing page replacement of unreferenced read-ahead file pages | |
WO2013080434A1 (en) | Dynamic process/object scoped memory affinity adjuster | |
US11579992B2 (en) | Methods and systems for rapid failure recovery for a distributed storage system | |
US9858191B2 (en) | Electronic system with data management mechanism and method of operation thereof | |
CN103577158A (zh) | 数据处理方法与装置 | |
RU2681409C1 (ru) | Система и способ синхронизации памяти в многоядерной системе | |
US8285931B2 (en) | Methods for reducing cache memory pollution during parity calculations of RAID data | |
WO2015102875A1 (en) | Checkpointing systems and methods of using data forwarding | |
Wu et al. | Proactive data migration for improved storage availability in large-scale data centers | |
JPWO2012063334A1 (ja) | 仮想マシンのライブマイグレーションを支援するためのメモリ制御装置及びi/oスイッチ | |
US8230117B2 (en) | Techniques for write-after-write ordering in a coherency managed processor system that employs a command pipeline | |
CN1755660A (zh) | 冗余处理器中的诊断存储器转储方法 | |
Wang et al. | Hybrid full/incremental checkpoint/restart for MPI jobs in HPC environments | |
Chanchio | TPLCR: Time-Bound, Pre-copy Live Checkpointing and Parallel Restart of Virtual Machines Using Distributed Memory Servers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20021211 |
|
EXPY | Termination of patent right or utility model |