CN101048752A - 在拥有至少两个执行单元的计算机系统中切换的装置和方法 - Google Patents

在拥有至少两个执行单元的计算机系统中切换的装置和方法 Download PDF

Info

Publication number
CN101048752A
CN101048752A CNA2005800365300A CN200580036530A CN101048752A CN 101048752 A CN101048752 A CN 101048752A CN A2005800365300 A CNA2005800365300 A CN A2005800365300A CN 200580036530 A CN200580036530 A CN 200580036530A CN 101048752 A CN101048752 A CN 101048752A
Authority
CN
China
Prior art keywords
switching
mode
switch
signal
wish
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
CNA2005800365300A
Other languages
English (en)
Inventor
R·维伯勒
B·穆勒
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 DE200410051950 external-priority patent/DE102004051950A1/de
Priority claimed from DE200410051992 external-priority patent/DE102004051992A1/de
Priority claimed from DE200410051964 external-priority patent/DE102004051964A1/de
Priority claimed from DE200410051952 external-priority patent/DE102004051952A1/de
Priority claimed from DE200410051937 external-priority patent/DE102004051937A1/de
Priority claimed from DE200510037240 external-priority patent/DE102005037240A1/de
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN101048752A publication Critical patent/CN101048752A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant 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/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
    • 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
    • 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
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/187Voting techniques
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及在拥有至少两个执行单元的计算机系统中进行切换的装置和方法,其中设置一个在至少两个工作模式之间进行切换的切换器,其中,一个第一工作模式对应于一个比较模式而一个第二工作模式对应于一个性能模式,其中设有一个比较器,所述比较器在比较模式中被激活,其特征在于,设有用于识别切换意愿的装置,其中所述用于识别切换意愿的装置控制所述切换器以从一个工作模式向另一个工作模式切换。

Description

