CN1871581A - 在处理器的至少两个工作模式之间切换的方法和装置 - Google Patents

在处理器的至少两个工作模式之间切换的方法和装置 Download PDF

Info

Publication number
CN1871581A
CN1871581A CNA2004800312544A CN200480031254A CN1871581A CN 1871581 A CN1871581 A CN 1871581A CN A2004800312544 A CNA2004800312544 A CN A2004800312544A CN 200480031254 A CN200480031254 A CN 200480031254A CN 1871581 A CN1871581 A CN 1871581A
Authority
CN
China
Prior art keywords
mode
identification code
program
unit
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
CNA2004800312544A
Other languages
English (en)
Inventor
R·韦伯勒
T·科特克
A·施泰宁格尔
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
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN1871581A publication Critical patent/CN1871581A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Hardware Redundancy (AREA)
  • Storage Device Security (AREA)

Abstract

在用于执行程序(P1、P2、P3)的带有至少两个执行单元(AKUA、ALUB)的处理器单元(100、101)的至少两个工作模式(SM、LM)之间进行切换的方法和装置,其中,至少向所述程序(P1、P2、P3)配属至少一个识别码(K2),所述识别码使得能够在至少两个工作模式(SM、LM)中进行区分,并且依据所述识别码(K1-K4、KB)在工作模式之间切换,从而所述处理器单元(100、101)对应于所配属的工作模式执行程序(P1、P2、P3)。

Description

