CN101048743A - 在具有至少两个执行单元的计算机系统中进行转换的方法和设备 - Google Patents

在具有至少两个执行单元的计算机系统中进行转换的方法和设备 Download PDF

Info

Publication number
CN101048743A
CN101048743A CNA200580036412XA CN200580036412A CN101048743A CN 101048743 A CN101048743 A CN 101048743A CN A200580036412X A CNA200580036412X A CN A200580036412XA CN 200580036412 A CN200580036412 A CN 200580036412A CN 101048743 A CN101048743 A CN 101048743A
Authority
CN
China
Prior art keywords
bit pattern
performance element
conversion
signal
performance
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.)
Pending
Application number
CNA200580036412XA
Other languages
English (en)
Inventor
R·魏伯勒
B·米勒
R·安格尔鲍尔
Y·科拉尼
R·格梅利希
E·贝尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from DE200410051952 external-priority patent/DE102004051952A1/de
Priority claimed from DE200410051950 external-priority patent/DE102004051950A1/de
Priority claimed from DE200410051992 external-priority patent/DE102004051992A1/de
Priority claimed from DE200410051937 external-priority patent/DE102004051937A1/de
Priority claimed from DE200410051964 external-priority patent/DE102004051964A1/de
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN101048743A publication Critical patent/CN101048743A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Abstract

用于在具有至少两个执行单元的计算机系统中进行转换的方法和设备,其中在至少两种运行模式之间进行转换,并且第一运行模式对应于比较模式,而第二运行模式对应于性能模式,其中为执行单元设置至少一组所定义的位组合,其特征在于,通过在所述至少一组中没有被定义的至少一个位组合来触发所述转换。

Description