在拥有至少两个执行单元的计算机系统中切换的装置和方法
现有技术
由α粒子或者宇宙射线触发的暂态错误越来越对对集成半导体电路造成问题。由于结构宽度减少、电压降低和时钟频率升高,由α粒子或者宇宙射线引起的电压峰值在集成电路中造成逻辑值畸变的概率在上升。可能造成一个出错的计算结果。在安全性相关的系统中,特别是在汽车中,因此必须可靠地检测这样的错误。在安全性相关的系统,例如在于其中必须可靠地检测电子电路的错误功能的一辆汽车的一个ABS控制系统的情况下,在这样的系统的对应的控制装置中通常采用冗余进行出错识别。从而例如在公知的ABS系统中相应地加倍整个微控制器,其中冗余地计算全部ABS功能并且检验相符性。如果出现结果的偏差,就关闭所述ABS系统。
一个微控制器的重要部件在一个方面是存储器模块(例如RAM、ROM、超高速缓冲存储器),内核和输入/输出接口,所谓的外围设施(例如A/D转换器、CAN接口)。因为可以用检验码(奇偶检验码或者ECC)有效地监测存储器装置,并且往往应用特定地把外围设施作为一个传感器信号线路或者执行器信号线路的部分监测,进一步的冗余在于只加倍一个微控制器的内核。
这样的带有两个集成的内核的微控制器也公知为双核结构。这两个内核冗余地并且时钟同步地(锁步模式)执行同一个程序段,比较这两个内核的结果,并且然后在比较时在相符性上识别一个错误。这种一个双核系统的配置可以称为一个比较模式。
在其它的应用中双核结构还可以用于提高处理能力,也就是说提高性能。这两个内核执行不同的程序、程序段和命令,由此可以达到一种处理能力提高,因此可以把一个双核系统的这种配置称为一个性能模式。这种系统也可以称为一个对称的多处理器系统(SMP)。
这种系统的一个扩展是通过一个软件借助访问一个特定地址和专用硬件装置在这两个模式之间进行切换。在比较模式中把这两个内核的相互比较。在性能模式中这两个内核作为对称的多处理器系统(SMP)工作并且执行不同的程序、程序段或者命令。
在这样一种系统中重要的是识别一个模式切换的要求并且然后适当地控制一个切换器。因此本发明的技术问题是提供能够识别这种要求的方法和装置。
发明内容
有利地使用在有至少两个执行单元的一个计算机系统中进行切换的一种装置,其中设置一个在至少两个工作模式之间切换的切换器,其中,一个第一工作模式对应于一个比较模式而一个第二工作模式对应于一个性能模式,其中此外还设有一个比较器,所述比较器在比较模式中被激活,其特征在于,设有用于识别切换意愿的装置,其中所述用于识别切换意愿的装置控制所述切换器以从一个工作模式向另一个工作模式切换。
有利地采用一种装置,其中所述用于识别切换意愿的装置和切换器结合成所述计算机系统的一个部件,特别是结合成一个结构单元。
有利地采用一种装置,其中所述比较器和切换器结合成所述计算机系统的一个部件,特别是结合成一个结构单元。
有利地采用一种装置,其中所述用于识别切换意愿的装置和比较器结合成所述计算机系统的一个部件,特别是结合成一个结构单元。
有利地采用一种装置,其中所述比较器、用于识别切换意愿的装置和切换器结合成所述计算机系统的一个部件,特别是结合成一个结构单元。
有利地采用一种装置,其中在所述计算机系统中,在两个流水线中处理数据和指令,其中所述流水线按不同的级构成并且所述有利地采用一种装置,其中用于识别切换意愿的装置对应于一个自身的流水线级。
有利地使用在有至少两个执行单元的一个计算机系统中进行切换的一种方法,其中在至少两个工作模式之间切换并且一个第一工作模式对应于一个比较模式而一个第二工作模式对应于一个性能模式,其中比较模式中激活一个比较器其特征在于,设有一种切换意愿识别器和一个由所述切换意愿识别器控制的切换器以从一个工作模式向另一个工作模式切换。
有利地采用一种方法,其中所述用于识别切换意愿的装置产生一个切换信号,通过该切换信号触发一个通过切换器进行的切换。
有利地采用一种方法,其中所述比较器和所述用于识别切换意愿的装置作为切换和比较单元结合成所述计算机系统的一个部件,并且所述用于识别切换意愿的装置产生一个切换信号,通过该切换信号触发一个通过切换和比较单元进行的切换。
其它优点和有利的安排从权利要求书和说明书中所述的特征中得出。
附图说明
在图1中示出一个多处理器系统G60,所述多处理器系统带有两个执行单元G10a、G10b、一个比较单元G20、一个切换单元G50和一个用于识别切换意愿的单元G40。
在图2中示出一个多处理器系统G60,所述多处理器系统带有两个执行单元G10a、G10b、一个由一个比较单元G20和一个切换单元G50组成的组合的比较单元和切换单元G70,以及一个用于识别切换意愿的单元G40。
在图3中示出一个多处理器系统G60,所述多处理器系统带有两个执行单元G10a、G10b、一个由一个比较单元G20和一个切换单元G50以及一个用于识别切换意愿的单元G40组成的组合切换意愿识别、比较和切换单元G80。
在图4中示出一个多处理器系统G200,所述多处理器系统带有两个执行单元G210a、2G10b、和一个比较单元G260。
在图5中用一个流程图示出一种方法,所述方法在一个特定的流水线级G230a、G230b的内部交换一个带有一个NOP的特定的非定义的比特组合或者其它的中性比特组合。
在图6中示出一个多处理器系统H200,所述多处理器系统带有两个执行单元H210a、H210b和一个切换和比较单元H260。
在图7中用一个流程图示出一种方法,表示可以如何借助于单元ID在带有两个执行单元的一个多处理器系统中从一个比较模式向一个性能模式切换时对程序流进行分离。
在图8中示出一种可能的方法,表示可以如何借助于单元ID在带有三个执行单元的一个多处理器系统中从一个比较模式向一个性能模式切换时分离程序流。
在图9中用一个流程图示出一种方法,所述方法在从一个性能模式向一个比较模式切换的情况下对所述执行单元进行同步。
图10中示出一个状态自动机,所述状态自动机显示一个性能模式与一个比较模式之间的切换。
在图11中示出一个多处理器系统G400,所述多处理器系统带有两个执行单元以及两个中断控制器G420a、G420b、包括其内含的中断掩蔽寄存器G430a、G430b和各种中断源G440b至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转换器、通信控制器。所述多处理器系统可以用至少两个工作模式运行,即一个比较模式(VM)和一个性能模式(PM)。
在所述性能模式中,在不同的执行单元中并行地执行不同的命令、程序段或者程序。在该工作模式中比较单元G20失活。在此工作模式中如此地配置切换单元G50:使得每个执行单元G10a、G10b各与一个系统接口G30a、G30b连接。此外执行单元G10a与系统接口G30a连接而执行单元G10b与系统接口G30b连接。
在比较模式中这两个执行单元G10a、G10b处理相同的或者同样的命令、程序段或者程序。最好以时钟同步方式执行该命令,然而也可以设想以异步或者以一定的时钟错位方式执行。执行单元G10a、G10b的输出信号在一个比较器G20中比较。在出现不同时就识别一个错误并且可以采取对应的措施。这些措施可以触发一个出错信号、引入一个出错处理、操作切换器或者是这些措施和其它可设想的措施的一个组合。在一个变例中如此地配置所述切换单元G50:使得只有一个信号与所述系统接口G30a、G30b连接。在另一个配置中,所述切换单元只使得经过比较并从而相同的信号被连接到系统接口G30a、G30b。
所述用于识别切换意愿的单元G40与刚才激活的模式无关地检测向另一个模式的切换意愿。
在图2中示出带有由一个比较单元G20和一个所述切换单元G50以及一个用于识别切换意愿的单元G40组成的一个组合切换和比较单元G70的两个执行单元G10a、G10b的一个多处理器系统G60。
在上述事情的一个实施方式中,所述切换单元G50和所述比较单元G20可以综合成一个切换和比较单元(UVE)G70,如在图2中所示。该共同的部件G70承担单个部件G50、G20的任务。在图15、图16、图17、图18和图19中示出UVE G70的变例。
如在图3中所示,在另一个实施方式中,一个示出一个用于识别切换意愿的单元G40、比较单元G20和切换单元G50综合成一个共同的单元G80。在附图中未示的另一个实施方式中切换意愿识别单元G40和比较器G20综合成一个共同的部件。同样地可以设想切换意愿识别单元G40与切换单元G50综合成一个共同的部件。
在下文中如果没有另行说明,就从存在一个切换意愿识别单元G40和一个组合的切换和比较单元G70出发。
在图20中示出还适用于两个以上的执行单元的切换和比较部件的一个普遍情况。从n个要考虑的执行单元中向所述切换和比较部件N100发出n个信号N140、...、N14n。后者可以从这些输入信号中产生n个输出信号N160、...、N16n。在最简单的情况,即“纯性能模式”的情况,把所有的信号N14l输送到对应的输出信号N16i。在相反的极端情况下,即“纯粹的比较模式”的情况下,把所有的信号N144、...N14l都只引导到刚好一个输出信号N16i上。
用该图可以说明各种可设想的模式可以如何地出现。为此在该图中所述逻辑部件包含一个切换逻辑N110。该部件不必作为一个本身的部件存在。决定性的是它能够在一个系统实现所述的功能。首先该开关逻辑N110确定究竟有多少个输出信号。此外它还确定哪个输入信号对哪个输出信号起作用。在此可以一个输入信号刚好对一个输出信号起作用。用数学地形式另外表达也就是通过所述开关逻辑确定一个函数,所述函数对集合{N140、...、N14n}配属集合{N160、...、N16n}的一个元。
然后处理逻辑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,而它们在比较模式中全部都向一个输出端映射。作为可供选择的替代,还可以通过改变配对来实现这样的一种切换。这通过在一般的情况下不能够从之评论一个性能模式并且从而评论一个比较模式说明的,尽管在本发明的一个给定的表述中把允许的模式数限制成这样的一种情况。然而总是可以从一个性能模式向一个比较模式(反之亦然)说起。
通过软件控制,可以在运行中动态地在这些模式之间切换。在此,或者通过由多处理器系统的至少一个执行单元执行特定的切换指令、特定的指令序列、明确地标明的指令或者通过访问一定的地址触发所述切换。
出错切换逻辑N130采集例如由比较器产生的出错信号,并且可以任选地被动切换输出端N16i,其中它通过一个开关将其断开。
下面的实施例却主要地集中于两个执行单元的情况,用这种情况能够简单地表达大多数概念。
在模式之间的切换可以通过不同的方法编码。在一个可能的方法采用特定的切换命令,所述切换命令可以由用于识别切换意愿的单元G40检测。另一个用于编码切换的可能的方法是通过访问一个特定的存储器区域确定,再由用于识别切换意愿的单元G40检测所述存储器区域。另一个方法在所述用于识别切换意愿的单元G40中分析发送切换信令的外部信号。在下面说明一种利用处理器的现有命令句中没有使用的比特组合的方法。这种方法的特别的优点是,可以进一步地利用现有的开发环境(汇编程序、编译程序、连接程序、调试程序)。
在图4中示出一个多处理器系统G200,所述多处理器系统带有两个执行单元G210a、2G10b以及一个切换和比较单元G260。为了在一个比较模式与一个性能模式之间(以及相反地)切换,在所述汇编程序中利用所述至少两个执行单元G210a、G210b的没有定义的比特组合。以该意义中作为不确定的或者说未定义的比特组合理解为所有在命令句的说明中规定为未定义的或者非法的组合比特。这例如是非法算子、非法指令、非法运算。这些未定义的比特组合的普遍特征是,在执行这样一种比特组合的情况下,一个正常的执行单元或产生一个出错信号或显示出一个没有定义的行为。也就是表达一个通常的程序的语义不需要这些比特组合。
从而对于软件开发可以利用迄今的开发环境,譬如为单处理器系统提供的开发环境。例如这可以通过确定一个宏“SWITCH MODE TO PM”和一个宏“SWITCH MODE TO VM”实现,所述宏在代码中的适当位置对应地嵌入在以上定义的意义未定义的比特组合中。
这样的组合的应用于是一般定义为“SWITCH”宏。如果在所述系统中有两个以上的不同模式,为使用该方法必须有多个这样的组合,于是优选地可以每模式一个组合用于切换识别。
根据本发明通过一个在命令句中没有定义的比特组合对所述切换意愿进行编码。这应当在一个执行单元G210a、G210b的内部不按通常的方式处理。因此,提出一个附加的流水线级(REPLACE级)G230a、G230b,所述流水线级识别出对应的比特组合,并且所述比特组合由中性的比特组合替代以进一步处理。为此最适当的是利用“NOP”(NoOperation)命令。一个NOP命令的特征是,一直到指令指针为止,它不改变所述执行单元的内部状态。在此REPLACE级G230a、G230b在通常的第一级,即FETCH级G220a、G220b之后,并且在其余的流水线级G240a、G240b之前,嵌入在汇编程序中的没有定义的比特组合中。
根据本发明,如果识别出一个对应的切换的比特组合,一个分开的切换单元和比较单元G260发出信令:要进行处理模式的一个切换,那么在此所述的一个用于识别切换意愿的单元G40被实施为一个流水线单元G215a、G215b中的特定的流水线级G230a、G230b,产生一个附加的信号G250a、G250b。
REP级G230a、G230b优选地在FET G220a、G220b与其余的流水线级G240a、G240b之间安排在执行单元G210a、G210b的G215a、G215b中。所述REP级G230a、G230b在此识别对应的比特组合并且在此情况下向其余的流水线级G240a、G240b传达NOP命令。同时激活相应的信号G250a或者G250b。在所有另外的情况下,所述REP级G230a、G230b都采取中性的工作模式,就是说,所有其它的命令都不加改变地向所述其余的流水线级G240a、G240b传达。
在图5中用一个流程图示出一种方法,所述方法在一个特定的流水线级G230a、G230b的内部交换一个带有一个NOP特定的非定义的比特组合或者其它的中性比特组合。在FETCH级G300中从存储器中取出一个命令,就是说一个比特组合。然后在方框G310中判断所取出的比特组合是否对应于编码一个切换的特定的未定义的比特组合。如果不是这种情况,就在下一个步骤G320中把该比特组合不加改变地向其余的流水线级G340传输以进一步地处理。如果在步骤G310中识别编码一个切换的特定的比特组合,就在步骤G330中用所述NOP比特组合替代它并且然后向另一个流水线级G340传输以进一步处理。在一个有利的实施方式中方框G310、G320、G330代表根据本发明的REPLACE级G230a、G230b,其中它们还可以包含其它的功能。
在图6中示出一个多处理器系统H200,所述多处理器系统带有两个执行单元H210a、H210b和一个切换和比较单元H260。部件H220a、H220b、H240a、H240b有与G220a、G220b、G240a、G240b同样的含义。在用于识别切换意愿的单元G40的一个可供选择的替代实施方式中,在此是通过特定的流水线级H230a、230b说明的,该实施方式除了发送切换的信令的信号H250a、H250b之外还有其它的信号。为了在从性能模式切换至比较模式时能够使执行单元H210a、H210b同步,所述执行单元210a、H210b的流水线单元H215a、H215b各有一个信号输入端H280a、H280b,用之可以停止所述处理。所述信号由切换和比较单元H260为首先识别了一个切换错误并且然后用之激活信号H250a、250b的那个流水线单元H215a或者H215b建立。只有在这两个流水线单元H215a、215b识别了所述切换错误并且通过软件或者其它的硬件措施同步了其内部状态时,才重新取回所述信号H280a、H280b。在从比较模式向性能模式切换时不需要H280a、H280b,因为不需要同步。
在此说明的建议的前提是一个单元(称为ID单元)和一个方法,通过它们每个执行单元可以确定其各自的编号或者单元ID。在一个拥有两个执行单元的系统中例如一个执行单元可以确定编号0而另一个执行单元可以确定编号1。在拥有两个以上的执行单元的系统中,相应安排或者说确定所述编号。所述ID不是区分一个比较模式与一个性能模式而是标记执行单元。该ID单元可以包含在相应的执行单元中,例如可以实施成处理器的工作模式寄存器中的比特或者比特组合,或者实施成真正的寄存器或者实施成单个比特,或者实施成应请求提供一个对应ID的所述执行单元的外部单元。
在所述执行单元根据一个切换意愿执行了一个向性能模式的转换以后,尽管比较单元不再有活性,然而执行单元总是还执行相同的命令。其原因在于:标记在程序中执行工作在下一个步骤进行或者当前进行的位置的指令指针不受所述切换的影响。为了所述执行单元能够接着执行不同的SW模式,必须分离执行单元的程序流程。因此与此实情对应地在性能模式中指令指针一般具有不同的值,因为的确根据本发明处理独立的命令、程序段或者程序。在此说明的提议中,程序流的分离通过确定相应的执行单元编号进行。视一个执行单元的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或者执行单元编号的检索。在此例如执行单元0得到编号0,执行单元1得到编号1,并且执行单元2得到编号2。在H510中进行得到的执行单元编号与编号0的比较。如果它们相等,在步骤H520中为之进行了该比较的执行单元用执行单元0的代码继续。该比较对之不成功的执行单元在步骤H530以与编号1的比较继续。在该比较对之成功地进行的执行单元中,在H540中以执行单元1的代码继续。在该比较对之没有成功地进行的执行单元中,在H530中以与执行单元2的比较继续。在该比较对之成功地进行的执行单元中,在H536中以执行单元2的代码继续的代码继续。如果该比较没有成功地进行,就从而为对应的执行单元得出不等于0、1和2的一个执行单元编号。这代表一个出错情况并且以H550继续。作为与编号比较的可供选择的替代方案,还可以把查明的执行单元编号直接地用作一个转移表中的指数。
对应于此说明,所述方法还可以用于有多于三个执行单元的多处理器系统。
如果从性能模式向比较模式切换,就必须关注较多的事情。在从性能模式向比较模式切换的情况下必须确保:执行单元的内部状态在此切换以后相同,否则,如果不同的开始状态导致不同的输出,在比较模式中有可能识别成出错。这可以用硬件、用软件或者用所有三个的执行单元的一个组合进行。在此的前提是:在切换到比较模式中以后所有的执行单元执行同样的命令、程序或者程序段。此外,说明一种同步方法,如果所述比较模式的特征是处理完全相同的命令并且进行比特准确的比较,就可以使用所述同步方法。
在图9中用一个流程图示出一种方法,所述方法在从一个性能模式向一个比较模式切换的情况下同步所述执行单元。在步骤G600中最好禁止所有的中断。这不仅仅是重要的,因为必须为所述比较模式对应地重新编程所述中断控制器。还应当通过软件适配所述执行单元的内部状态。然而,如果在处理向比较模式的切换的过程中触发了一个中断,一个适配就不可能毫无困难地不增加开销地进行了。
步骤G610:如果这两个执行单元有分开的高速缓冲存储器,就还必须在所述切换以前适配高速缓冲存储器的内容,以防止,在比较模式中对于一个执行单元的地址出现Cache-Hit而对于另一个执行单元的地址出现Cache-Miss。如果这不是通过高速缓冲存储器硬件自动地进行,这例如就通过把所有的高速缓冲存储器线标记成无效的进行。这必须等得直到高速缓冲存储器(或者一些高速缓冲存储器)完全无效为止。在需要时,这通过在程序代码中的等候循环确保。这还可以通过其它的手段达到,决定性的是,在该步骤以后所述高速缓冲存储器处于相同的工作模式。
在步骤G620中清空执行单元的写缓冲器,从而在切换以后不发生仍然是源于性能模式的执行单元的活动。
在步骤G630中同步执行单元的流水线级的状态。为此在切换程序/切换命令之前执行一种适当数量的NOP(不操作)命令。所述NOP命令的数量取决于流水线级的结构。什么命令适于作为NOP命令也同样地是结构依从性的。如果所述执行单元具有一个指令高速缓冲存储器,就从而确保所述命令程序对准了一个高速缓冲存储器线的边界(对齐)。因为在执行该NOP以前所述指令高速缓冲存储器被标记成无效的,必须把这些NOP首先加载在所述高速缓冲存储器中。如果该命令程序在一个高速缓冲存储器线边界上开始,于是就在进行切换的命令之前结束从存储器(例如RAM/ROM/闪存)向高速缓冲存储器的数据转移。这与必须在确定所需要的NOP数量时考虑。
在步骤G640中实际地进行向比较模式切换的所述命令步骤。
在步骤G650中适配每个执行单元的各自寄存器文件的内容。为此在切换的前后用完全相同的内容加载所述寄存器。在此重要的是,切换以后,在向外转移寄存器内容并且从而在由比较单元比较之前,使所述执行单元的一个寄存器的内容完全相同。
在步骤G660中重新编程所述中断控制器,从而在所有连接在一起的执行单元中一个外部的中断信号触发相同的中断。
在步骤G67中重新释放所述中断。
如果从程序运行中不明确应当在什么时候向比较模式切换,就应当向参与的执行单元提供打算进行的切换的信息。为此优选地在属于相应的中断控制器中例如用SW起始一个中断。然后所述中断处理器引发上述序列的执行以进行联接。
图10中示出一个状态自动机,所述状态自动机显示一个性能模式与一个比较模式之间(反之亦然)的切换。由于“电源开”或者还有复位(软件或者硬件)造成的,系统起动时,通过过渡G800把系统G700置于状态G700。一般成立:在一个能够触发一个复位的没有定义事件以后,所述系统总是出于状态G700开始工作。能够触发一个复位的事件例如是外部的信号、供电电源的问题、或者使得一个进一步的工作不再有意义的出错事件。于其中以性能模式工作的,切换和比较单元G70的以及还有处理器系统G60的状态G700从而是该系统的缺省状态。如上所述,在所有的否则就采取没有定义的状态的情况下,都采取该缺省的状态G700。在此,通过硬件措施确保状态G700的缺省位置。例如可以把系统状态或者说切换和比较单元G60状态通过在一个寄存器中的比特组合或者通过一个双稳态触发器编码在一个寄存器中、在一个寄存器的一个比特中。然后由硬件确保在一个复位或者电源开以后总是采取状态G700。这通过例如把所述复位信号或者“电源开”信号输送到所述双稳态触发器或者所述寄存器的复位输入端或者设定输入端确保。
然后用硬件确保在复位或者开通电源以后总是取状态G700。这通过例如把复位信号或者“电源开”信号输送到双稳态触发器或者寄存器的复位输入端或者置位输入端确保。
在状态G700中,所述系统以一种性能模式工作。从而执行单元处理不同的命令、程序或者程序段。切换意愿例如可以通过一个执行单元G10a、G10b执行一个特定的切换命令识别。其它的可能性是一个识别通过一个特定的存储器地址、通过一个内部信号或者还通过一个外部的信号。只要不存在切换意愿,微处理器系统G60并且从而还有切换和比较单元G70就保持在状态G700中。此外,用切换意愿表示识别一种切换条件,所述切换条件有如同一个切换意愿在该特定的系统中的特征那样的特征。
保留在状态G700中用过渡G810示出。如果由执行单元G10a识别出一个切换意愿,然后就通过过渡820把切换和比较单元G70切换到状态G710。从而状态G710表示执行单元G10a识别了一个切换意愿并且等候直到执行单元G10b同样识别一个切换意愿。只要不是这种情况,切换和比较单元G70就保留在状态G710,这用过渡G830示出。
如果在状态G710中执行单元G10b同样识别一个切换意愿就进行过渡G840。从而切换和比较单元G70采取状态G730。该工作模式表明两个执行单元G10a、G10b都识别一个切换意愿的情况。在状态G730中进行所述同步方法,用之把两个执行单元G10a、G10b相互同步,以接着用比较模式工作。在此过程中,切换和比较单元G70保留在状态G730中,这用过渡G890表示。
如果在状态G700中首先由执行单元G10b识别出一个切换意愿,然后就通过过渡G860转换到状态G720。从而状态G720表示执行单元G10b识别了一个切换意愿并且等候直到执行单元G10a同样识别一个切换意愿。只要不是这种情况,切换和比较单元G70就保留在状态G720,这用过渡G870示出。如果在状态G720中执行单元G10a同样识别一个切换意愿就进行过渡G880。从而切换和比较单元G70采取状态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。在另一个变例中切换和比较单元G70可以监测执行单元G10a、G10b的状态并且自行识别,这两个执行单元G10a、G10b是否结束了其同步工作。在该识别以后就引入过渡G900。
只要没有识别到切换意愿,多处理器系统G60就保留在比较模式,这由过渡G910表示。如果在状态G70识别了一个切换意愿,就通过过渡G920把所述切换和比较单元置于状态G700。如上已述,该系统在状态G700以性能模式工作。在从状态G740向状态G700转移情况下程序流的分离可以如所说明的方法中那样进行。
在图11中示出一个多处理器系统G400,所述多处理器系统带有两个执行单元G410a、G410b以及两个中断控制器G420a、G420b、包括其内含的中断掩蔽寄存器G430a、G430b和各种中断源G440b至G440n。另外还表示带有一个特定的中断掩蔽寄存器G450的切换和比较单元G450。
有利地每个执行单元G410a、G410b都有其自身的中断控制器G420a、G420b,以能够在性能模式中同时地处理两个中断。这特别是在其中中断处理表示在系统性能中的一个出错的系统中是有利的。在此中断源G440a至G440n有利地相应同样地连接到两个中断控制器G420a、G420b上。这种连接方式使得:可以不需要其它措施地在这两个执行单元G410a、G410b地触发相同的中断。在性能模式中如此地编程中断控制器G420a、G420b,使得可以视应用而异适当地把相应的中断源G440a至G440b划分到不同的执行单元G410a、G410b上。这借助于适当编程中断掩蔽寄存器G430a、G430b进行。该掩蔽寄存器为每个中断源G440a至G440n规定在该寄存器中的一个比特。如果置该比特,禁止所述中断,也就是不把它转交到连接的执行单元G410a、G410b。有利地,在性能模式中,一定的中断源G440a至G440n由刚好一个执行单元G410a、G410b处理。有利地这至少对一些中断源适用。从而可以达到能够同时处理多个中断源G440a至G440b,而不需要进行一个中断嵌套(一个中断处理通过一个第二中断停止)或者中断推迟(第二个的处理推迟到第一个的处理结束)。
在比较模式中必须确保,在所有执行单元G410a、G410b上的中断控制器同时地触发同样的中断,不然就会,对应一个比较模式,识别成一个出错。这意味着:在从性能模式向比较模式切换的情况下在同步阶段中必须确保:中断掩蔽寄存器G430a、G430b完全相同。这种同步在图9中用步骤G660说明。该同步可以用软件进行,其中对应地用相同的值编程中断掩蔽寄存器G430a、G430b。本发明提出采用一个特定的寄存器G460,以加速切换过程。在一个实施方式中,该寄存器G460安排在切换和比较单元G460中,然而它也可以包含在切换意愿识别码G40中、在组合的切换意愿识别码中,在比较器中、在切换单元G80中以及在所有的组合中。同样可以设想,该寄存器在这三个部件之外安排在一个其它的适当位置上。寄存器G460包含应当在比较模式中起作用的中断掩蔽。切换和比较单元G450、从切换意愿识别G40得到一个从一个性能模式向一个比较模式切换的信号。在能够在步骤G600中禁止该中断以后,重新编程中断控制器G420a、G420b的中断掩蔽寄存器G430a、G430b。在此用切换和比较单元G450对其余的同步步骤并行地进行,然后得到切换信号并且禁止中断控制器G420a、G420b。有利地在比较模式中不单个重新编程中断掩蔽寄存器G430a、G430b而是总重新编程中央寄存器G460。这然后用同步地用硬件转移到两个中断掩蔽寄存器G430a、G430b。在此对一个中断掩蔽寄存器说明的方法可以以相同的方式移植到安排在一个中断控制器中的所有中断工作模式寄存器上。当然还可以设想,取代于一个寄存器G460可以使用从中能够尽可能快地转移中断掩蔽寄存器G430a、G430b的一个其它的存储器媒体。
在图12中示出一个多处理器系统G1000,所述多处理器系统带有两个执行单元G1010a、G1010b、一个切换和比较单元G1020和一个带有三个不同的寄存器组G1040a、G1040b、G1050的中断控制器G1030。作为上述方案的一个可供选择的替代,提出一个特定的中断控制器G1030,如在图12中所示。这用在一个多处理器系统G1000中,所述多处理器系统在此例中示出带有两个执行单元G1010a、G1010b以及一个可以在一个比较模式与一个能够模式之间切换的切换和比较单元G1020。在此,在性能模式中采用寄存器组G1040a、G1040b。在此情况下,中断控制器G1030与两个中断控制器G420a、G420b工作完全一样。该方法在图11中示出并且说明。在此寄存器1040a配属给执行单元G1010a而寄存器1040b配属给执行单元G1010b。中断源G1060a至1060n按掩蔽码适当地分配给执行单元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可以接收两个输入信号M510和M511。它比较这两个输入信号的相同性,在此处说明上下文中优选地是一个比特意义上的相同性。在相同的情况下把输入信号M510、M511给出成输出信号M520,并且不激活出错信号M530,就是说,它发出“良好”状态的信令。如果它检测出不相同,就激活信号M530。作为选择然后发出M520失活信令。其优点是,不表现对应系统得出的错误(“错误包含”)。这就是说,不由于潜在的错误信号干扰在该执行单元外部的其它部件。然而还有在其中不失活信号M520的系统。这是例如在系统层次上只要求出错沉默的情况。然后例如向外输出出错信号。
从该基本系统出发可以设想许多实施方式。首先可以把部件M500实施成所谓的TSC(完全自检)部件。在此情况下把出错信号M530用至少两个线路(“双轨”)向外输出,并且通过内部的设计和错误识别措施确保在每个可能的出错情况下,对所述比较部件该信号都是正确的或者可识别地不正确的。在此一个双轨的信号通过两个线路提供一个二进制信号,优选地是,在无错误地情况下这两个线路是彼此相反的。使用本发明所述系统时一个优选的变例是采用一个这样的TSC比较器。
一个第二类的实施方式可以以这两个输入M510、M511(或者M610、M611)必须有什么程度的同步相区别。一个可能的实施方式是以按时钟的同步为特征,就是说可以在一个时钟周期中进行数据的比较。
一个稍微的改变在于:在一个输入之间有一个固定的相位差的情况下采用一种同步的延迟元件,所述延迟元件把对应的信号例如延迟半数个时钟周期或者整数个时钟周期。这种相位差当然是为了避免共因(Common Cause)错误,也就是避免可能同时或者同样地影响多个处理单元的出错原因。
因此图14描述了另一个实施方式。部件和信号M600、M610、M611、M620、M630与图13中的对应部件和信号M500、M510、M511、M520、M530有相同的含义。除了这些部件以外在图14中添加了把较早的输入延迟所述相位差的部件M640。优选地该延迟元件放在比较器中,以只在比较模式中使用。为可供选择的替代方按或者作为补充,可以在输入链中加入缓冲器M650、M651,以同样地能够兼容不表现为时钟错开或者相位差的异步性。优选地把这种缓冲器设计成FIFO(先进先出)存储器。这样的比较器具有一个输入端和一个输出端并且可以存储多个存储器字。在输入一个新的存储器字时可以把一个进入的存储器字移位。在最后的位(缓冲器的深度)以后把它“从该存储器向外”推移。如果有一个这样的缓冲器,就还可以把异步性兼容到该缓冲器的最大深度。在此情况下只有在缓冲器溢出时才必须输出一个出错信号。
此外可以在比较器中按照如何产生信号M520(或者M620)来区分实施方式。一个优选的实施方式是:把输入信号M510(或者M620)加在输出端并且用开关可断开地进行该连接。该实施方式的一个特殊的优点在于:可以使用同一个开关在性能模式与可能是不同的比较模式之间进行切换。作为可供选择的替代方案,还可以从比较器内部的缓冲器产生信号。
最后一类实施方式的区别在于:在比较器上有多少个输出端以及所述比较器应当如何响应。在每三个输入端的情况下,可以进行一种多数性表决,亦即:比较所有三个信号或者仅比较两个信号。在四个或者更多的输入端的情况下,可以设想对应地更多的实施方式。这些可能的实施方式的一个详尽的描述包含在图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中却省去了表达出错信号或者还省去了比较部件的其它信号。如果这两个信号相符,就闭合开关M754,并且然后向地址/数据总线转交这两个相符的信号。总之是需要切换和比较单元M700能够影响开关M750-M754。相应的开关位置取决于所述模式和所述出错识别。以此还可以设想其中开关M754总是闭合并且适当的系统反应由出错信号产生的变例。
图17中示出切换和比较单元的一个变例。还是已经对于一个只带有两个执行单元G10a、G10b的最简单的系统有许多实施一个切换和比较单元的变例。另一个在比较器中不采用任何缓冲器时特别有利的变例示于图17中。如图15、图16中所示,有执行单元的信号M840、M841。后者在该图中没有示出。在根据本发明的部件M800中有一个给定所述部件的模式的模式逻辑M810。在性能模式中它闭合开关M831,而在比较模式中它开路该开关。此外它向比较器M820发出该模式信号。在该实施方式中,此比较器总是进行比较,但是利用该比较的结果和所述模式信号,以充分利用开关M830。在性能模式中总是闭合该开关,而在比较模式中如果没有错误时就总是闭合。当然还可以,在确定一个错误的情况下持续地保持该开关开路,直到出现一个对应的复位。
图18中示出切换和比较单元的另一个实施方式。该实施方式变通地,尽管有多个开关,却在性能模式中失效,并且因此还可以轻易地对付异步性。还是有执行单元的这两个信号M940、M941。后者还是在该图中没有示出。在根据本发明的部件M900中有一个给定所述部件的模式的模式逻辑M910。在性能模式中,它闭合开关M931并且使开关M932、M933开路。从而在该模式中不向所述比较部件输入数据。这在不同步的情况下允许较长的缓冲时间或者在一个实施中有很小的缓冲深度。在性能模式中总是闭合开关M930。在比较模式中,部件M910闭合开关M932、933并且通过开关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中有同样的含义。此外在该图中示出了模式150和出错信号N170。该任选的出错信号由集结出错信号的出错形状逻辑N130产生,并且或者是直接地转交单个出错信号或者是其中包含的出错信号的一个集束。模式信号N150是任选的,然而在许多位置其在该部件外部的应用中可能是有利的。开关逻辑N110(就是说在图20的说明中描述的功能)和处理逻辑(就是说,确定每个输出信号的比较运行,也就是每个函数值)的信息的组合是模式信息并且该信息确定模式。该信息在一般情况下当然是多值的,就是说不能够只通过一个逻辑比特表达。并非所有理论上可设想的模式在一个给定的实施方式中都是有意义的,优选地限制允许的模式的数量。于是模式信号表明相关的模式信息。优选地如此表达一个HW实施:使得能够配置外部可见的模式信号。优选地同样可配置地安排处理逻辑和开关逻辑。优选地相互谐调这些配置。作为可供选择的替代,也可以向外只发出或者补充地发出模式信号的改变。这特别地在一个双配置中是有利的。
最好保护该模式信号。在图19中示出例如在一个双系统中的实施方式的基于图17所述的实施方式。在此信号M850从切换和比较单元中引出。在一个双系统中该信息可以在逻辑上由一个比特表达。上述的保护最好通过一个双轨信号体现。在一般情况下可以同样地通过一个加倍,作为选择把它反向地进行保护。作为替代方案还可以产生一个奇偶位,所述奇偶位优选地内部自身发生,或者采用一个CRC(循环冗余检验)或者ECC(纠错码)。
可以在所述部件外部使用该模式信号。首先把它用于操作系统的自我监测。这是从SW层中对一个切换负责的,并且应当总是知道该系统处于什么模式,并且还应当把该系统带入所述模式。这可以首先直接进行。然而一个可供选择的可能性还是,通过时钟或者其它“独立”的单元用该信号在该操作系统中使一个请求合理。
一般可以把该信号任选地用于一个μc的其它数据阱(或者一般单计算元)中。例如可以如此地编程一个MPU(存储器保护单元):使之只在一定的模式中允许的存储器访问(由一定的执行单元)。在此一个MPU是一个可以确保只在数据/地址总线上进行允许的访问的单元,例如其中它对于一定的程序部分禁止对一定的地址空间的访问。通过把该模式信号引导到所述MPU上、该MPU的对应的配置,以及分析该配置数据和模式信号,可以进行一个附加的保护。如果该模式信号有足够的信息去检验,在一定的情况下甚至简化编程。于是一个准统计学的编程对μc的的初始化时间是足够的。对应地可以适用于外围单元。在此也有其中只在一定的模式中允许对对应的外围元件访问的应用。通过把所述模式信号输送到该外围元件、该外围元件的对应的配置和编程,可以进行一个附加的保护。如果该模式信号有足够的信息去检验,在一定的情况下甚至简化编程。于是一个准统计学的编程对μc的的初始化时间是足够的。类似地可以也在中断控制器上使用该信号的分析。于是,这样的监测就可以解决安全性概念的基础或者一个重要的组成部分。通过适当地执行和SW构成有可能对一个整个的出错类型在所考虑的应用中把安全性概念建立在该模式信号上。如果以一个适当的形式,如以上所述,保存所述模式信号这就是特别有利的。在此情况下,如果所考虑的部件检测到模式信号与对它的访问本身之间的一个不一致性的情况下,该所考虑的部分有发送一个出错信号或者实行一种线路断路的可能性是进一步有利的。
另一个重要的应用目的是在所述计算单元的外部使用该模式信号的分析。一个直接的应用是在一个递减看门狗中分析。一个这样的“看门狗”由至少一个(计数器-)寄存器组成,可以通过处理器把该寄存器置于一个整数。在设置该寄存器以后,所述“看门狗”按一个固定的周期自动地递减该寄存器的值。如果该寄存器的值是零,或者出现一个溢出,该“看门狗”产生一个出错信号。如果不应当产生该出错信号,微控制器就必须适时地重新复位该寄存器的值。从而可以(在边界上)检验该微控制器是否正确地执行了所述软件。如果微控制器不再正确地执行所述软件,就可以假定在该情况下也不再正确地操纵所述“看门狗”,并且从而由所述“看门狗”产生一个出错信号。硬件和数据结构的完善性可以可靠地用比较模式检验,然而为此必须确保,定期地所述微控制器重新返回到比较模式中。在此所述的“看门狗”的任务因此是:不仅当它在一个确定的时间空间内不再复位时产生一个出错信号,而还在所述微控制器在一个确定的时间内不同退回到一定的比较模式时也产生一个出错信号。例如只在模式信号显示计算单元的确定的比较模式时才能复位所述“看门狗”。从而确保定时地把所述计算单元退回到该模式中。作为可供选择的替换或者补充,只有在微控制器触发一定的中断时才递减该“看门狗”寄存器中的值。为此还必须把该μC的外部中断信号向所述看门狗耦连。在所述看门狗中存储在确定的比较模式中接通什么中断。所述“建立”该看门狗,只要出现一个这样的中断,就由于存在正确的模式信号而复位该看门狗。
完全普遍地,尤其应用在一个安全性概念上时,在一个μC外部源中分析该模式信号是有用的。保证在一个计算机上正确地运行该软件中的一个重要之处在于:如在本发明中所述说明地,是在不同的允许模式之间正确地切换。首先应当自行检验可切换性,优选地还检验正确的切换。如上所述,人们还对定时地采取一个特定的模式感兴趣。如果该模式信号自行安排一个这样的方法总是特别有利的。一种可能性是把模式信号向一个ASIC或者向另一个μC输送。这可以在采用该信号的条件下通过一个计时器和简单的逻辑至少检验以下的点:
所述计算单元是否足够经常地(例如最迟每1000μs)进入一个或者多个模式?
是否在切换成至一个模式时总是输出一个确定的信号?
计算单元是否定时从一个模式开始?
是否一定的简单模式对该模式的顺序有效?
是否一个一般时间的模式有效(例如在模式1中平均<70%并且在模式2中<50%)?
一定的情况下通过采用附加信号来补充模式信号在逻辑上、时间上的特性某一个组合。
在此图22中说明一个由此着手的建议的基本配置。其中在一个这样的伙伴ASIC或者伙伴μC与本发明具有的所考虑的单元之间进行一个特定的询问应答周期。N300是能够发送一个这样的模式信号的计算单元。这例如可以是一个带有多个执行单元和可以发生该模式信号的另一个部件的μC。例如,这可以如图19或者图21所示地实现所述另一个部件。N300向伙伴(例如另一个计算单元、另一个μC或者ASIC)N330输出该信号。所述伙伴可以通过信号N320向N300询问,让N300通过N321应答。这样一种询问可以是一种计算任务,其正确的结果通过N321由N300在一定的时间间期内提供。N330可以独立于N300检验该结果的正确性。例如可以自行考虑把该结果存储在N330或者N330。对所提出的询问应答通信特殊之处在于:与该应答同时关注模式信号。优选地如此地提出询问:为了通过N300应答必须采取一定的模式。从而能够可靠地检验所有的模式切换能力,并且还实施在程序运行中规定的模式切换。尤其在初始化一个系统时,当然也在运行中,这可以用作一个安全概念的重要组成部分。
该构思的另一个应用在一个执行器控制器中对模式信号进行分析。在汽车领域的许多应用中当前的一个倾向是所谓的智能执行器。它们是有一个最小的电子规模的执行器,所述执行器接收一个执行器设定命令,并且设计所述执行器使其也执行该设定命令。
该基本构思示于图23中。本发明具有的计算单元N400通过连接N420向一个(智能的)执行器或者一个执行器控制装置N430输出一个设定命令。并行地它通过连接N410向该执行器发出模式信号。执行器N430借助于该模式信号检验:是否允许所述控制并且可选地通过信号N440回输一个出错工作模式。在错误控制的情况下它采取在系统无关紧要的出错沉默工作模式。