在处理器的至少两个工作模式之间切换的方法和装置
现有技术
本发明的出发点是在根据独立权利要求的前序部分所述的处理器的至少两个工作模式之间切换的方法和装置以及对应的处理器单元,所述处理器单元带有至少两个用于执行程序的执行单元。
这种带有至少两个集成的执行单元的处理器单元也公知为双芯结构或者说多芯结构。根据现有技术,主要出于两个原因提出这样的双芯结构或者说多芯结构:
在一个方面从而可以提升性能,也就是达到一种性能的提高,其中把所述两个执行单元或者说芯看作在一个半导体装置上的两个计算单元。在这样的配置中两个执行单元或者说芯执行对应不同的任务对应程序。由此达到一种性能提高,因此这种配置称为性能模件或者说性能模块。
除了用作超级标量处理器以外,第二个原因是实现一种提高安全性的双芯结构或者说多芯结构,其中两个执行单元冗余地执行相同的程序。比较这两个执行单元的结果,然后通过比较相符性识别出错。下面把这种配置称为安全性模式或者安全模式。
一般地这两个所述的配置唯一地只包含双芯或者多芯配置,就是说,有至少两个执行单元的计算机原则上只用一个模式工作:要么是性能模式要么是安全模式。
这样本发明的任务是,使这样的双芯或者多芯处理器单元在至少两个工作方式方面能够有一种组合的工作,并且从而达到在至少两个工作模式之间的一种优化的切换策略,也就是特别地达到在安全模式和性能模式之间的一种优化的切换策略。
发明的优点
在一个方面出于安全性原因希望一种对应任务程序的冗余实施,还有任务程序、程序部分,也就是代码字组或者还有单个指令的冗余实施,而在另一个方面出于成本的原因不值得去追求在实施非严格安全性功能时让全部冗余的硬件随时待命。这种目标冲突根据本发明通过一种在一个处理器单元中至少两个工作模式之间的优化切换得以解决。从而本发明涉及在一个带有至少两个执行单元的处理器单元的至少两个工作模式之间切换的方法和一种装置以及对应的处理器单元。在此所述处理器单元可以在一个方面是完整的芯,也就是完整的CPU,然而在一个优选的实施例中只把运算器加倍。其优点是:如果只加倍运算器(ALU),而通过其它的出错检测机构使CPU的其它部件工作安全,所要考虑到的电路就附加地比完全双芯结构需要的芯片面积少。虽然用根据本发明的方法可以同样地对于双CPU或者说双ALU用安全模式达到一种足够的出错防护,但是在非安全性相关的计算时用性能模式达到明显的性能提高。也就是,本发明从在带有至少两个执行单元用于执行程序的一个处理器单元的两个工作模式之间的切换的一种方法和一种装置着手,在此有利的方式是给所述程序配属至少一个识别码,所述识别码使得能够在至少两个工作模式中进行区分,也就是特别地能够至少区分安全模式和性能模式,并且根据所述识别码进行工作模式之间的切换,从而,处理器单元对应于配属的工作模式执行所述程序。
在此,术语程序还包含程序部分,也就是代码字组,所述代码字组经多个程序完整地扩展或者经任务程序以增加方式扩展直到对之分别配属了一个识别码的一个单元的程序指令,所述程序指令包含在单个的程序中或者由所述程序构成。
在此,这样的单个工作模式之间切换用的识别码配属可以用在功能层面上,特别是用在车辆的运行流程的控制上。另一个方面还可以以有利的方式把从属于处理器单元的一个操作系统或者表现该操作系统的程序或者对应的任务程序、程序部分或者程序指令通过这样的识别码配属给对应的工作模式。
以适当的方式,在执行程序时按照相符性比较在此出现的状态或者结果,由此在偏离时识别为出错。
在此,同步地执行所述程序是适当的。
以有利的方式所述识别码至少构成一个比特,在此以适当的方式通过一个程序指令,特别是通过一个设置在处理器单元的指令组中的指令,例如写指令,产生一个这样的识别码。
该识别码一方面可以配属给对应的程序、程序部分、实施程序或者程序指令,然而也可以存储在一个专门的,预设的存储区中。
从而可以依据所述识别码在两个工作模式之间,特别是在一个双芯结构或者在一个只双倍运算器的结构也就是一个双ALU的性能模式和安全模式之间进行优化的切换。
其它的优点和有利的扩展在具体实施方式说明和权利要求的特征中给出。
附图说明
下面参照附图详细地说明本发明。
其中,图1和图2分别示出一个带有可以实施根据本发明的切换带有加倍的运算器的处理器单元。
图3示出从安全模式切换成性能模式而图4示出从性能模式切换成安全模式。
图5借助于多个代码行500示出对程序、程序部分、任务程序或者指令的识别码配属。
实施例说明
在图1和图2中除非另有说明相同的以及功能相同的元件用相同的标号指代。为了表达清楚,根据本发明的受程序控制的单元以及其部件,譬如微控制器(CPU)、存储器单元、外围单元等等在图1和图2中没有直接示出。然而,在本发明的范畴内两个运算器ALU A和ALU B同样地可以对应于完整的芯,也就是CPU,从而本发明也可以用于完整的双芯结构。但是,优选的是,只加倍运算器,而CPU的其它部件通过其它的出错检测机构得到保障。
在图1和图2中用标号1和标号2相应地指代作为执行单元的算法逻辑单元(ALU)。各个ALU单元1、2具有两个输入端和一个输出端。在一个检测运行中为实施设置的操作数(Operand)可以直接地从总线3耦连到ALU单元1、2的输入端,或者在此前寄存在专门为此设置的操作数寄存器8、9中。这些操作数寄存器8、9直接与数据总线3。也就是从相同的操作数寄存器8、9供给这两个ALU单元。附加地可以规定,各操作数已经经过总线备有寄存在寄存区域8a、9a中的ECC编码。在图1和图2所示的其中指出了ECC的所有位置上可以通过使用一种ECC代码(纠错代码)对数据加以保障。这样的出错识别是多种多样的,其中基本前提表明用一种出错识别码或者说纠错代码安全性,也就是用一种特征标记,表现安全性。在最简单的情况下,这种特征标记只由一个特征标记比特组成,例如由一个奇偶性比特组成。其它方面上述的保障还可以通过复杂的ED代码(出错检测),譬如一个贝尔格(Berger)代码或者一个博斯林代码等等实现,或者还通过一种复杂的ECC代码,譬如一个汉明代码等等实现,以能够通过对应的比特数有一个较安全的出错识别。然而还可以采用代码发生器,例如一个发生器列表(固定地布线或者用软件),以在地址的范围内对所述比特的确定的输入样式配属一个所希望的任意长的代码样式。从而能够,特别是通过纠错功能保证数据安全性。尽管如此,在安全紧要的模式中,也就是在安全模式SM中在两个执行单元中还进行安全紧要程序的一种冗余的执行,在此两个执行单元也就是两个ALU1和ALU2,由此根据本发明在它们中通过比较相符性发现出错。
非安全性相关的或者说非安全性紧要的程序或者任务对应的程序部分或者代码字组或者指令可以分布在两个执行单元中计算,由此提高执行量并且从而提高性能。这用所谓的性能模式或者性能模式LM进行。
相应的操作数耦连进ALU单元1、2必须特别注重放在正确的数据输入端上。例如,如果把同样出错的操作数耦连进两个ALU单元1、2中,在ALU单元1、2的输出端就不能够识别出错。因此必须保证至少ALU单元1或2之一得到正确的数据输入值,或者还可以两个ALU单元1、2得到不同的、尽管是错误的数据输入值。由此保证,至少一个ALU单元1、2的一个输入值构成一个检验和数,也就是一个ECC代码,如前所述。在一个专门设置的比较单元5、6中把所述附加的数据寄存器10、11中发出的ECC编码10a、11a与原来的源寄存器8、9中发出的ECC编码8a、9a比较。可选择地,还可以把寄存器10、11发出的输入数据与源寄存器8、9发出的输入数据比较。如果在ECC编码或者说在操作数中出现差别,就把这解释为出错并且输出一个出错信号,在一定的情况下加以显示,或者在一定的情况下加以校正。所述比较以有利的方式在ALU1、2中执行运算数的过程中进行,从而在输入方近乎无性能损失地发生输入方的出错识别和出错校正。如果比较单元5、6识别出一个出错,就可以在下一个周期内重复运算。在此可以使用一个阴影寄存器(Schattenregister),以总能够存放最后计算的操作数,从而可以在出错的情况下快速地重新提供该操作数。然而,如果各操作数寄存器10、11只在没有出错的基础上才通过释放信号重新写入的话,就可以不提供这样的阴影寄存器。在出错的情况下,比较单元5、6发出一个出错信号,由此不重写操作数寄存器10、11。
ALU单元1、2在输出方分别产生一个结果。由ALU单元1、2提供的结果数据或者说ECC编码存放在结果寄存器12、13、12a、13a中。这些结果数据和/或编码在比较单元14中相互比较。在不存在出错的情况下产生一个释放信号16。该释放信号被耦连进释放装置15中,为此启动所述释放装置:使得把结果数据写到总线4上。通过总线4可以重新执行该结果数据。
此外,释放信号16还可以用于重新释放寄存器8至11,从而可以从总线3读取并且能够在ALU1、2中执行后面的操作数。
在图1所示的安排中不检验结果。在此只在比较单元14中相互比较结果数据。只有通过图2的安排才能检验结果数据的ECC编码,其中不论是结果数据还是其ECC编码都在比较单元14中相互比较。
用图1和图2所示的出错识别安排可以识别所有的瞬时出错、永久出错以至于相位延迟误差。如果结果不到达或者滞后到达比较单元12并且从而进行与一个部分结果比较,就识别在一个ALU单元1、2内部的相位延迟误差。通过用出错识别码和出错校正代码并且比较最终结果保障操作数寄存器8、9、10、11准确地定位相应的出错位置和出错时刻。从而可以对瞬时干扰快速反应。
在此得出以下的出错定位可能性:
如果在比较单元14中的一个结果数据比较得出一个差别,就可以推断一个在ALU单元1、2内部的出错。
如果在比较单元5、6中的一个结果数据比较得出一个差别,就可以确定一个来自总线3或者前置部件的出错信号。
如果在比较单元14中的一个ECC编码比较得出一个差别,就可以推断一个结果的出错的编码。
一个切换装置UE17用作在所谓的安全模式与性能模式之间进行切换,在所述安全模式中进行一种冗余执行和检验,而在性能模式中通过分开执行达到性能的提高。通过所述切换装置17如此地连接元件8、9和1、2:使得在一种情况下,也就是在安全模式SM中进行一种冗余的程序执行,特别是同步的程序执行,而在第二运行模式,性能模式中可以执行不同程序的并行执行。为此可以设置开关或者开关装置,所述开关或者开关装置一方面可以置于元件8、9对应的元件1、2中或者也可以置于切换装置17中,或者与元件8、9、1、2或者17分开附加地含在电路中。
为了切换,通过一个识别码进行程序或者任务程序或者程序部分,也就是代码字组或者还有指令的标记,通过所述识别码可以识别它们是安全性相关的,即必须用安全模式SM执行的,还是允许用性能模式执行的。这可以通过指令中的一个比特进行,或者可以通过一个特定的指令标识后续的序列。这将借助于图5中的不同标识可能性再一次详细地说明。
在此所述程序一个方面可以包含应用功能,也就是例如特别是用在车辆中控制操作过程,但是也可以相关于其中进行操作系统层面上的识别的程序进行切换,也就是例如整个工作系统任务的一种配属。
在解码时切换装置17识别这时接着的计算是否安全性相关的,也就是是否应当用安全模式执行。如果是安全性相关的,就向两个执行单元1、2都传输数据。如果不是安全性相关的,就用性能模式进行执行,从而一个执行单元得到提供的数据,并且如果下一个指令同样不是安全性相关的,就可以同时把下一个指令给第二个执行单元,从而以较高的吞吐量平行地执行程序。
在第一种情况下例如结果的计算在两个单元的同步执行中持续相同的时长。也就是,在用安全模式同步执行时相同时间地准备结果。这时在输出端12和13相应地把这些数据重新设置一个编码,并且如图1和图2所示在Result A和Result B处比较所述数据和或所述数据的编码,如果它们相符,就释放所述数据;不然就进行一个与之相关的反应。在第二种情况下,也就是在性能模式LM中,如果并行地执行数据,就不操纵两个运算器的输出端的比较器14,并且相继地把Result A和Result B重新写入进寄存器阵列,并且还可以相继地输出,譬如在超级标量处理器中就是这样的情况。
下面再次参照图3和图4说明该根据本发明的切换过程。在此图3示出从安全模式切换到性能模式而图4示出从性能模式切换到安全模式。
为了从第一工作模式,在此也就是安全模式SM,达到第二工作工作模式,在此也就是性能模式或者说Performancemode,要求一个识别码(Kennung)和一个对应的切换。这在图3中再一次示出。在方框300中执行单元1在第二工作模式中,也就是在性能模式中。同样地在方框310中第二执行单元2也在性能模式中。均匀地通过例如构成为解码部件的切换装置17来控制或者切换元件8和9,所述切换装置各自含有一个这样的解码部件。方框321中这时对应于相应的执行单元1或2确定至少一个识别码,通过所述识别码在方框330中由两个执行单元进行向第一工作模式,即安全模式SM的切换。由此这两个支路经方框8和9运转并且执行单元1和2重新冗余地并且特别地对由识别码标记的安全性相关程序同步地运转,从而重新有了安全模式SM。在此,在性能模式的一个程序运转中,也就是在一个支路中,存在有一个切换的识别就足以把两个执行单元引入安全模式。在此必须在一定的条件下还执行另一个执行单元的已经开始了的执行工作,以使两者然后都能够用安全模式进一步执行。另一个方面还提出,立即转换成安全模式并且在一个后续的性能模式时把开始的程序从中断位置开始继续执行。
为了从第一工作模式,在此也就是安全模式抵达第二工作模式,即性能模式,这时对应图4同样地采用一个识别码。在方框200中两个执行单元1和2以及对应地有方框8和9的支路,也就是操作数连接在安全模式中,也就是第一模式。在问询方框210检验:是否有一个切换识别码,对应地是否一个存在的识别码使之能够进行向性能模式的切换。如果不是这种情况,也就是说没有识别码,或者识别码指示继续安全模式,就重新返回方框200,并且继续用安全模式执行程序。如果有一个识别码相应地指示切换,在方框220中进行切换或者说变换到第二工作模式,即性能模式或者说性能模式。因为在安全模式中并行地,也就是说冗余地执行同一程序,在此只有在性能模式中的两个支路,也就是方框8和ALU1以及方框9及ALU2,基于识别码都规定一次切换时才进行一次切换。如果进行一次完全同步的执行,也就是时间相同地执行程序,不言而喻地出现这种情况,如果进行不同步的执行,较快的执行单元必须等待滞后的执行单元,从而只在在两个识别码都存在或者被分析时切换装置17才切换。这样一种同步性必须也对如方框12、13和14或者方框12a和13a所示的结果比较或者ECC测验结果比较,要么通过时间相同性产生,要么通过等待产生。
从而然后在方框230中第一支路,也就是方框8和执行单元1重新在性能模式中,并且在方框232中第二支路,也就是方框9和执行单元2重新在性能模式中,由此执行根据本发明的切换。
从而根据本发明对应于任务产生在一个带有两个集成的执行单元的两个工作模式之间的优化的切换,在此可以对应于图5以不同的方式和方法把所述识别码嵌入或者定位在程序片段或者数据行片段中。下面我们把图5中的行称为程序行,在此程序行和数据行可以有任意的组合。
从而在图5中举例地示出程序P1(行Z1至行Z6)、P2(行Z7至行Z15)、P3(行Z16至行19)。用AP示出一个例如作为一个程序P1的部分的任务程序,在此还可以是多个程序,例如P1和P2,一起构成一个任务程序。用CB示出一个代码字组,也就是一个程序部分,所述程序部分例如包含两个程序的行,在此是程序P2和P3的Z14至18。同样地一个这样的代码字组也可以是一个程序部分,只是一个程序的部分。此外用PB3对应行Z19示出一个程序指令。用行ZS1和ZS2示出一个专用存储器区域SSB,该存储器区域作为预先规定的存储器区域包含一个这样的识别码,在此是KB。此外,用K1、K2、K3和K4以及KB表示考虑根据本发明的方法的各种可能性的各种识别码。在使用识别码方面,现在有各种可能性:一个方面可以规定为基本执行模式,也就是规定成安全模式的冗余模式(同样当然可以设置成性能模式)。在存在一个识别码时就相应地切换成性能模式(或者相反地切换成安全模式)。另一个方面,根据本发明还可以规定,原则上必须存在一个识别码,并且从所述识别码的内容,也就是特别地从其比特值,推断对应的模式。在此例如把一个比特值1(或者还可以是一个其它的值,特别是显值)配属给安全模式SM并且把比特值0(或者还可以是一个其它的值,特别是隐值)配属给性能模式。对显和隐方面的考虑使得,在一个出错或者故障时一般地用显值并且从而调节成安全模式。对应地行Z4这时有一个比特值B1的识别码,也就是说存在K1/B1,这例如指示,在程序P1中的行Z4至Z6的任务程序可以用性能模式执行,尽管例如程序必须用安全模式执行。如同识别码K1、K2和K3看上去那样,它们可以是不同长度的,从而例如在识别码K2中根据行7由3个比特B1至B3形成识别码,从而在一个方面用比特B1在K2中决定安全模式或者性能模式,并且例如比特B2和B3指出对该模式,例如安全模式,有效的行数,从而,整个程序P2,或者也可以只是其一部分,用安全模式执行。同样地,可以把在此用CB表示的代码字组,也就是例如不包含整个任务。即不产生任务程序的程序部分通过一个识别码配属给一个模式。在此除了用比特B1至B3指示工作模式配属以外,例如还用K3中的比特B3和B3指示一个起始行或者地址并且用K3中的比特B4和B5指示结束行或者结束地址,从而一个特定的区域用一个对应地配属的工作模式执行。一个这样的识别码配属根据K4还可以在行19中的单个指令处进行,或者还可以在每个指令处进行。如图所示,还可以把该识别码配属给完整的程序或者任务程序AP或者程序部分CB,也可以配属给单个程序指令PB,在此是然后通过切换装置17触发一个对应的切换的程序指令PB3。通过在方框210中,或者还有在方框320和321中的问询检验一个这样的识别码K1至K4或者KB,对应于其内容进行切换。在此,如图中所示,所述识别码至少构成为一个比特,然而也可以包含多个比特,在一个方面这取决于不同的工作模式数量,而在另一个方面由附加信息,譬如行数一个开始地址或者结束地址决定。
在一个特定的实施方式中,可以规定至少一个程序指令,在此是PB1、PB2或者还有PB3,所述程序指令首先产生一个指示用第一还是第二工作模式执行的识别码。在此可以把所述识别码存储在一个确定的存储器区域SSB中,譬如在此用ZS2中的KB所示。该区域SSB可以集成在一个寄存器中、集成在一个储存在CPU中的存储器中,然而也可以处在一个对之在外部的存储器中。在此可以把一个特定的指令,例如PB3规定为产生该识别码KB的指令,然而也可以有一个已经在处理器单元的指令组中的指令。从而作为特定的指令例如也可以实施一个指令“产生识别码”,然而可以追溯到一个在处理器指令组中已有的指令,特别是一个写指令,如在此通过PB1和PB2所示地那样,从而在Z9中写指令向存储器区域KB中写入比特值0,这由识别码KB0表示,从而,只在是识别3符KB0,所有后续的行例如,就都用安全模式执行。用同一指令然后可以在Z12中在PB2处通过WR(KB:1)对值1的识别码输入进该存储区域中,从而从该时刻起后续的行,例如,用性能模式执行。通过简单的识别码产生指令,特别是一个简单的写指令WR然后例如可以在一个特定的存储区域中产生一个对应的切换识别码KB,所述特定的存储区域被定期地查询。
在此表现出许多根据本发明的在一个两个执行单元的处理器单元中根据一个识别码执行工作模式切换的可能性。从而可以达到所述的本发明的优点。

