时刻响应的制作方法

文档序号:6631647阅读:129来源:国知局
专利名称:时刻响应的制作方法
技术领域
本发明涉及时刻(time of day)响应。
背景技术
将多个冗余处理器系统实现为容错系统,以便预防停机时间、系统中断以及避免数据损坏。多个冗余处理器系统提供持续有效的应用,并保持例如股票交易系统、信用卡和借记卡系统、电子资金转帐系统、旅行预定系统等的数据完整性。在这些系统中,可以在处理器系统的多个独立处理元件上执行数据处理计算。
可以松散的锁步实施方式使多个冗余处理器系统中的处理器松散地同步,这样可以在稍微不同的时刻执行处理器指令。这个松散同步的实施使得处理器能够比一般的密集锁步结构更快地执行指令,这是因为处理器不限于同步的代码执行。然而,当应用请求时刻响应以便时间注释银行业务或股票交易,例如,冗余处理器都响应请求以执行相同的指令集,且可以都返回不同的时刻响应。不同的时间响应将作为已请求时刻的应用的误差。


整个附图中使用的相同数字指示类似的特征和部件图1说明一个典型的冗余处理器系统,其中可以实现时刻响应的图2进一步说明图1所示的典型冗余处理器系统的各个部件。
图3说明一个典型的冗余处理器系统的各个部件,其中可以实现时刻响应的具体实施例。
图4是说明用于时刻响应的方法实施例的流程图。
图5是说明用于时刻响应的方法实施例的流程图。
具体实施例方式
以下描述时刻响应的具体实施例。在冗余处理器系统中实施时刻逻辑,以便响应诸如来自于应用程序的时刻请求产生逻辑时间,所述应用程序控制或执行于股票交易系统、信用卡及借记卡系统、电子资金转帐系统、旅行预订系统、电子邮件系统、蜂窝式电话应用,等等。逻辑时间是作为真实时间的近似值产生的,从而冗余处理器系统中逻辑处理器的每个处理器元件都响应于时刻请求而返回相同的逻辑时间。
尽管逻辑时间响应只是松散同步的冗余处理器系统中实际时间的一个近似值,但是其可能是一个很接近的近似值,诸如几微秒内,这不会影响请求时刻的应用程序。例如,在可通过在几微秒实际时间之内的近似逻辑时间而确定的1秒、十分之一秒甚至百分之一秒交易时间的时间内,可以记录银行交易或股票交易。
尽管可在各种冗余处理器系统中实现时刻响应的实施方式,但是可以参考以下处理环境来描述时刻响应,其中对于松散同步的处理器元件可以近似实际时间。实际时间近似为逻辑时间,这样处理器元件不会遭受每当接收到时刻请求时不得不向公共源请求实际时间所带来的性能影响。
图1说明一个冗余处理器系统100的例子,其中可以实现时刻响应的具体实施例。冗余处理器系统100包括复合处理器102,其具有处理器组104(1-3)。每个处理器组104都包括任意数目的处理器元件,它们每个都是执行或处理计算机可执行指令的微处理器。处理器组104(1)包括处理器元件106(1-N),处理器组104(2)包括处理器元件108(1-N),以及处理器组104(3)包括处理器元件110(1-N)。虽然在时刻响应的这个实施例中,复合处理器102只包括三个处理器组104(1-3),但是复合处理器可以包括两个、四个处理器组或其他任意处理器组的组合。
处理器组104(1-3)中的每个处理器元件一起实现为逻辑处理器112(1-N)。例如,第一逻辑处理器112(1)包括处理器组104(1)中的处理器元件106(1)、处理器组104(2)中的处理器元件108(1)和处理器组104(3)中的处理器元件110(1)。类似地,逻辑处理器112(2)包括处理器元件106(2)、108(2)和110(2),而逻辑处理器112(3)包括处理器元件106(3)、108(3)和110(3)。
三个处理器元件组合以实现逻辑处理器112,并协作执行逻辑处理器112的计算。用于输入/输出操作或处理器间通信的逻辑计算分别在逻辑处理器112中执行三次,每个在逻辑处理器112的三个处理器元件中执行一次。另外,逻辑处理器112中的三个处理器元件可以彼此协作和同步以便交换数据、复制输入数据和表决输入/输出操作和通信输出。
每个处理器组104(1-3)都分别具有相关的存储器部件114(1-3),存储器部件114可以作为任意一个或更多的存储器部件来实现,其例子包括随机存取存储器(RAM)、DRAM、SRAM,磁盘驱动器等。虽然存储器部件114(1-3)是作为独立部件来说明的,但是在另一个实施例中,每个处理器组104都可以包括作为集成部件的相应存储器部件114。
在这个例子中,复合处理器102是具有三重模块化冗余的三重冗余处理器系统,其中每个逻辑处理器112都包括三个冗余处理器元件。有故障的处理器元件可以被替换并重新结合入系统中,而冗余处理器系统100在不损失处理能力的情况下保持在线,以便提供数据完整性。
以松散锁步实现方式使逻辑处理器112的处理器元件松散地同步,这样可在稍微不同的时刻在每个处理器元件中执行或处理指令。这个实现方式使得逻辑处理器可以比一般的密集锁步结构更快地执行指令,这是因为处理器元件和逻辑处理器112并不限于同步的代码执行。这个实现方式还提供了逻辑处理器中处理器元件之间的非确定执行,诸如非确定的分支预测、高速缓存置换算法,等等。单个处理器元件还可以在不丧失与其他处理器元件同步的情况下执行独立误差复原。
图2进一步说明图1所示的典型冗余处理器系统100的各个部件200。示出了处理器组104(1)的处理器元件106(1-N),每个相应逻辑处理器112(1-N)中一个。每个处理器元件106(1-N)都与用于数据存储的存储器部件114(1)的相应存储器区202(1-N)相关联。与处理器组104(1)关联的存储器部件114(1)在处理器组104(1)的处理器元件106(1-N)中划分。在另一个可选的实施例中,可以将每个存储器区202(1-N)实现为独立的、分别的用于数据存储的存储器。虽然未示出,处理器组104(2)的处理器元件108(1-N)每个都与存储器部件114(2)的相应被划分的存储器区相关联。类似地,处理器组104(3)的处理器元件110(1-N)每个都与存储器部件114(3)的相应被划分的存储器区相关联。
每一个逻辑处理器112(1-N)对应于一个或多个相应的逻辑同步单元204(1-N)。逻辑同步单元204执行关联逻辑处理器112的各种会合(rendezvous)操作,以便实现协作以构成逻辑处理器112的处理器元件之间的同步问题的一致。例如,输入/输出操作和/或处理器间通信可以从逻辑处理器112的每个处理器元件通信到与关联的逻辑同步单元204,以便对所述处理器元件产生的输入/输出操作和/或处理器间通信进行比较和表决。
会合操作还可以由逻辑同步单元204来实行,以便交换逻辑处理器112的处理器元件之间的状态信息和/或数据,来使处理器元件的操作和响应同步。例如,可以这样实施会合操作,以至于处理器元件确定地响应于输入的异步中断,以便调节变化的处理器元件的处理率,以便当执行分布于处理器元件的操作时交换软件状态信息,等等。
图3说明一个典型的冗余处理器系统300的各个部件,其中可以实现时刻响应的实施方式。冗余处理器系统300包括图1和图2所示的冗余处理器系统100的各个部件,诸如多个逻辑处理器112(1-N)和关联的逻辑同步单元204(1-N)。然而,为了具体说明,在图3中仅示出了一个逻辑处理器112和一个关联的逻辑同步单元204。逻辑同步单元204可以如参考图2所示的逻辑同步单元204(1-N)所描述的那样来实施。在这个实施例中,逻辑同步单元204包括实际时间寄存器302,其是不依赖于其他操作而以特定频率一致地递增来跟踪实际时间的寄存器。
逻辑处理器112包括处理器元件304(1-3),其每一个都是执行或处理计算机可执行指令的微处理器。冗余处理器系统300包括存储器部件114(1-3),其每一个都与图1所示的相应处理器组104(1-3)相关联。每个处理器元件304(1-3)都是相应处理器组中的一个处理器元件,并且每个处理器元件304与相应存储器部件114(1-3)中的所划分的存储器区相关联。例如,处理器元件304(1)对应于存储器部件114(1)中的存储器区306(1),处理器元件304(2)对应于存储器部件114(2)中的存储器区306(2),而处理器元件304(3)对应于存储器部件114(3)中的存储器区306(3)。
存储器区306(1-3)构成对应于逻辑处理器112的逻辑存储器308。逻辑处理器112的处理器元件304(1-3)每个都对应于逻辑存储器308的相应被划分的存储器区306(1-3)。
存储器部件114(1-3)每个都包括对应于逻辑处理器112的相应处理器元件304(1-3)的时刻逻辑310(1-3)。在这个例子中,时刻逻辑310(1-3)是作为软件应用程序来实现的,并且存储在存储器部件114(1-3)中。每个处理器元件304(1-3)都执行时刻逻辑310的示例化(例如,作为软件),以便实施时刻响应。
如在此使用的那样,术语“逻辑”(例如,时刻逻辑310或其部件)还可以指可实现以便执行与时刻响应有关的逻辑操作的硬件、固件、软件,或它们的任意组合。逻辑可以包括用来完成包括支持性模拟操作的给定任务的任意支持电路。例如,逻辑还可以包括模拟电路、存储器部件、输入/输出(I/O)电路、接口电路、功率提供/调节电路等。
时刻逻辑310(1-3)响应于诸如来自于对银行或股票交易加以时间注释的应用程序的时刻请求而产生逻辑时间。逻辑时间是作为真实时间或实际时间的近似值产生的,从而每个处理器元件304(1-3)都响应请求而返回相同的逻辑时间。尽管逻辑时间响应只是实际时间的近似值,但是其可能是很接近的近似值(例如在几微秒内),并且不会影响请求时刻的应用程序。实际上,在可通过在几微秒的实际时间内的逻辑时间来确定的1秒、十分之一秒甚至百分之一秒的交易时间内,可以记录银行或股票交易。
存储器部件114(1-3)每个都包括逻辑时间寄存器312(1-3)、响应计数器314(1-3)和时间响应标志316(1-3),它们每一个都对应于相应处理器元件304(1-3)中的一个。逻辑时间寄存器312保持当前的逻辑时间,诸如响应于时刻请求而产生的最近的逻辑时间。当收到时刻请求时,时刻逻辑310读取逻辑时间寄存器312保持的当前逻辑时间,并且在一个实施例中,递增当前逻辑时间并返回递增后的逻辑时间。时刻逻辑310然后将递增后的逻辑时间作为当前的逻辑时间(例如,最后的逻辑时间响应)保存在逻辑时间寄存器312中。可以以任意整数或其分数来递增逻辑时间,只要每个处理器元件304(1-3)确定地递增逻辑时间并响应于请求返回相同的逻辑时间。逻辑时间的递增值可以视情况、应用和/或具体的实施而定。
每次当对应于相应处理器元件304(1-3)的时刻逻辑310(1-3)以逻辑性时间来响应请求时,时刻逻辑310(1-3)就递增相应的响应计数器314(1-3)。当时刻逻辑310获得实际时间和/或当实际时间是从逻辑同步单元204中的实际时间寄存器302中提供的时,响应计数器复位(例如,为0或为类似可确定的逻辑状态)。时刻逻辑310(1-3)监视相应的响应计数器314(1-3),并在计数器符合或超过设定数量的响应时获取实际时间。响应的数量是根据实施方式而定的,以及当计数器符合或超过确定数量的响应时是否启动实际时间的获取。
当从时刻逻辑310(1-3)请求时,逻辑同步单元204从实际时间寄存器302提供实际时间。或者,当响应任一其他的同步化操作,诸如处理器元件304(1-3)的中断处理时,逻辑同步单元204还可以提供时刻。
当获得或收到实际时间时,时刻逻辑310(1-3)确定由相应逻辑时间寄存器312(1-3)保持的当前逻辑时间是否大于或小于实际时间。如果当前逻辑时间小于实际时间,那么将相应的时间响应标志316(1-3)设置为一个逻辑状态(例如,逻辑状态1),并将逻辑时间设置为等于实际时间。当时刻逻辑310(1-3)接着响应于时刻请求时,可以相应地将当前逻辑时间递增到近似于实际时间。如上所述,可以以任意整数或其分数来递增当前逻辑时间,只要每个处理器元件304(1-3)确定地递增逻辑时间并响应于请求返回相同的逻辑时间。递增的近似值是根据实施方式而定的,并且可以被确定到最适当的近似值,并且跟踪关于特殊应用程序的实际时间,其可以请求来自于冗余处理器系统300的时刻响应。
如果当获得或收到实际时间时,逻辑时间寄存器312(1-3)保持的当前逻辑时间大于实际时间,则相应的时间响应标志316(1-3)被设置到一个逻辑状态(例如,逻辑状态0),以便指示在时刻逻辑310(1-3)接着响应于时刻请求时当前逻辑时间不递增。响应于时刻请求,返回作为静态值的当前逻辑时间(例如,不及时返回,但可以作为非增加的相同值多次返回),以便使实际时间提高至和/或越过当前逻辑时间。
逻辑处理器112的处理器元件304(1-3)不进行时钟同步化,并且由一个处理器元件304产生的时刻值将不同于其他处理器元件。逻辑同步单元204使用实际时间寄存器302来保持实际时间,通过其处理器元件可获取实际时间。然而,应用程序可经常请求时刻,以致当处理器元件连续地请求和调整来自于逻辑同步单元204的实际时间时,降低了冗余处理器系统内的处理器性能。因此,时刻逻辑协调处理器元件304(1-3)来以确定的推定值响应于时刻请求,该推定值是表示实际时间的近似值的逻辑时间。
时刻响应的方法,诸如分别参考图4和图5描述的典型方法400和500,可以以计算机可执行指令的一般情形的形式来描述。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例行程序、程序、对象、部件、数据结构,步骤、模块、函数等等。这些方法也可实行于分布式计算环境中,在该环境中函数是由通过通信网络链接的远程处理设备来执行的。在分布式计算环境中,计算机可执行指令可以位于本地和远程计算机存储介质内,包括存储器设备。
图4是说明用于时刻响应的方法400的具体实施例。描述该方法的顺序并不意味着把其理解为一种限制,可以以任何顺序来组合任意数量所描述的方法模块来实施本方法。此外,可以以适当的硬件、软件、固件或它们的组合来实施本方法。
在块402,接收到时刻请求。响应于请求,时刻逻辑310(1-3)(图3)产生逻辑时间来近似实际时间。在块404,判断响应计数器是否超过了时刻请求的设定数量的响应。如果响应计数器超过了设定数量的响应(即,块404为“是”),则本方法进行到图5以便获取实际时间更新。如上所述,响应的数量是特定于实施方式的,以及当计数器符合或超过确定数量的响应时是否启动实际时间的获取。当像参考图5所描述的那样获得实际时间更新时,本方法返回到块406以便响应在块402接收的时间请求。
如果响应计数器未超过设定数量的响应(即,块404为“否”),则在块406判断时间响应标志的逻辑状态是否表示逻辑时间小于实际时间。在这个例子中,逻辑状态1表示逻辑时间小于实际时间。如果逻辑时间小于实际时间(例如,时间响应标志表示逻辑1状态)(即,块406为“是”),则在块408递增由逻辑时间寄存器保持的当前逻辑时间。在块410,响应于时刻请求,由逻辑时间寄存器保持的逻辑时间返回作为逻辑时间。在这个例子中,逻辑时间响应是来自于块408的已递增的当前逻辑时间。在块412,递增响应计数器。时刻逻辑310(1-3)递增相应的响应计数器314(1-3),以便跟踪逻辑时间响应的数量。
如果逻辑时间大于实际时间(例如,时间响应标志表示逻辑0状态)(即,块406为“否”),则在块410,响应于时刻请求,由逻辑时间寄存器保持的逻辑时间返回作为逻辑时间。在这个例子中,逻辑时间大于实际时间。因此,不递增由逻辑时间寄存器保持的当前逻辑时间,并且逻辑时间响应与先前的逻辑时间响应相同。这提供了返回作为静态值的当前逻辑时间(例如,不及时返回,但可以作为非增加的相同值多次返回),以便使实际时间提高至和/或越过当前逻辑时间。此外,在块412,递增响应计数器。
图5是说明用于时刻响应的方法500的具体实施例。描述该方法的顺序并不意味着把其理解为一种限制,可以以任何顺序来组合任意数目的描述的方法块来实施本方法。此外,可以以适当的硬件、软件、固件或它们的组合来实施本方法。
在块502,获得或接收到实际时间。
例如,时刻逻辑310(1-3)(图3)可以从使用实际时间寄存器302保持实际时间的逻辑同步单元204中获取实际的时刻。或者,当响应任意其他同步化操作,诸如中断处理时,逻辑同步单元204还可以根据实际时间寄存器302来提供实际时刻。在块504,响应计数器复位(例如,为0)。
在块506,判断逻辑时间是否小于在块502获得的或接收到的实际时间。如果逻辑时间小于实际时间(即,块506为“是”),则在块508将时间响应标志设置为表示逻辑时间小于实际时间的逻辑状态(例如,逻辑状态1)。在这个例子中,逻辑状态1表示逻辑时间小于实际时间。在块510,设置逻辑时间等于在块502获得的或接收到的实际时间,以便更新逻辑时间。在请求时间之间已经经历了很长的持续时间的情况下,实际时间可以远远提前逻辑时间,并相应更新逻辑时间。
如果逻辑时间不小于实际时间(例如,逻辑时间大于实际时间)(即,块506为“否”),则在块512将时间响应标志设置为表示逻辑时间大于实际时间的逻辑状态(例如,逻辑状态0)。在这个例子中,逻辑状态0表示逻辑时间大于实际时间。时间响应标志的逻辑状态0表示每个相应处理器元件304(1-3)的时刻逻辑310(1-3)在接收到时刻请求时不递增当前逻辑时间,并返回非递增的当前逻辑时间。
虽然已以结构特征和/或方法的具体语言描述了时刻响应得具体实施例,但是应理解附加权利要求的主题并不限于所描述的具体特征或方法。更正确地说,具体的特征和方法是作为时刻响应的典型实施来公开的。
权利要求
1.一种冗余处理器系统(300),包括逻辑处理器(112),其包括处理器元件(304);以及由逻辑处理器(112)的每个处理器元件(304)执行的时间逻辑(310),所述时间逻辑(310)被配置为响应于时刻请求而产生逻辑时间,所产生的逻辑时间近似于实际时间,以致于逻辑处理器(112)的每个处理器元件(304)返回相同的逻辑时间。
2.根据权利要求1所述的冗余处理器系统(300),还包括配置用于保持当前逻辑时间的逻辑时间寄存器(312),并且其中时间逻辑(310)被进一步配置为确定是否递增逻辑时间寄存器(312),以便响应于时刻请求产生逻辑时间。
3.根据权利要求1所述的冗余处理器系统(300),还包括配置用于保持当前逻辑时间的逻辑时间寄存器(312),并且其中时间逻辑(310)被进一步配置为获取实际时间;确定当前逻辑时间是否小于实际时间;以及如果当前逻辑时间小于实际时间,则递增逻辑时间寄存器(312)以便产生逻辑时间。
4.根据权利要求1所述的冗余处理器系统(300),还包括配置用于保持当前逻辑时间的逻辑时间寄存器(312),以及其中时间逻辑(310)被进一步配置为获取实际时间;确定当前逻辑时间是否大于实际时间;以及如果当前逻辑时间大于实际时间,则返回当前逻辑时间。
5.一种时间响应系统(300),包括时间逻辑(310),其被配置用于响应时刻请求产生逻辑时间,所产生的逻辑时间近似于实际时间,以致在逻辑处理器(112)中执行时间逻辑(310)的每个处理器元件(304)响应于时刻请求返回相同的逻辑时间。
6.根据权利要求5所述的时间响应系统(300),其中进一步配置时间逻辑(310)用于确定响应计数器(314)是否超过了设定数目的逻辑时间响应;如果响应计数器(314)超过设定数目的逻辑时间响应,则获取实际时间;确定当前逻辑时间是否小于实际时间;以及如果当前逻辑时间小于实际时间,则将当前逻辑时间更新为实际时间。
7.根据权利要求5所述的时间响应系统(300),其中进一步配置时间逻辑(310)用于确定响应计数器(314)是否超过设定数目的逻辑时间响应;如果响应计数器超过设定数目的逻辑时间响应,则获取实际时间;确定当前逻辑时间是否小于实际时间;以及如果当前逻辑时间小于实际时间,则递增逻辑时间寄存器(312)以便产生逻辑时间。
8.一种方法(400),包括接收(402)时刻请求;响应时刻请求产生(408)逻辑时间,所产生的逻辑时间近似于实际时间;以及返回(410)逻辑时间,以致逻辑处理器(112)的每个处理器元件(304)响应于时刻请求返回相同的逻辑时间。
9.根据权利要求8所述的方法(400),还包括保持(410)当前逻辑时间;以及确定(406)是否递增当前逻辑时间以便产生逻辑时间。
10.根据权利要求8所述的方法(400),还包括保持(410)当前逻辑时间;确定(404)响应计数器(314)是否超过设定数目的逻辑时间响应;如果响应计数器(314)超过设定数目的逻辑时间响应,则获取(502)实际时间;将时间响应标志(316)设置(508)为表示当前逻辑时间小于实际时间的逻辑状态;以及根据时间响应标志(316)的逻辑状态,将当前逻辑时间更新(510)为实际时间。
全文摘要
在时刻响应的实施中,由逻辑处理器(112)的每个处理器元件(304)执行的时间逻辑(310)响应时刻请求产生逻辑时间。产生的逻辑时间近似于实际时间,以致于逻辑处理器(112)的每个处理器元件(304)返回相同的逻辑时间。
文档编号G06F11/00GK1725185SQ20051008601
公开日2006年1月25日 申请日期2005年7月20日 优先权日2004年7月20日
发明者R·L·贾丁, R·M·雷克托尔 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1