Claims (9)

1、在拥有至少两个执行单元的计算机系统中进行切换的装置,其中设置一个在至少两个工作模式之间切换的切换器,其中,一个第一工作模式对应于一个比较模式;而一个第二工作模式对应于一个性能模式,其中还设有一个比较器,所述比较器在比较模式中被激活,
其特征在于,
设有用于识别切换意愿的装置,其中所述用于识别切换意愿的装置控制所述切换器以从一个工作模式向另一个工作模式进行切换。
2、根据权利要求1所述的方法,
其特征在于,
所述用于识别切换意愿的装置和所述切换器结合成所述计算机系统的一个部件,特别是结合成一个结构单元。
3、根据权利要求1所述的方法,
其特征在于,
所述比较器和所述切换器结合成所述计算机系统的一个部件,特别是结合成一个结构单元。
4、根据权利要求1所述的方法,
其特征在于,
所述用于识别切换意愿的装置和所述比较器结合成所述计算机系统的一个部件,特别是结合成一个结构单元。
5、根据权利要求1所述的方法,
其特征在于,
所述比较器、所述用于识别切换意愿的装置和所述切换器结合成所述计算机系统的一个部件,特别是结合成一个结构单元。
6、根据权利要求1所述的方法,
其特征在于,
在所述计算机系统中,数据和指令在两个流水线中进行处理,其中所述流水线按不同的级构成,并且所述用于识别切换意愿的装置对应于一个自身的流水线级。
7、在拥有至少两个执行单元的计算机系统中进行切换的方法,其中在至少两个工作模式之间切换;一个第一工作模式对应于一个比较模式;而一个第二工作模式对应于一个性能模式,其中在所述比较模式中激活一个比较器,
其特征在于,
设有切换意愿识别器和由该所述切换意愿识别器控制的切换器,以从一个工作模式切换到另一个工作模式。
8、根据权利要求1所述的方法,
其特征在于,
所述用于识别切换意愿的装置产生一个切换信号,通过该切换信号触发一个通过切换器进行的切换。
9、根据权利要求1所述的方法,
其特征在于,
所述比较器和所述用于识别切换意愿的装置作为切换和比较单元结合成所述计算机系统的一个部件,并且所述用于识别切换意愿的装置产生一个切换信号,通过该切换信号触发一个通过切换和比较单元进行的切换。
CNA2005800365300A 2004-10-25 2005-10-25 在拥有至少两个执行单元的计算机系统中切换的装置和方法 Pending CN101048752A (zh)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
DE102004051964.1 2004-10-25
DE200410051950 DE102004051950A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem
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
DE200410051964 DE102004051964A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem
DE200410051952 DE102004051952A1 (de) 2004-10-25 2004-10-25 Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem
DE102004051950.1 2004-10-25
DE102004051992.7 2004-10-25
DE200410051937 DE102004051937A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem
DE102004051952.8 2004-10-25
DE102005037224.4 2005-08-08
DE200510037240 DE102005037240A1 (de) 2005-08-08 2005-08-08 Verfahren und Vorrichtung zur Umschaltung und zum Datenvergleich bei einem Rechnersystem mit wenigstens drei Verarbeitungseinheiten
PCT/EP2005/055512 WO2006045785A1 (de) 2004-10-25 2005-10-25 VERFAHREN UND VORRICHTUNG ZUR MODUSUMSCHALTtMG UND ZUM SIGNALVERGLEICH BEI EINEM RECHNERSYSTEM MIT WENIGSTENS ZWEI VERARBEITUNGSEINHEITEN