Claims (18)

1、在用于执行程序(P1、P2、P3)的带有至少两个执行单元(ALUA、ALUB)的处理器单元(100、101)的至少两个工作模式(LM、SM)之间切换的方法,其特征在于,
至少向所述程序(P1、P2、P3)配属至少一个识别码(K2),所述识别码使得能够在至少两个工作模式(SM、LM)中进行区分,并且依据所述识别码(K1-K4、KB)进行所述工作模式之间的切换,从而,处理器单元(100、101)对应于所配属的工作模式执行所述程序(P1、P2、P3)。
2、根据权利要求1所述的方法,其特征在于,所述程序(P1、P2、P3)包含任务程序(AP)或者构成所述任务程序(AP),并且对各个任务程序(AP)分别配属识别码(K1)。
3、根据权利要求1所述的方法,其特征在于,所述程序(P1、P2、P3)由单个程序部分(CB)组成或者包含单个程序部分,并且对各个程序部分(CB)分别配属识别码(K3)。
4、根据权利要求1所述的方法,其特征在于,所述程序(P1、P2、P3)由单个程序指令(PB)组成,并且对各个程序指令(PB)分别配属识别码(K4)。
5、根据权利要求1所述的方法,其特征在于,所述程序(P1、P2、P3)从属于处理器单元(100、101)的一个操作系统,或者表示该操作系统。
6、根据权利要求1所述的方法,其特征在于,所述程序(P1、P2、P3)用于控制车辆的运行过程。
7、根据权利要求1所述的方法,其特征在于,规定对应于一种安全模式(SM)的第一工作模式,其中两个执行单元(ALUA、ALUB)冗余地执行同一程序(AP、AP2)。
8、根据权利要求7所述的方法,其特征在于,在执行所述程序(AP、AP2)时,比较对应的状态或者结果(Result A、Result B)的相符性(14),并且在偏离时识别为出错。
9、根据权利要求7所述的方法,其特征在于,同步地执行所述程序(AP、AP2)。
10、根据权利要求1所述的方法,其特征在于,在对应于一种性能模式(LM)的第二工作模式中,每个执行单元(ALUA、ALUB)执行不同的程序(P1、P2、P3)。
11、根据权利要求1所述的方法,其特征在于,所述识别码(K1、KB)构成为至少一个比特(K1/B1)。
12、根据权利要求1所述的方法,其特征在于,规定程序指令(PB1、PB2、PB3),所述程序指令产生显示以第一工作模式执行还是以第二工作模式执行的识别码(KB)。
13、根据权利要求1所述的方法,其特征在于,该识别码(KB)被写入确定的存储器区域(SSB)中。
14、根据权利要求12或者13所述的方法,其特征在于,所述识别码(KB)通过设置在处理器单元的指令组中的指令(PB1、PB2)产生。
15、根据权利要求12-14之一所述的方法,其特征在于,所述识别码(KB)通过写指令(WR)产生。
16、在用于执行程序(P1、P2、P3)的带有至少两个执行单元(AKUA、ALUB)的处理器单元(100、101)的至少两个工作模式(SM、LM)之间切换的装置,其中包含切换装置(8、9),通过所述切换装置可以进行切换,其特征在于,所述切换装置(8、9)至少向所述程序(P1、P2、P3)配属至少一个识别码(K1-K4、KB),所述识别码(K1-K4、KB)使得能够在至少两个工作模式(SM、LM)中进行区分,并且这样地安排所述切换装置(8、9),使得该切换装置依据所述识别码在所述工作模式之间切换,并且所述处理器单元对应于所配属的工作模式执行程序。
17、根据权利要求16所述的方法,其特征在于,作为至少两个执行单元相应地设置至少加倍的运算器(ALUA、ALUB)。
18、带有至少两个执行单元(ALUA、ALUB)的用于执行程序(P1、P2、P3)的处理器单元(100、101),其中包含切换装置(8、9),通过所述切换装置可以在处理器单元的至少两个工作模式(LM、SM)之间进行切换,其特征在于,所述切换装置(8、9)至少向所述程序(P1、P2、P3)配属至少一个识别码(K1-K4、KB),所述识别码(K1-K4、KB)使得能够在至少两个工作模式(LM、SM)中进行区分,并且这样地安排所述切换装置(8、9),使得所述切换装置依据所述识别码在所述工作模式之间切换,并且所述处理器单元对应于所配属的工作模式执行程序。
CNA2004800312544A 2003-10-24 2004-08-20 在处理器的至少两个工作模式之间切换的方法和装置 Pending CN1871581A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10349581A DE10349581A1 (de) 2003-10-24 2003-10-24 Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit
DE10349581.9 2003-10-24