在具有至少两个执行单元的计算机系统中进行转换的方法和设备
背景技术
由α粒子或者宇宙辐射所引起的瞬时故障对于集成半导体电路来说日益成为一个问题。以下概率由于减小的结构宽度、下降的电压和更高的时钟频率而增加,即由α粒子或者宇宙辐射所引起的电压峰值在集成电路中使逻辑值失真。结果可能是错误的计算结果。因此,在安全性重要的系统中、尤其在机动车中,这种故障必须可靠地被检测。在必须可靠地检测电子设备的功能失误的安全性重要的系统、诸如机动车中的ABS调节系统中,冗余度通常在这种系统的相应的控制装置中被用于故障识别。因此,例如在公知的ABS系统中,完整的微控制器分别是加倍的,其中冗余地计算所有ABS功能,并且对一致性进行检查。如果出现结果的不一致,则ABS系统被断开。
一方面,微控制器的基本组件是存储模块(例如RAM、ROM、高速缓存)、核心和输入/输出接口、所谓的外围设备(例如A/D转换器、CAN接口)。因为存储元件可以利用校验码(奇偶或者ECC)有效地被监控,并且外围设备通常专用地作为传感器或者执行元件信号路径的一部分被监控,所以在微控制器的核心唯一地加倍时存在其它的冗余方案。
这种具有两个集成核心的微控制器也被称为双核心结构。两个核心冗余地并且时钟同步地(步锁(Lockstep)模式)执行相同的程序段,两个核心的结果被比较,并且于是在对一致性进行比较时,故障被识别。双核心系统的这种配置也被称为比较模式。
在其它的应用中,双核心结构也被用于提高效率、也即用于提高性能。两个核心执行不同的程序、程序段和命令,因此可以实现效率提高,因此双核心系统的这种配置可以被称为性能模式。该系统也被称为对称多处理器系统(SMP)。
这种系统的扩展是借助于对特定地址的访问和专用的硬件设备通过软件在这两种模式之间的转换。在比较模式中,核心的输出信号被相互比较。在性能模式中,两个核心作为对称多处理器系统(SMP)工作,并且执行不同的程序、程序段或者命令。
发明内容
这种转换通常不仅在硬件方面、而且在接近于硬件的软件方面需要更大的干涉。因此不能毫无困难地使用标准核心,同样也难以使用针对于核心所写的以前的应用程序的代码。因此,本发明的任务是提供在多核心系统中使用已经存在的核心时需要硬件和接近于硬件的软件的最小改变的装置。
与公知的解决方案相比,如在权利要求1或者权利要求14中所述的用于在具有至少两个执行单元的计算机系统中进行转换的方法和设备具有以下优点,即能够使用已经存在的位组合,并且因此提供在多核心系统中使用已经存在的核心时需要硬件和接近于硬件的软件的最小改变的装置。
有利地,为此可以选择性地使用如在权利要求2所述的指令、如在权利要求3中所述的操作数、或者如在权利要求4中所述的操作。也即,在权利要求2至4中所述的方法的使用有利地提高使用可能性的灵活性。
如在权利要求5、权利要求9或者权利要求11中所述的方法的使用是有利的,因为这使实施变得容易。
使用如在权利要求6中所述的方法是有利的,因为因此能够更简单地匹配于硬件,其中在所述方法中位组合对应于尤其是来自汇编程序的接近于机器的位组合。
使用如在权利要求7或者权利要求8中所述的方法是有利的,因为因此也可以使用不同版本的执行单元。
使用如在权利要求10中所述的方法是有利的,因为这使已经公知的执行单元的使用变得容易。
使用如在权利要求12中所述的方法是有利的,因为因此避免在布置时的附加花费。
使用如在权利要求13或者权利要求15中所述的方法或者设备是有利的,因为因此使同步花费最小化。
其它的优点和有利的扩展方案从权利要求的特征以及说明书中得出。
附图说明
在图1中示出了一种多处理器系统G60,其具有两个执行单元G10a、G10b、比较单元G20、转换单元G50、和转换愿望识别单元G40。
在图2中示出了一种多处理器系统G60,其具有两个执行单元G10a、G10b、由比较单元G20和转换单元G50所组成的组合式比较和转换单元G70、以及转换愿望识别单元G40。
在图3中示出了一种多处理器系统G60,其具有两个执行单元G10a、G10b、由比较单元G20和转换单元G50和转换愿望识别单元G40所组成的组合式转换愿望识别、比较和转换单元G80。
在图4中示出了一种具有两个执行单元G210a、G210b以及转换和比较单元G260的多处理器系统G200。
在图5中以流程图的形式示出了一种方法,所述方法在特定的流水线级G230a、G230b内使特定的未定义的位组合与NOP或者其它中立的位组合交换。
在图6中示出一种具有两个执行单元H210a、H210b以及转换和比较单元H260的多处理器系统H200。
在图7中以流程图的形式示出了一种方法,所述方法说明在具有两个执行单元的多处理器系统中在从比较模式转换到性能模式时如何能够借助于单元ID来分离程序流程。
在图8中示出了一种在具有三个执行单元的多处理器系统中在从比较模式转换到性能模式时如何能够借助于单元ID来分离程序流程的可能方法。
在图9中以流程图的形式示出了一种方法,所述方法在从性能模式转换到比较模式时使执行单元同步。
在图10中示出了一种状态自动机,其示出在性能和比较模式之间的转换。
在图11中示出了一种多处理器系统G400,其具有两个执行单元以及两个包括其中所含有的中断屏蔽寄存器G430a、G430b在内的中断控制器G420a、G420b和不同的中断源G440a至G440n。
在图12中示出一种包括两个执行单元、转换和比较单元、以及具有三个寄存器组的中断控制器的多处理器系统。
在图13中示出了比较单元的最简单形式。
图14示出具有用于补偿相位偏移的单元的比较单元。
在图15中示出了在比较模式中优选的组件M700(转换和比较单元)的原理特性。
在图16中示出了在性能模式中优选的组件M700(转换和比较单元)的原理特性。
在图17中示出了转换和比较单元的一种实施形式。
在图18中示出了转换和比较单元的另一实施形式。
在图19中示出了产生模式信号的转换和比较单元。
在图20中示出了转换和比较单元的一般表示。
图21示出产生一般模式和一般故障信号的转换和比较单元的一般表示。
在图22中示出了与外部单元的问答通信。
在图23中示出了与智能执行元件的通信。
具体实施方式
下面,不仅处理器、核心、CPU、而且FPU(浮点单元)、DSP(数字信号处理器)、协处理器或者ALU(算术逻辑单元)都可以被称为执行单元。
在图1中示出了一种多处理器系统G60,其具有两个执行单元G10a、G10b、比较单元G20、转换单元G50、和转换愿望识别单元G40。
本发明涉及在图1、图2、图3中所示的多处理器系统G60,所述多处理器系统具有至少两个执行单元G10a、G10b、比较单元G20、转换单元G50和转换愿望识别单元G40。转换单元G50具有通向至少两个系统接口G30a、G30b的至少两个输出端。寄存器、存储器和例如数字输出端、D/A转换器、通信控制器的外围设备能够经由这些接口被控制。该多处理器系统可以以至少两种运行模式、即比较模式(VW)和性能模式(PM)运行。
在性能模式中,不同的命令、程序段或者程序在不同的执行单元中并行地被执行。在该运行模式中,比较单元G20被去激活。在该运行模式中,转换单元G50如此被配置,使得每个执行单元G10a、G10b与系统接口G30a、G30b相连接。在此,执行单元G10a与系统接口G30a相连接,而执行单元G10b与系统接口G30b相连接。
在比较模式中,相同的或者同类的命令、程序段或者程序在两个执行单元G10a、G10b中被执行。有利地,这些命令以时钟同步的方式被执行,但是具有异步性或者所定义的时钟偏差的执行也是可设想的。执行单元G10a、G10b的输出信号在比较单元G20中被比较。在不同时,识别出故障,并且可以采取相应的措施。这些措施能够触发故障信号,引入故障处理,对开关进行操作,或者是这些措施和其它可设想的措施的组合。在一种变型方案中,转换单元G50如此被配置,使得只有一个信号被连接至系统接口G30a、G30b。在另一种配置中,转换单元仅仅导致所比较的并且因此相同的信号被连接到系统接口G30a、G30b上。
转换愿望识别单元G40不依赖于正好有效的模式来检测向另一模式转换的愿望。
在图2中示出了一种多处理器系统G60,其具有两个执行单元G10a、G10b、由比较单元G20和转换单元G50所组成的组合式比较和转换单元G70、以及转换愿望识别单元G40。
如在图2中所示,在上述事实情况的实施形式中,转换单元G50和比较单元G20可以被组合成一个共同的转换和比较单元(UVE)G70。于是,该共同的组件G70接管单个组件G50、G20的任务。在图15、图16、图17、图18和图19中示出了UVE G70的实施变型方案。
如在图3中所示,在另一实施形式中,转换愿望识别单元G40、比较单元G20和转换单元G50可以被组合在一个共同的组件G80中。在另一(图中未示出的)实施形式中,转换愿望识别单元G40和比较单元G20可以被组合在一个共同的组件中。转换愿望识别单元G40与转换单元G50在共同的组件中的组合同样是可设想的。
在下文中,如果没有其它说明,则出发点是存在转换愿望识别单元G40以及组合式转换和比较单元G70。
也针对多于两个执行单元的应用,在图20中示出了转换和比较组件的一般情况。n个信号N140,...,N14n从n个待考虑的执行单元通向转换和比较组件N100。该转换和比较组件N100可以根据这些输入信号产生直至n个输出信号N160,...,N16n。在最简单的情况、即“纯性能模式”中,所有信号N14i被引到相应的输出信号N16i。在对立的边界情况、即“纯比较模式”中,所有信号N140,...,N14n只被引到输出信号N16i中的正好一个。
借助该图可以说明如何能够产生不同的可设想的模式。为此,在该图中包含开关逻辑N110的逻辑组件。该组件不必作为特有的组件存在。决定性的是实现系统中的所述功能。开关逻辑N110首先确定到底有多少个输出信号。该开关逻辑进一步确定,输入信号中的哪一个有助于输出信号中的哪一个。在此,一个输入信号能够正好有助于一个输出信号。以数学形式不同地表述也就是通过开关逻辑来定义以下函数,该函数将集合{N160,...,N16n}的元素分配给集合{N140,...,N14n}的每个元素。
于是,处理逻辑N120针对输出N16i中的每一个确定:输入以何种形式有助于该输出信号。该组件也不必作为特有的组件存在。决定性的又是实现系统中的所述功能。为了示例性地描述不同的变化可能性,在不限制一般性的情况下假设输出N160通过信号N141,...,N14m来产生。如果m=1,这则简单地对应于信号的接通,如果m=2,则信号N141、N142如例如在图13、图14中的比较单元中所述的那样被比较。该比较可以同步地或者异步地被执行,可以逐位地或者只对重要的位或者以公差带执行。
如果m>=3,则存在多种可能性。
第一种可能性在于比较所有信号,并且在存在至少两个不同的值时检测出故障,可选地可以用信令通知所述故障。
第二种可能性在于从m中选择k(k>m/2)。这可以通过使用比较单元来实现。如果信号中的一个被识别为不同,则可以可选地产生故障信号。如果所有三个信号都不同,则可能与该故障信号不同的故障信号可以被产生。
第三种可能性在于将这些值输送给一种算法。这例如可以是平均值、中值的形成或容错算法(FTA)的使用。这种FTA基于:删去输入值的极值并且对剩余的值进行取平均值的行为。可以对剩余的值的整个集合或者优选地对能够在HW(硬件)中容易形成的子集进行这种取平均值。在这种情况下,并不总是需要实际上对值进行比较。在平均值形成中,例如必须只相加并且相除,FTM、FTA或者中值需要部分的分类。必要时这里也可以在足够大的极值的情况下可选地输出故障信号。
将多个信号处理为一个信号的这些不同的所述可能性为了简明而被称为比较操作。因此,处理逻辑的任务是为每个输出信号并且从而也为所属的输入信号确定比较操作的准确形态。开关逻辑N110(也即上述函数)和处理逻辑(也就是说每个输出信号、即每个函数值的比较操作的确定)的信息的组合是模式信息,并且该模式信息确定模式。该信息在一般情况下当然是多值的,也即不能仅仅通过一个逻辑位来表示。并不是所有在理论上可设想的模式在所给定的实施中都是有意义的,优选地将限制所允许的模式的数量。要强调的是:在仅仅两个只存在比较模式的执行单元的情况下,整个信息可以只浓缩成仅仅一个逻辑位。
从性能模式到比较模式的转换在一般情况下通过以下方式来表征,即在性能模式中朝不同的输出被映射的执行单元在比较模式中朝相同的输出被映射。优选地,这通过以下方式来实现,即存在执行单元的子系统,在所述子系统中,在子系统中要考虑的所有输入信号N14i在性能模式中都被直接转换到相应的输出信号N16i上,而它们在比较模式中所有都朝一个输出被映射。替代地,这种转换也可以通过改变配对来实现。这通过以下方式来说明,即虽然在本发明的给定的构成中可以这样限制所允许的模式的数量,使得情况如此,但是在一般情况下可以不谈及性能模式和比较模式。但是可以总是谈及从性能模式到比较模式(和相反)的转换。
在运行中可以在通过软件控制的情况下在这些模式之间动态地转换。在此,通过执行特定的转换指令、特定的指令序列、明确标识的指令或者通过多处理器系统的执行单元中的至少一个对确定地址的访问来触发该转换。
误操作(Fehlerschaltung)逻辑N130收集例如由比较单元所产生的故障信号,并且可以可选地通过以下方式被动地切换输出N16i,即该误操作逻辑例如经由开关中断这些输出N16i。
但是下面的例子大多关注于两个执行单元的情况,借助该情况可以更简单地描述大多数构思。
模式之间的转换可以通过不同的方法来编码。在一种可能的方法中可以使用特殊的转换命令,所述转换命令由转换愿望识别单元G40检测。用于对转换进行编码的另一可能的方法是通过对特定的存储区的访问来定义的,所述访问又由转换愿望识别单元G40来检测。另一方法在转换愿望识别单元G40中分析用信令通知转换的外部信号。下面描述在处理器的现有的指令集中使用未被利用的位组合的方法。该方法的特殊优点在于能够继续使用现有的开发环境(汇编程序、编译器、连接器、调试器)。
在图4中示出了一种多处理器系统G200,其具有两个执行单元G210a、G210b以及转换和比较单元G260。为了在比较模式和性能模式之间转换(和反之),至少两个执行单元G210a、G210b的在汇编程序中没有被定义的位组合被使用。在指令集的说明中被规定为未定义的或者非法的所有位组合都应当被理解为在这种意义上的没有被定义的或者未定义的位组合。这例如是非法操作数、非法指令、非法操作。这些未定义的位组合的一般标志是:正常的执行单元在执行这样的位组合时产生故障信号或者显示出没有被定义的特性。因此,这些位组合不需要被用于显示通常的程序的语义。
因此,如对于单处理器系统来说存在的迄今的开发环境可以被用于软件开发。这例如可以通过定义宏“SWITCH MODE TO PM(转换模式至PM)”和宏“SWITCH MODE TO VM(转换模式至VM)”来实现,所述宏把相应的在上述意义上未定义的位组合插入代码中的适当的位置处。
于是,这种组合的使用可以被定义为一般的“SWITCH(转换)”宏。于是该宏导致依赖于目前的模式向分别另外的模式的转换。如果在系统中存在多于两种的不同模式,则为了使用该方法必须存在更多的这种组合,于是优选地可以针对每种模式将一个这种组合用于转换识别。
根据本发明,转换愿望通过在指令集中没有被定义的位组合来编码。所述组合不允许在执行单元G210a、G210b内以通常的方式来处理。由于该原因,建议附加的流水线级(REPLACE级)G230a、G230b,其识别相应的位组合并且用中立的位组合来代替这些相应的位组合以便继续处理。为此,有利地使用“NOP”(无操作)命令。NOP命令的特征在于,除了指令指针之外,该NOP命令不改变执行单元的内部状态。在此,REPLACE级G230a、G230b被插入在通常第一级、即FETCH级G220a、G220b之后和剩余的流水线级G240a、G240b之前,在汇编程序中没有被定义的位组合在这里被组合在一个单元中。
根据本发明,如果用于转换的相应的位组合已被识别,则作为流水线单元G215a、G215b中的特定的流水线级G230a、G230b的转换愿望识别单元G40的这里所示的实施方案将产生附加的信号G250a、G250b,所述附加的信号用信令通知单独的转换单元和比较单元G260:可以执行处理模式的转换。
REP级G230a、G230b优选地被布置在执行单元G 210a、G210b的流水线单元G215a、G215b中的FET G220a、G220b和剩余的流水线级G240a、G240b之间。在此,REP级G230a、G230b识别相应的位组合,并且在该情况下将NOP命令转发给剩余的级G240a、G240b。同时,相应的信号G250a或者G250b被激活。在所有其它的情况中,REP级G230a、G230b表现中立,也即将所有其它的命令不加改变地传递给剩余的级G240a、G240b。
在图5中以流程图的形式示出了一种方法,所述方法在特定的流水线级G230a、G230b内使特定的未定义的位组合与NOP或者其它中立的位组合交换。在FETCH级G300中,命令、也即位组合从存储器中被取出。此后在块G310中辨别所取出的位组合是否对应于对转换进行编码的特定的未定义的位组合。如果情况不是如此,则在下一步骤G320中位组合在未改变的情况下被转交给剩余的流水线级G340以便进行继续处理。如果对转换进行编码的特定的位组合在步骤G310中已被识别,则该位组合在步骤G330中由NOP位组合来代替,并且然后该NOP位组合被转交给其它流水线级G340以便进行继续处理。在一种有利的实施形式中,块G310、G320、G330表示根据本发明的REPLACE级G230a、G230b的功能,其中这些块也可以包含其它功能。
在图6中示出了一种多处理器系统H200,其具有两个执行单元H210a、H210b以及一个转换和比较单元H260。组件H220a、H220b、H240a、H240b具有与G220a、G220b、G240a、G240b相同的意义。在这里通过特定的流水线级H230a、H230b所描述的转换愿望识别单元G40的一种替代的实施方案中,所述单元除了具有用信令通知转换的信号H250a、H250b之外还具有其它信号。为了能够使执行单元H210a、H210b在从性能模式转换到比较模式时同步,执行单元H210a、H210b的流水线单元H215a、H215b分别具有一个信号输入H280a、H280b,利用该信号输入能够停止处理。该信号由交换和比较单元H260为首先已经识别出转换命令并且从而已经激活了信号H250a或者H250b的那个流水线单元H215a或者H215b而设置。只有当执行单元H210a、H210b的两个流水线单元H215a、H215b已经识别出转换命令并且已经通过软件或者其它硬件措施使其内部状态同步,所述信号H280a、H280b才又被取消。在从比较模式转换到性能模式时不需要H280a、H280b,因为不需要同步。
这里所述的建议的前提是这样的单元(被称为ID单元)或者方法,通过该单元或者方法,每个执行单元都能够确定其单独的号码或者单元ID。在具有两个执行单元的系统中,例如一个执行单元自身可以确定号码0,另一个执行单元可以确定号码1。在具有多于两个的执行单元的系统中,号码相应地被分配或者确定。该ID不在比较模式和性能模式之间进行区分,而是唯一地表示一个执行单元。该ID单元可以被包含在相应的执行单元中,例如被实施为处理器状态寄存器中的位或者位组合,或者被实施为特有的寄存器、或者单个位、或者在执行单元外部的根据请求提供相应的ID的单元。
在执行单元根据转换愿望执行了到性能模式的转换之后,虽然比较单元不再是有效的,但是执行单元总是还执行相同的命令。这原因在于指令指针不受转换影响,所述指令指针在程序中标识执行工作在下一步骤中工作或者目前工作的位置。为了执行单元随后能够执行不同的软件模块,执行单元的程序流程必须被分开。因此根据该情况,指令指针在性能模式中通常具有不同的值,因为根据本发明,独立的命令、程序段或者程序被处理。在这里所述的建议中通过确定相应的执行单元号码来实现程序流程的分开。根据执行单元具有哪个ID,该执行单元执行确定的软件模块。因为每个执行单元都具有单独的号码或者ID,因此参与的执行单元的程序流可以可靠地被分开。
在图7中以流程图的形式示出了一种方法,所述方法表明在具有两个执行单元的多处理器系统中在从比较模式转换到性能模式时如何能够借助于单元ID将程序流程分开。在执行从比较模式到性能模式的转换G500之后,由两个执行单元进行单元ID或者执行单元号码的询问G510。在此,根据本发明,执行单元0将获得执行单元号码0,执行单元1将获得执行单元号码1。在G510中进行所确定的执行单元号码与号码0的比较。如果这些号码相同,则该比较已成功的执行单元在步骤G520中继续进行执行单元0的编码。该比较没有成功的执行单元在G530中继续进行与号码1的比较。如果该比较成功,则在G540中继续进行执行单元1的编码。如果该比较没有成功,则因此为相应的执行单元确定了不等于0和1的执行单元号码。这是故障情况,并且继续进行G550。
在图8中描述了用于三个执行单元的可能的方法。在执行从比较模式到性能模式的转换H500之后,由执行单元进行单元ID或者执行单元号码的询问H510。在此,根据本发明,例如执行单元0将获得执行单元号码0,执行单元1将获得执行单元号码1,并且执行单元2将获得执行单元号码2。在H510中进行所确定的执行单元号码与号码0的比较。如果这些号码相同,则该比较已成功的执行单元在步骤H520中继续进行执行单元0的编码。该比较没有成功的执行单元在H530中继续进行与号码1的比较。在该比较成功的执行单元中,在H540中继续进行执行单元1的编码。该比较没有成功的比较单元在H535中继续进行与号码2的比较。该比较成功的执行单元将在H536中继续进行执行单元2的编码。如果该比较没有成功,则因此为相应的执行单元确定了不等于0、1和2的执行单元号码。这是故障情况,并且继续进行H550。代替与号码的比较,所确定的执行单元号码也可以直接被用作转移表中的索引。
根据该说明,该方法也可以被应用于具有多于三个的执行单元的多处理器系统。
如果从性能模式转换到比较模式,则必须注意多种情况。在从性能模式转换到比较模式时必须保证执行单元的内部状态在转换之后是同样的,否则如果不同的起始状态导致不同的输出,则在比较模式中将可能识别出故障。这可以通过硬件、通过软件、通过固件或者以所有三者的组合形式来执行。其前提是所有执行单元在转换到比较模式之后执行相同的或者同样的命令、程序或者程序段。另外描述了一种同步方法,如果比较模式的特征在于处理相同的命令并且进行精确到位的比较,则可应用所述同步方法。
在图9中以流程图的形式示出一种方法,所述方法使执行单元在从性能模式转换到比较模式时同步。在步骤G600中,所有中断优选地被禁止。这不仅仅是重要的,因为对于比较模式来说中断控制器必须相应地被重新编程。还应该通过软件来匹配执行单元的内部状态。但是,如果在准备转换到比较模式期间中断被触发,则在没有其它花费的情况下不再可能匹配。
步骤G610:如果两个执行单元具有单独的高速缓存,则还必须在转换之前使高速缓存的内容相匹配,以便防止在比较模式中对于一个执行单元的地址来说出现高速缓存命中(Cache-hit),而对于另一执行单元来说出现高速缓存未命中(Cache-miss)。如果这不是由高速缓存硬件独立地执行,则这例如可以通过将所有的高速缓存管线(Cacheline)标记为无效来实现。必须一直等待,直到该高速缓存(或者多个高速缓存)完全无效。这可以在需要时通过程序代码中的等待循环来保证。这也可以通过其它方法来实现,决定性的是在该步骤之后高速缓存处于相同的状态中。
在步骤G620中,执行单元的写缓冲器被清空,以便在转换之后不发生执行单元的激活,所述激活仍由性能模式引起。
在步骤G630中,执行单元的流水线级的状态被同步。为此,例如在转换序列/转换命令之前执行适当数量的NOP(无操作)命令。NOP命令的数量取决于流水线级的数量,并且从而依赖于相应的结构。哪个命令适于作为NOP命令同样依赖于结构。如果执行单元具有指令高速缓存,则在此应该保证,该命令序列对准高速缓存管线的边界(Alignment)。因为指令高速缓存在执行该NOP之前已经被标记为无效,所以该NOP必须首先被加载在高速缓存中。如果该命令序列在高速缓存管线边界处开始,则在实现用于转换的命令之前结束从存储器(例如RAM/ROM/闪存)到高速缓存的数据传送。这在确定NOP的必要的数量时也必须被考虑。
在步骤G640中,用于转换到比较模式的命令步骤实际被执行。
在步骤G650中,使每个执行单元的相应的寄存器文件的内容相匹配。为此,在转换之前或者之后,寄存器可以被加载相同的内容。在此重要的是:在寄存器内容被向外传送并且从而由比较单元比较之前,执行单元中的寄存器的内容在转换之后是相同的。
在步骤G660中,中断控制器被重新编程,使得外部的中断信号在所有互连的执行单元中触发相同的中断。
在步骤G670中,中断再次被释放。
如果从程序流程来看应该何时转换到交换模式中不是明确的,则必须将所打算的转换通知给所参与的执行单元。为此,优选地在属于相应的执行单元的中断控制器中例如通过软件来启动中断。于是中断处理促使执行用于互连的上述序列。
在图10中示出了状态自动机,其示出在性能和比较模式之间(和相反)的转换。在由“开机(Power On)”或者复位(软件或硬件)所引起系统启动时,系统经由过渡G800被置于状态G700。一般适用的是,系统在能够触发复位的未定义的事件之后总是在状态G700中开始工作。能够触发复位的示例性事件是外部信号、电源的问题或者使继续工作不再有意义的内部故障事件。因此,转换和比较单元G70以及工作在性能模式中的多处理器系统G60的状态G700是系统的默认状态。在采取通常未定义的状态的所有情况中采取默认状态G700。状态G700的这种默认调节在此通过硬件措施来保证。系统状态或者转换和比较单元G60的状态例如可以在寄存器中、在寄存器的位中、通过寄存器中的位组合或者通过触发器被编码。
于是通过硬件来保证,在复位或者开机之后总是采取状态G700。这通过以下方式来保证,即例如复位信号或者“开机”信号被引导到触发器或者寄存器的复位输入端或者设置输入端上。
在状态G700中,系统工作在性能模式中。因此,执行单元G10a、G10b执行不同的命令、程序和程序块。例如可以通过执行单元G10a、G10b执行特定的转换命令来识别转换愿望。另外的可能性是通过对特定的存储器地址的访问、通过内部信号或者也通过外部信号来识别。只要不存在转换愿望,多处理器系统G60就停留在状态G700中,并且从而转换和比较单元G70也停留在状态G700中。另外,转换条件的识别被称为转换愿望,所述转换条件如在该特定系统中表征转换愿望那样被表征。
通过过渡G810来表示停留在状态G700中。如果转换愿望由执行单元G10a识别出,则转换和比较单元G70经由过渡G820被转换到状态G710中。状态G710因此表示以下情形,即执行单元G10a已经识别出转换愿望并且等待,直到执行单元G10b同样识别出转换愿望为止。只要情况不是如此,转换和比较单元G70就停留在状态G710中,这用过渡G830来表示。
如果在状态G710中执行单元G10b同样识别出转换愿望,则过渡G840发生。因此,转换和比较单元G70采取状态G730。该状态表示两个执行单元G10a、G10b已经识别出转换愿望的情形。在状态G 730中进行同步方法,利用所述同步方法使两个执行单元G10a、G10b彼此同步,以便随后以比较模式工作。在该过程期间,转换和比较单元G70停留在状态G730中,这用过渡G890来表示。
如果在状态G700中首先由执行单元G10b识别出转换愿望,则经由过渡G860转换到状态G720中。状态G720因此表示以下情形,即执行单元G10b已经识别出转换愿望并且等待,直到执行单元G10a同样识别出转换愿望为止。只要情况不是如此,转换和比较单元G70就停留在状态G720中,这用过渡G870来表示。如果在状态G720中执行单元G10a同样识别出转换愿望,则过渡G880发生。因此,转换和比较单元采取状态G730。
如果在状态G700中两个执行单元G10a、G10b同时识别出转换愿望,则立即过渡到状态G730中。该情况表示过渡G850。
如果转换和比较单元G70处于状态G730中,则两个执行单元G10a、G10b已经识别出转换愿望。在该状态中,执行单元G10a、G10b的内部状态被同步,以便在结束该同步过程之后以比较模式工作。随着该同步工作的结束而发生过渡G900。该过渡表明同步的结束。在状态G740中,两个执行单元G10a、G10b以比较模式工作。同步工作的结束可以由执行单元G10a、G10b自己用信令通知。这意味着,如果两个执行单元G10a、G10b已经用信令通知:它们准备以比较模式工作,则过渡G900发生。该结束也可以在固定地设定的时间内用信令来通知。这意味着,在转换和比较单元G70中对在状态G730中停留多长时间固定地进行编码。该时间如此被设定,使得两个执行单元G10a、G10b已经可靠地结束了其同步工作。于是,在经过该时间之后,过渡G900被启动。在另一变型方案中,如果两个执行单元G10a、G10b已经结束了其同步工作,则转换和比较单元G70可以监控并且自己识别执行单元G10a、G10b的状态。于是,在识别之后,开始过渡G900。
只要没有转换愿望被识别出,多处理器系统G60就停留在比较模式中,这通过过渡G910来表示。如果在状态G740中转换愿望被识别出,则转换和比较单元经由过渡G920被置于状态G700中。如已经所描述的,系统在状态G700中以性能模式工作。于是,在从状态G740过渡到状态G700时程序流程的分开可以如在所述方法中那样被执行。
在图11中示出了一种多处理器系统G400,其具有两个执行单元G410a、G410b以及包括其中所包含的中断屏蔽寄存器G430a、G430b在内的两个中断控制器G420a、G420b和不同的中断源G440a-G440n。另外示出了具有专门的中断屏蔽寄存器G460的转换和比较单元G450。
有利地,每个执行单元G410a、G410b具有其自身的中断控制器G420a、G420b,以便能够在性能模式中同时处理两个中断。这特别在中断处理是系统性能的瓶颈的系统中是有利的。在此,中断源G440a-G440n有利地分别相同地被连接到两个中断控制器G420a、G420b上。这种连接方式导致在没有其它措施的情况下在两个执行单元G410a、G410b上触发相同的中断。在性能模式中,中断控制器G420a、G420b如此被编程,使得相应的中断源G440a-G440n根据应用适当地被分配到不同的执行单元G410a、G410b上。这借助于对中断屏蔽寄存器G430a、G430b的适当编程来实现。屏蔽寄存器在寄存器中为每个中断源G440a-G440n都设置一个位。如果该位被设置,则中断被禁止,也即该中断不被转发给所连接的执行单元G410a、G410b。在性能模式中,给定的中断源G440a-G440n有利地由正好一个执行单元G410a或者G410b处理。这有利地至少适用于中断源中的一些。因此,可以实现,在不发生中断嵌套(中断处理通过第二中断被中断)或者中断挂起(第二中断的处理被推迟,直到第一中断的处理结束为止)的情况下,多个中断源G440a-G440n能够同时被处理。
在比较模式中必须保证,中断控制器G420a、G420b在所有执行单元G410a、G410b处同时触发相同的中断,否则将根据比较模式识别出故障。这意味着,在同步阶段中在从性能模式转换到比较模式时必须保证中断屏蔽寄存器G430a、G430b是相同的。这种同步在图9中在步骤G660中被描述。这种同步可以通过软件用以下方式来执行,即两个中断屏蔽寄存器G430a、G430b相应地以相同的值被编程。建议使用专门的寄存器G460,以便加速转换过程。在一种实施形式中,该寄存器G460被布置在转换和比较单元G460中,但是也可以被包含在转换愿望识别单元G40、组合式转换愿望识别单元、比较单元、转换单元G80以及所有组合中。同样可以设想的是,该寄存器被布置在这三个组件之外另一适当的位置处。寄存器G460包含应该在比较模式中适用的中断屏蔽。转换和比较单元G450从转换愿望识别单元G40获得用于从性能转换到比较模式的信号。在中断可能在步骤G600中被禁止之后,中断控制器G420a、G420b的中断屏蔽寄存器G430a、G430b被重新编程。这在转换信号已被获得并且中断控制器G420a、G420b已被禁止之后现在通过硬件由转换和比较单元G450与剩余的同步步骤并行地执行。有利地,在比较模式中不是单独地对中断屏蔽寄存器G430a、G430b进行重新编程,而总是对中央寄存器G460进行重新编程。于是,该中央寄存器同步地通过硬件被转移到两个中断屏蔽寄存器G430a、G430b上。这里针对中断屏蔽寄存器所描述的方法可以以相同的方式被推广到在中断控制器中所布置的所有中断状态寄存器。当然,也可以设想代替寄存器G460而使用其它的存储介质,其中可以从所述存储介质尽可能快速地转移到中断屏蔽寄存器G430a、G430b上。
在图12中建议一种多处理器系统G1000,其包括两个执行单元G1010a、G1010b、转换和比较单元G1020、以及具有三个不同的寄存器组G1040a、G1040b、G1050的中断控制器G1030。如图12中所示,作为上述解决方案的替代方案,建议一种专用的中断控制器G1030。该中断控制器被应用在多处理器系统G1000中,该多处理器系统在该例子中被示出为具有两个执行单元G1010a、G1010b、以及能够在比较和性能模式之间转换的转换和比较单元G1020。
在此,在性能模式中使用寄存器组G1040a、G1040b。在该情况下,中断控制器G1030与两个中断控制器G420a、G420b完全一样地工作。该特性在图11中被示出和描述。在此,寄存器组G1040a被分配给执行单元G1010a,而寄存器组G1040b被分配给执行单元G1010b。中断源G1060a-G1060n通过屏蔽被适当地分配给执行单元G1010a、G1010b。在从性能模式转换到比较模式时,转换和比较单元G1020产生信号G1070。该信号用信令通知中断控制器G1030:被转换到比较模式或者系统从该时刻起以比较模式工作。此后,中断控制器G1030使用寄存器组G1050。因此保证在两个执行单元G1010a、G1010b处产生相同的中断信号。转换和比较单元G1020又通过信号G1070把从比较模式到性能模式的转换用信令通知中断控制器G1030,随着所述从比较模式到性能模式的转换又转换到寄存器组G1040a、G1040b。因此,也可以有利地通过以下方式来实现对相应的寄存器组的保护,即在性能模式中只允许对寄存器组G1040a、G1040b的写,并且通过硬件来禁止对为比较模式保留的寄存器组G1050的写。同样在另一方向上也可以在比较模式中只允许对寄存器组G1050的写,而禁止对寄存器组G1040a、G1040b的写。
在图13中示出了比较单元M500、G20的最简单形式。具有至少两个在性能模式和比较模式之间转换的执行单元G10a、G10b的多处理器系统G60中的基本组件是比较单元M500。在图13中以最简单的形式示出了该比较单元M500。比较组件M500可以接收两个输入信号M510和M511。然后,该比较组件在这里所示的上下文中优选地在逐位一致的意义上比较两个输入信号的一致性。在一致的情况下,输入信号M510、M511的值被给予输出信号M520,并且故障信号M530未被激活,也即它用信令通知“良好的”状态。如果比较组件检测出不一致性,则故障信号M530被激活。于是信号M520可以可选地被去激活。这具有以下优点,即从相应的系统中不得出故障(“故障围堵(fault containment)”)。也就是说,位于执行单元之外的其它组件不会由于潜在的有错误的信号而被损坏。但是也存在这样的系统,在这些系统中信号M520不必被去激活。如果在系统层面上只要求故障沉默(fail-silence),则例如情况如此。于是,故障信号能够例如被引向外部。
从该基础系统出发可设想多种实施形式。组件M500首先可以被实施为所谓的TSC(全自检(totally self checking))组件。在这种情况下,故障信号M530在至少两条线路(“双轨”)上被引向外部,并且通过内部的设计和故障发现措施来保证:在比较组件的每种可能的故障情况下正确地存在或者可识别地不正确地存在该信号。在此,双轨信号通过两条线路优选地如此提供二进制信号,使得两条线路在无故障的情况下相互反向。在使用本发明系统时的优选变型方案是使用这种TSC比较单元。
第二类实施形式可以如下来区分,即两个输入M510、M511(或者M610、M611)必须具有何种同步程度。一种可能的实施形式通过逐时钟的同步来表征,也即数据的比较可以在一个时钟内被执行。
轻微的变化通过以下方式产生,即在两个输入之间有固定的相位偏移时使用同步延迟元件,该同步延迟元件使相应的信号例如延迟多个半(halbzahlig)时钟周期或者整数个时钟周期。这种相位偏移有助于避免共性原因故障、也即能够同时或者同样地影响多个处理单元的这种故障原因。
因此,图14描述另一实施形式。组件和信号M600、M610、M611、M620、M630具有与图13中的相应的组件和信号M500、M510、M511、M520、M530相同的意义。因此,在图14中除了这些组件之外还插入了组件M640,其使在时间上较早的输入延迟所述相位偏移。优选地,该延迟元件被安置在比较单元中,以便只在比较模式中使用该延迟元件。替代地或者补充地,可以将中间缓冲器M650、M651置于输入链中,以便同样能够容忍不是纯粹的时钟或相位偏移的这种异步性。优选地,该中间缓冲器被设计为FIFO(先进先出)存储器。这种存储器具有一个输入端和一个输出端,并且可以存储多个存储字。到达的存储字在新的存储字到达时在其位置方面被移动。在最后的位置(缓冲器深度)之后,所述存储字“从存储器”被移出。如果存在这种缓冲器,则也可以容忍直至缓冲器的最大深度的异步性。在这种情况下,如果缓冲器溢出,则故障信号也必须被输出。
此外,在比较单元可以根据如何产生信号M520(或者M620)来区分实施形式。优选的实施形式是将输入信号M510、M511(或者M610、M611)置于输出端上,并且使得通过开关可中断连接。该实施形式的特殊优点在于,为了在性能模式和可能的不同比较模式之间转换,可以使用相同的开关。替代地,信号也可以由比较单元内部的中间存储器产生。
最后一类实施形式可以如下来区分,即在比较单元处存在多少个输入并且比较单元应该如何作出反应。在三个输入的情况下可以进行多数表决、所有三个信号的比较或者只有两个信号的比较。在四个或者更多输入的情况下相应地可设想多种实施形式。可能的实施形式的详尽的描述被包含在图20的描述中。
实施形式的准确选择优选地应该与整个系统的不同的运行模式相结合。也就是说,如果存在多个不同的性能或者比较模式,则这些模式优选地与比较单元的相应的模式相结合。
在本发明的一些地方,去激活比较单元或者一般的表决/处理/分类元件(下面为了简单起见总是被称为比较单元)或者使其无效是必要的或者有利的。为此存在多种可能性。一方面,可以将信号引向该比较单元,利用该信号激活或者去激活该比较单元。为此,可以在比较单元中插入附加的逻辑,这可以由所述附加的逻辑执行。另一可能性是不将要比较的数据输送给比较单元。第三可能性是在系统层面上忽略比较单元的故障信号。此外,也可以自己中断故障信号。所有可能性的共同点是,潜在地被比较的两个或者更多数据是不同的,这在系统中是无关紧要的。如果情况如此,则比较单元被认为是被动的或者去激活的。
另外,考察与比较单元相连接的转换单元、也即转换和比较单元G70的实施方案。如果该转换和比较单元与执行单元G10a、G10b一起在一个芯片内被实施,则该实施方案是特别有利的。
当在一个芯片内实施时,通过组合组件、即比较单元和转换单元只产生非常小的硬件开销。因此,该实施方案的优选的变型方案是将这两个部分组合在一个组件中。这是具有至少所述输入信号(输出执行单元1、输出执行单元2)、至少所述输出信号(输出1、输出2)、逻辑输出信号“总输出”(在物理上可以与输出1或者输出2一致)和比较单元的组件。该组件具有以下能力,即转换模式,在性能模式中允许所有信号通过,而在比较模式中比较多个信号并且必要时允许一个信号通过。另外,其它的输入和输出信号也是有利的:用于用信令通知所检测到的故障的故障信号、用于用信令通知所述组件所处于的模式的模式信号、以及来自和通向组件的控制信号。
在优选的实施例中,两个或者更多执行单元在性能模式中作为主机被连接到处理器内部的总线上。比较单元被去激活,或者在执行单元的不同特性的情况下在可设想的比较模式之一中所产生的故障信号被屏蔽。这意味着,转换和比较单元对于软件来说是透明的。在所考察的比较模式中,待比较的物理执行单元被当作总线上的逻辑执行单元来对待,也即只出现总线上的主机。比较单元的故障信号被激活。为此,转换和比较单元使除了一个执行单元之外的所有执行单元通过开关与处理器内部的总线分离,使逻辑执行单元的输入加倍,并且将这些输入提供给所有参与比较模式的执行单元。当在总线上写时,输出在比较单元中被比较,并且在一致时这些数据经由至总线的现有入口被写。
在图15和图16中说明了优选的组件M700(转换和比较单元,对应于G70)的原理特性。为了简单起见,只针对两个执行单元来绘制该图。在此,图15示出在比较模式中组件的状态,图16示出在性能模式中组件的状态。在这些模式中的不同的开关位置由M700通过控制装置M760来实现。如果如在图16中所示的那样开关M750和M751闭合,则两个执行单元M730、M731首先能够在性能模式中在数据和地址总线M710上写。前提是可能的写冲突通过总线协议或者通过其它的未画出的组件来解决。在比较模式中,该特性至少从逻辑的角度来看是另一种特性。如在图15中所示,随后开关M750、M751被打开,并且因此直接的访问可能性被中断。然而与图16不同,在图15中随后开关M752、M753被闭合。执行单元M730、M731的信号M740、M741被引向比较组件M720。该比较组件至少如在图13中所示的那样被构造,但是也可以包含如在图14中所示的扩展。但是,在图15和图16中舍弃了比较组件M720的故障信号或者其它信号。如果两个信号一致,则开关M754被闭合,并且两个一致的信号之一随后被转发到地址/数据总线M710上。总之,对此有必要的是,转换和比较单元M700能够影响开关M750-M754。相应的开关位置取决于模式和故障识别。对此,也涵盖开关M754总是闭合的并且适当的系统反应通过故障信号产生的变型方案。
在图17中示出了转换和比较单元的变型方案。对于只具有两个执行单元G10a、G10b的简单系统来说也已经存在转换和比较单元的实施的多种变型方案。在图17中示出了另一种变型方案,如果在比较单元中不能使用缓冲器,则所述另一种变型方案是特别有利的。如在图15、图16中那样,存在执行单元的信号M840、M841。所述执行单元在该图中没有被示出。在本发明组件M800中存在模式逻辑M810,其预先给定组件的模式。在性能模式中,该模式逻辑闭合开关M831,在比较模式中该模式逻辑打开该开关M831。另外,该模式逻辑将模式信号给予比较单元M820。该比较单元在该实施方案中总是进行比较,但是利用比较的结果和该模式信号来控制开关M830。在性能模式中,开关总是闭合的,在比较模式中如果不存在故障,则总是闭合的。如果故障曾经被确定,则当然开关也可以继续保持被打开,直到相应的复位到来为止。
在图18中示出了转换和比较单元的另一实施形式。虽然该替代方案具有多个开关,但是为此使比较单元在性能模式中是未激活的,并且因此也可以更轻易地对付异步性。又存在执行单元的两个信号M940、M941。所述执行单元在该图中又未被示出。在本发明组件M900中存在模式逻辑M910,其预先给定组件的模式。在性能模式中,该模式逻辑闭合开关M931,并且打开开关M932、M933。因此,在该模式中,不给比较组件M920发送数据。这在异步时允许更长的缓冲时间或者在实施时更低的缓冲深度。在性能模式中,开关M930始终是闭合的。在比较模式中,组件M910闭合开关M932、M933,并且通过打开开关M931来中断对总线的直接访问。可选地,模式逻辑M910还可以将模式通知给比较单元M920。在比较模式中,开关M930在无故障的情况下是闭合的。在故障情况下,比较组件M920通过打开开关M930来中断信号M940到总线上的转发。
在所述的图中,在没有花费的情况下能够向外部引导模式或者故障信号。此外,尤其是为了产生内部的模式状态,可以毫无疑问地实现其它信号通向组件。
因此,总之该组件的优选实施方案的特征在于:存在多个处理单元,其能够将输出信号写到总线(例如地址/数据总线)上。重要的是该组件能够处理(例如比较,但是也可能表决或者分类)执行单元的输出信号中的至少两个,并且该组件能够影响至少一个开关,其中利用所述至少一个开关来中断直接总线访问中的至少一个。如果执行单元是计算机核心,则这是特别有利的。此外有利的是,可影响的开关的状态表征计算单元的运行模式。
如果该组件可以将信号置于地址数据总线上,则系统特性、尤其是可能的比较模式特别好地被转换。有利地,该信号是执行单元之一的输出信号之一的接通。替代地,这可以从对不同执行单元的不同输出信号的处理中产生。
如例如已经在对图17、18的描述中变得明显的,可以在系统中以及(根据组件的划分)也在组件之一中识别模式信息。该模式信息根据实施方案甚至可以显性地存在于子组件中。在一种优选的实施方案中,该信号也可以从该组件被引出,并且被提供给系统的其他部分。
在一般情况下,可以借助图21来说明根据本发明的特性。信号和组件N100、N110、N120、N130、N140、N141、N142、N143、N14n、N160、N161、N162、N163、N16n具有与在图20中相同的意义。此外,在该图中画出了模式信号N150和故障信号N170。可选的故障信号由收集故障信号的误操作逻辑N130产生,并且是单个故障信号的直接转发或者是其中所包含的故障信息的集聚。模式信号N150是可选的,但是其在所述组件之外的应用在许多地方都可以是有利的。开关逻辑N110(也即在图20的描述中所述的函数)和处理逻辑(也即每个输出信号、即每个函数值的比较操作的确定)的信息的组合是模式信息,并且该模式信息确定模式。当然该信息在一般情况下是多值的,也即不能仅仅通过一个逻辑位来表示。并不是所有在理论上可设想的模式在给定的实施方案中都是有意义的,优选地限制所允许的模式的数量。模式信号向外转播重要的模式信息。硬件实施方案优选地如此来表示,使得外部可见的模式信号能够被配置。优选地,处理逻辑和开关逻辑同样被可配置地构成。优选地,这些配置彼此匹配。替代地,也可以仅仅或者补充地向外提供模式信号的变化。这在第二配置中尤其具有优点。
优选地,该模式信号得到保障。在图19中例如基于图17中所示的实施方案示出二进制(Zweiersystem)的实施方案。在那里,信号M850从转换和比较单元被引出。在二进制中,该信息在逻辑上可以通过位来表示。于是,保障可以优选地通过双轨信号来表示。在一般情况下同样可以通过加倍来保障信号,所述加倍可选地是反转的。替代地,也可以产生奇偶性或者使用CRC(循环冗余校验)或者ECC(纠错码),所述奇偶性优选地在内部以自身安全的方式被产生。
模式信号可以在组件之外被使用。首先,所述模式信号可以被用于对运行系统进行自监控。所述模式信号从软件角度看负责转换,并且应该总是知道系统处于哪种模式中,并且也使所述系统处于该模式。因此,对该信号的检验可以被用于保障。这首先可以直接实现。但是,另一替代的可能性也是经由定时器或者其它“独立的”单元利用所述信号使向运行系统的询问合理。
通常,所述信号可选地也可以被用在μC(或者通用计算单元)的其它数据宿中。例如MPU(存储器保护单元)可以如此被编程,使得该MPU只在确定的模式中允许(确定的执行单元的)确定的存储器访问。在此,MPU是一种单元,该单元能够通过以下方式保证只执行所允许的对数据/地址总线的访问,即例如所述单元针对确定的程序部分禁止对确定的地址空间的访问。通过将模式信号引向MPU、对该MPU进行相应配置和编程并且分析配置数据和模式信号,可以实现附加的保障。如果模式信号已经是用于检验的充分的信息,则这有时甚至简化编程。于是,在μC初始化时间的准静态编程足够了。相应的内容可以适用于外围单元。这里也存在这样的应用,在这些应用中只有在确定的模式中才允许对相应的外围元件的访问。通过将模式信号引向外围元件、对外围元件进行相应配置和编程、并且分析配置数据和模式信号,可以实现附加的保障。如果模式信号已经是用于检验的充分的信息,则这有时甚至简化编程。于是在μC初始化时间的准静态编程足够了。类似地,对所述信号的分析也可以在中断控制器处被使用。这样的监控于是可以构成安全性方案的基础或者基本组成部分。通过适当的实施和软件结构化也能够可以针对整个故障类在所考察的应用中根据该模式信号构建安全性方案。如果该模式信号以如上所述的适当形式是自身安全的,则这尤其是有利的。在这种情况下,如果所考察的组件在其检测到模式信号和对其自身的访问之间的不一致性的情况下具有发送故障信号或者控制断路路径的可能性,则这是进一步有利的。
另一重要的使用目的是在计算单元之外分析模式信号。直接应用是在递减监视定时器(Watchdog)中的分析。这种“监视定时器”包括至少一个(计数器)寄存器,该(计数器)寄存器可以通过微处理器被设置为整数值。在设置该寄存器之后,该“监视定时器”以固定周期独立地递减寄存器的值。如果寄存器的值是零或者出现溢出,则该“监视定时器”产生故障信号。如果该故障信号不应该被产生,则微处理器必须及时地重新复位寄存器的值。因此可以(在边界中)检验,微处理器是否正确地执行软件。如果微处理器不再正确地执行软件,则假设在该情况下“监视定时器”也不再被正确地操作,并且因此由“监视定时器”产生故障信号。硬件和数据结构的完整性可以可靠地在比较模式中被检验,但是为此必须保证微处理器定期地又被转换回该比较模式中。因此,这里所描述的“监视定时器”的任务是,不仅在所述监视定时器在所定义的时间间隔内不再被复位时产生故障信号,而且在微处理器在所定义的时间间隔内不再被转换回所定义的比较模式中时也产生故障信号。例如只有当模式信号表明计算单元的所定义的比较模式时,“监视定时器”才被复位。因此保证计算单元定期地被转换回该模式。替代地或者补充地,只有当在微处理器中触发确定的中断时,才递减“监视定时器”的寄存器中的值。为此,也必须将μC的外部中断信号耦合到监视定时器上。在监视定时器中存储有:哪个中断将μC转换到所定义的比较模式中。“建立”监视定时器,一旦这种中断到来,所述监视定时器就由于正确的模式信号的存在而被复位。
完全一般地,有利的是,尤其是在应用于安全性方案时,在μC外部的源中分析模式信号。如在本发明中所述的那样,保障软件在计算机上正确运行的基本点是在不同的所允许的模式之间的正确转换。首先应该自己检验转换能力,优选地也检验正确的转换。如上所述,也可能感兴趣于定期地采用特定的模式。如果模式信号本身以自身安全的方式被构造,则这种方法总是特别有利的。
一种可能性是将模式信号引向ASIC或者另一μC。所述ASIC或者另一μC可以经由定时器和简单的逻辑在使用该信号的情况下检验至少以下几点:
计算单元足够频繁地(例如最迟每1000μs)进入一个或者多个所定义的模式中?
在转换到一种模式中时总是输出某一信号?
计算单元定期地从一种模式出来?
模式的顺序的确定的简单样式是有效的?
一般的时间样式是有效的(例如在模式1中平均<70%而在模式2中<50%)?
模式信号的逻辑、时间特性的任何一个组合必要时通过利用附加的信号来补充。
在此,在图22中描述了除此之外的建议的基本配置。在这种伙伴ASIC或者μC和所考察的具有本发明的计算单元之间执行特定的问答游戏。N300是能够发出这种模式信号的计算单元。这例如可以是μC,其具有多个执行单元和能够产生该模式信号的另一组件。例如所述另一组件可以如在图19或者图21中那样被实现。N300将该信号N310提供给伙伴(例如其它计算单元、其它μC或者ASIC)N330。该伙伴可以通过信号N320向N300提出问题,N300必须经由N321来回答该问题。这种问题可以是计算任务,其正确结果可以经由N321由N300在所定义的时间间隔内提供。N330可以独立于N300检验该结果的正确性。例如该结果被存储在N330中,或者N330可以自己计算出该结果。在检测到不正确的值时识别出故障。所建议的问答通信的特点在于,与应答并行地考察模式信号。优选地,可以如此提出问题,使得为了由N300应答,必须采用这些确定的模式。因此可以可靠地检验,所有模式转换都是可执行的(funktionsfaehig),并且在程序流程中所设置的模式转换也被执行。尤其在系统初始化时、但是也可以在运行中,这可以用作安全性方案的基本组成部分。
该构思的另一应用是在执行元件控制装置中分析模式信号。在汽车领域中的许多应用中,目前趋势是所谓的智能执行元件。这是具有最小电子线路规模的执行元件,该电子线路规模足以接收执行元件调节指令并且随后这样控制执行元件,使得该调节指令随后也被执行。
在图23中示出了基本构思。具有本发明的计算单元N400经由连接N420向(智能)执行元件或者执行元件控制装置N430给出调节指令。该计算单元并行地经由连接N410向该执行元件给出模式信号。执行元件N430根据该模式信号检验,控制装置是否被允许并且可选地通过信号N440返回故障状态。在控制装置有故障的情况下,执行元件采用在系统中不关键的故障沉默状态。