Publications (1)

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

Family

ID=35660482

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA2005800365300A Pending CN101048752A (zh) 2004-10-25 2005-10-25 在拥有至少两个执行单元的计算机系统中切换的装置和方法
CNA2005800365495A Pending CN101048755A (zh) 2004-10-25 2005-10-25 在具有至少两个处理单元的计算机系统中进行模式转换和信号比较的方法和设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNA2005800365495A Pending CN101048755A (zh) 2004-10-25 2005-10-25 在具有至少两个处理单元的计算机系统中进行模式转换和信号比较的方法和设备

Country Status (6)

Country Link
US (1) US20080320340A1 (zh)
EP (1) EP1810149A1 (zh)
JP (1) JP2008518304A (zh)
KR (1) KR20070083732A (zh)
CN (2) CN101048752A (zh)
WO (1) WO2006045785A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111341169A (zh) * 2020-03-09 2020-06-26 湖南中昱智云物联科技有限公司 一种硬件链路智能切换装置及其方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005037233A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Datenverarbeitung
DE102006048169A1 (de) 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren zur Überwachung einer Funktionsfähigkeit einer Steuerung
DE102006050715A1 (de) * 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren und System zum Erzeugen eines gültigen Signals
JP5095344B2 (ja) * 2007-10-19 2012-12-12 本田技研工業株式会社 データ書き込み装置
JP5796311B2 (ja) 2011-03-15 2015-10-21 オムロン株式会社 制御装置およびシステムプログラム
JP5942625B2 (ja) * 2012-06-15 2016-06-29 株式会社デンソー 電子制御装置
DE102013202253A1 (de) * 2013-02-12 2014-08-14 Paravan Gmbh Schaltung zur Steuerung eines Beschleunigungs-, Brems- und Lenksystems eines Fahrzeugs
US9997265B2 (en) * 2015-03-27 2018-06-12 Mitsubishi Electric Power Products, Inc. Safety system for a nuclear power plant and method for operating the same
JP6718425B2 (ja) * 2017-11-17 2020-07-08 株式会社東芝 情報処理装置、情報処理方法及び情報処理プログラム
EP4266175A1 (de) * 2022-04-22 2023-10-25 Siemens Mobility GmbH Verfahren zum rechnergestützten betreiben einer speichereinheit und ausführen von applikationsprogrammen mit speicherüberprüfung auf speicherfehler

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3783250A (en) * 1972-02-25 1974-01-01 Nasa Adaptive voting computer system
US4330826A (en) * 1980-02-05 1982-05-18 The Bendix Corporation Synchronizer and synchronization system for a multiple computer system
US4774709A (en) * 1986-10-02 1988-09-27 United Technologies Corporation Symmetrization for redundant channels
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
FR2803057B1 (fr) * 1999-12-22 2002-11-29 Centre Nat Etd Spatiales Systeme informatique tolerant aux erreurs transitoires et procede de gestion dans un tel systeme
DE10136335B4 (de) * 2001-07-26 2007-03-22 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111341169A (zh) * 2020-03-09 2020-06-26 湖南中昱智云物联科技有限公司 一种硬件链路智能切换装置及其方法

Also Published As

Publication number Publication date
EP1810149A1 (de) 2007-07-25
KR20070083732A (ko) 2007-08-24
US20080320340A1 (en) 2008-12-25
WO2006045785A1 (de) 2006-05-04
CN101048755A (zh) 2007-10-03
JP2008518304A (ja) 2008-05-29

Similar Documents

Publication Publication Date Title
CN101048752A (zh) 在拥有至少两个执行单元的计算机系统中切换的装置和方法
CN101048744A (zh) 在具有多个组件的计算机系统中产生模式信号的方法和设备
CN101048750A (zh) 在具有至少两个执行单元的计算机系统中对程序代码的执行进行分离的方法和设备
CN101048757A (zh) 在拥有至少两个执行单元的计算机系统中切换的方法和装置
CN101048730A (zh) 在具有至少两个执行单元的计算机系统中进行转换的方法和设备
JP2008518339A (ja) 少なくとも2つの実施ユニットを有する計算機において切り替える装置および方法
Leem et al. ERSA: Error resilient system architecture for probabilistic applications
KR20070083760A (ko) 적어도 2개의 실행 유닛을 구비한 컴퓨터 시스템에서전환을 위한 방법 및 장치
CN101048753A (zh) 在拥有至少两个执行单元的计算机系统中切换的方法和装置
JP2008518299A (ja) 少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法および装置
JP2008518297A (ja) 少なくとも2つの実行ユニットを有する計算機システムで切替を行うための装置および方法
US20070088979A1 (en) Hardware configurable CPU with high availability mode
KR20070062576A (ko) 적어도 2개의 실행 유닛을 포함하는 컴퓨터 시스템에서프로그램 코드로부터 처리를 분리하기 위한 방법 및 장치
CN101048743A (zh) 在具有至少两个执行单元的计算机系统中进行转换的方法和设备
US20100017579A1 (en) Program-Controlled Unit and Method for Operating Same
Alhakeem et al. A framework for adaptive software-based reliability in COTS many-core processors
US20110208948A1 (en) Reading to and writing from peripherals with temporally separated redundant processor execution
US20070067677A1 (en) Program-controlled unit and method
RU2384877C2 (ru) Способ и устройство для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов
JP2009506408A (ja) 複数の実行ユニットを有する計算機システム内のプロセスを分析する方法および装置

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