Publications (1)

Publication Number Publication Date
CN1871581A true CN1871581A (zh) 2006-11-29

Family

ID=34484989

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004800312544A Pending CN1871581A (zh) 2003-10-24 2004-08-20 在处理器的至少两个工作模式之间切换的方法和装置

Country Status (7)

Country Link
US (1) US20070245133A1 (zh)
EP (1) EP1680736A2 (zh)
JP (1) JP2007508626A (zh)
KR (1) KR20060103317A (zh)
CN (1) CN1871581A (zh)
DE (1) DE10349581A1 (zh)
WO (1) WO2005045664A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968354A (zh) * 2012-11-13 2013-03-13 浪潮电子信息产业股份有限公司 一种基于Intel Brickland-EX平台的同频锁步模式的自动切换方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437641B1 (en) 2004-04-01 2008-10-14 Pmc-Sierra, Inc. Systems and methods for signature circuits
US20080163035A1 (en) * 2004-10-25 2008-07-03 Robert Bosch Gmbh Method for Data Distribution and Data Distribution Unit in a Multiprocessor System
JP2008518297A (ja) * 2004-10-25 2008-05-29 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 少なくとも2つの実行ユニットを有する計算機システムで切替を行うための装置および方法
DE102005037223A1 (de) * 2004-10-25 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
US20080313384A1 (en) * 2004-10-25 2008-12-18 Ralf Angerbauer Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units
ATE426204T1 (de) * 2004-10-25 2009-04-15 Bosch Gmbh Robert Verfahren und vorrichtung zur trennung der abarbeitung von programmcode bei einem rechnersystem mit wenigstens zwei ausfuhrungseinheiten
US8161362B2 (en) 2005-06-10 2012-04-17 Hitachi, Ltd. Task management control apparatus and method, having redundant processing comparison
DE102005037228A1 (de) 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Rechnersystems
DE102005037244A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten und mit wenigstens zwei Gruppen von internen Zuständen
DE102005037230A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
DE102005037260A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten mittels Bitinformationen in einem Register
US20070088979A1 (en) * 2005-10-14 2007-04-19 Pomaranski Ken G Hardware configurable CPU with high availability mode
DE102005053681A1 (de) * 2005-11-10 2007-05-16 Bosch Gmbh Robert Verfahren zur Nutzung eines Speichers
DE102005060898A1 (de) * 2005-12-20 2007-06-28 Robert Bosch Gmbh Datenverarbeitungssystem mit mehreren Ausführungseinheiten
DE102006048169A1 (de) * 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren zur Überwachung einer Funktionsfähigkeit einer Steuerung
JP2008282178A (ja) * 2007-05-09 2008-11-20 Toshiba Corp 産業用コントローラ
WO2008146091A1 (en) 2007-05-25 2008-12-04 Freescale Semiconductor, Inc. Data processing system, data processing method, and apparatus
US20090183035A1 (en) * 2008-01-10 2009-07-16 Butler Michael G Processor including hybrid redundancy for logic error protection
US7865770B2 (en) 2008-01-10 2011-01-04 Advanced Micro Devices, Inc. Processor including efficient signature generation for logic error protection
WO2009090502A1 (en) * 2008-01-16 2009-07-23 Freescale Semiconductor, Inc. Processor based system having ecc based check and access validation information means
JP4876093B2 (ja) * 2008-03-31 2012-02-15 株式会社日立製作所 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
US8373435B2 (en) 2008-09-30 2013-02-12 Freescale Semiconductor, Inc. Method and apparatus for handling an output mismatch
JP2010198131A (ja) * 2009-02-23 2010-09-09 Renesas Electronics Corp プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法
US8640108B2 (en) * 2009-12-31 2014-01-28 International Business Machines Corporation Method for managing hardware resources within a simultaneous multi-threaded processing system
GB2567190B (en) * 2017-10-05 2020-02-26 Advanced Risc Mach Ltd Error recovery for intra-core lockstep mode

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE10136335B4 (de) * 2001-07-26 2007-03-22 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken
US6947047B1 (en) * 2001-09-20 2005-09-20 Nvidia Corporation Method and system for programmable pipelined graphics processing with branching instructions
DE10317650A1 (de) * 2003-04-17 2004-11-04 Robert Bosch Gmbh Programmgesteuerte Einheit und Verfahren
WO2005003962A2 (de) * 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968354A (zh) * 2012-11-13 2013-03-13 浪潮电子信息产业股份有限公司 一种基于Intel Brickland-EX平台的同频锁步模式的自动切换方法

Also Published As

Publication number Publication date
WO2005045664A3 (de) 2006-02-23
DE10349581A1 (de) 2005-05-25
WO2005045664A2 (de) 2005-05-19
US20070245133A1 (en) 2007-10-18
KR20060103317A (ko) 2006-09-28
EP1680736A2 (de) 2006-07-19
JP2007508626A (ja) 2007-04-05

Similar Documents

Publication Publication Date Title
CN1871581A (zh) 在处理器的至少两个工作模式之间切换的方法和装置
US7287185B2 (en) Architectural support for selective use of high-reliability mode in a computer system
TWI769595B (zh) 用以保護影子堆疊之處理器、方法、系統和指令
CN1149342A (zh) 受保护的存储器系统和方法
US7249358B2 (en) Method and apparatus for dynamically allocating processors
CN1842763A (zh) 在处理器单元的至少两种运行模式之间切换的方法以及相应的处理器单元
CN1097781C (zh) 后台操作模式下透明操作的数据处理器及其实现的方法
US7096389B2 (en) System and method for dynamically moving checksums to different memory locations
EP0354585A2 (en) Instruction pipeline microprocessor
KR20060098372A (ko) 프로세서 유닛 내에서 피연산자를 처리하기 위한 방법 및장치
EP1393183B1 (en) Modified harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
DE102006050715A1 (de) Verfahren und System zum Erzeugen eines gültigen Signals
JPWO2004012079A1 (ja) 命令制御装置、機能ユニット、プログラム変換装置および言語処理装置
CN101128802B (zh) 数据保护用的方法和用于其实施的设备
JP2009505179A (ja) 少なくとも2つの実行ユニットを有する計算機システムにおいてレジスタのマーキングによってスタート状態を定める方法および装置
TWI226997B (en) System and method preventing exceptional execution of central processing unit and the computer readable storage medium
CN2606396Y (zh) 可使用除错系统开机的计算机系统
US5751938A (en) Peripheral module and microprocessor system
CN1575451A (zh) 降低额外开销的异常检测方法和装置
CN1318172A (zh) 更新仿真器系统中用户存储器的方法和系统
CN102789402A (zh) 一种程序自动查错方法
CN115407944A (zh) 一种基于Nand Flash AIPR的命令预处理方法
JP2009505187A (ja) 少なくとも2つの命令実行部を備えたコンピュータシステムにおいてレジスタセットの切り替えにより初期状態を設定する方法および装置
EP4248344A1 (en) Execution protection using data colouring
CN115954037A (zh) 提高efuse芯片良率的方法、装置和设备及存储介质

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

Open date: 20061129