Claims (15)

1.用于在具有至少两个执行单元的计算机系统中进行转换的方法,其中在至少两种运行模式之间进行转换,并且第一运行模式对应于比较模式,而第二运行模式对应于性能模式,其中为执行单元设置至少一组所定义的位组合,其特征在于,通过至少一个在所述至少一组中没有被定义的位组合来触发所述转换。
2.按照权利要求1所述的方法,其特征在于,该组所定义的位组合包含所定义的位组合的指令集或者对应于该指令集,并且通过至少一个在该指令集中没有被定义的位组合(非法指令)来触发所述转换。
3.按照权利要求1所述的方法,其特征在于,该组所定义的位组合包含所定义的位组合的操作数集或者对应于该操作数集,并且通过至少一个在该操作数集中没有被定义的位组合(非法操作数)来触发所述转换。
4.按照权利要求1所述的方法,其特征在于,该组所定义的位组合包含所定义的位组合的操作集或者对应于该操作集,并且通过至少一个在该操作集中没有被定义的位组合(非法操作)来触发所述转换。
5.按照权利要求1所述的方法,其特征在于,在识别出在该组所定义的位组合中没有被定义的位组合之后进行转换,其中所述识别在单独的流水线级中进行。
6.按照权利要求1所述的方法,其特征在于,所述位组合对应于尤其是来自汇编程序的接近于机器的位组合。
7.按照权利要求1所述的方法,其特征在于,为第一执行单元设置第一组所定义的位组合,并且为至少一个第二执行单元设置至少第二组所定义的位组合。
8.按照权利要求1所述的方法,其特征在于,为每个执行单元设置特有的一组所定义的位组合。
9.按照权利要求6或者7所述的方法,其特征在于,只通过执行单元来触发所述转换,并且通过至少一个在被分配给触发所述转换的执行单元的该组位组合中没有被定义的位组合来触发所述转换。
10.按照权利要求1所述的方法,其特征在于,所述至少一个没有被定义的位组合用可预先给定的位组合来替换,其中通过所述至少一个没有被定义的位组合来触发所述转换。
11.按照权利要求10所述的方法,其特征在于,在单独的流水线级中进行替换。
12.按照权利要求5或者11所述的方法,其特征在于,所述单独的流水线级在流水线内被布置在表示位组合的解释或者实施的另一流水线级之前。
13.按照权利要求9所述的方法,其特征在于,可预先给定的位组合对应于中立的位组合,尤其是NOP指令,也即不进行操作的指令。
14.用于在具有至少两个执行单元的计算机系统中进行转换的设备,其中在至少两个运行模式之间进行转换,并且第一运行模式对应于比较模式,而第二运行模式对应于性能模式,其中为执行单元设置至少一组所定义的位组合,其特征在于,所述设备如此被构造,使得通过至少一个在所述至少一组中没有被定义的位组合来触发所述转换。
15.具有按照权利要求14所述的设备的计算机系统。
CNA200580036412XA 2004-10-25 2005-10-25 在具有至少两个执行单元的计算机系统中进行转换的方法和设备 Pending CN101048743A (zh)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
DE102004051992.7 2004-10-25
DE200410051952 DE102004051952A1 (de) 2004-10-25 2004-10-25 Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem
DE200410051950 DE102004051950A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem
DE102004051952.8 2004-10-25
DE200410051992 DE102004051992A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems
DE102004051937.4 2004-10-25
DE200410051937 DE102004051937A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem
DE200410051964 DE102004051964A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem
DE102004051964.1 2004-10-25
DE102004051950.1 2004-10-25
DE102005037223.6 2005-08-08
DE102005037223A DE102005037223A1 (de) 2004-10-25 2005-08-08 Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
PCT/EP2005/055506 WO2006045779A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur umschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten

Publications (1)

Publication Number Publication Date
CN101048743A true CN101048743A (zh) 2007-10-03

Family

ID=35871022

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200580036412XA Pending CN101048743A (zh) 2004-10-25 2005-10-25 在具有至少两个执行单元的计算机系统中进行转换的方法和设备

Country Status (6)

Country Link
EP (1) EP1807762A1 (zh)
JP (1) JP2008518340A (zh)
KR (1) KR20070062574A (zh)
CN (1) CN101048743A (zh)
DE (1) DE102005037223A1 (zh)
WO (1) WO2006045779A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006048169A1 (de) 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren zur Überwachung einer Funktionsfähigkeit einer Steuerung
US8543860B2 (en) 2008-08-26 2013-09-24 Freescale Semiconductor, Inc. Multi-core clocking system with interlocked ‘anti-freeze’ mechanism
CN102073565B (zh) * 2010-12-31 2014-02-19 华为技术有限公司 触发操作方法、多核分组调试方法、装置及系统
JP5617651B2 (ja) * 2011-01-18 2014-11-05 横河電機株式会社 通信装置及び制御装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8308149D0 (en) * 1983-03-24 1983-05-05 Int Computers Ltd Computer system
EP0978784A1 (en) * 1998-08-04 2000-02-09 Motorola, Inc. Method for coding computer programs and method for debugging coded computer programs
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore
DE10349581A1 (de) * 2003-10-24 2005-05-25 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit

Also Published As

Publication number Publication date
WO2006045779A1 (de) 2006-05-04
EP1807762A1 (de) 2007-07-18
JP2008518340A (ja) 2008-05-29
KR20070062574A (ko) 2007-06-15
DE102005037223A1 (de) 2007-02-15

Similar Documents

Publication Publication Date Title
CN101048750A (zh) 在具有至少两个执行单元的计算机系统中对程序代码的执行进行分离的方法和设备
CN101048730A (zh) 在具有至少两个执行单元的计算机系统中进行转换的方法和设备
CN101048744A (zh) 在具有多个组件的计算机系统中产生模式信号的方法和设备
CN101048752A (zh) 在拥有至少两个执行单元的计算机系统中切换的装置和方法
CN101120320A (zh) 在具有至少两个执行单元的计算机系统中进行模式转换的设备和方法
Makris et al. Dynamic and adaptive updates of non-quiescent subsystems in commodity operating system kernels
TW201823970A (zh) 可靠度提升系統和方法
JP2008518296A (ja) 少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする方法及び装置
CN101048757A (zh) 在拥有至少两个执行单元的计算机系统中切换的方法和装置
JP2009505183A (ja) 少なくとも2つの命令実行部および1つの比較ユニットを備えたコンピュータシステムを制御する方法および装置
US20070088979A1 (en) Hardware configurable CPU with high availability mode
CN1811724A (zh) 使用户程序的复制拷贝的执行点对齐的方法和系统
JP2008518299A (ja) 少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法および装置
JP2008518297A (ja) 少なくとも2つの実行ユニットを有する計算機システムで切替を行うための装置および方法
Engel et al. The reliable computing base–A paradigm for software-based reliability
CN101048746A (zh) 用于评价具有至少两个执行单元的计算机系统的信号的方法和设备
CN101048743A (zh) 在具有至少两个执行单元的计算机系统中进行转换的方法和设备
JP2008518300A (ja) 少なくとも2つの実行ユニットを備えるコンピュータシステムにおけるプログラムコードの処理分割方法および装置
Osinski et al. A survey of fault tolerance approaches on different architecture levels
Ferreira The transactional HW/SW stack for fault tolerant embedded computing
JP2006252548A (ja) 時間的冗長性を実施するための可変遅延命令
Rouf et al. Low-cost control flow protection via available redundancies in the microprocessor pipeline
JP2009506408A (ja) 複数の実行ユニットを有する計算機システム内のプロセスを分析する方法および装置
RU2384877C2 (ru) Способ и устройство для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов
Reif Fault tolerance in multi-core systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication