CN107133017A - 用于运行微处理器的方法 - Google Patents
用于运行微处理器的方法 Download PDFInfo
- Publication number
- CN107133017A CN107133017A CN201710108499.1A CN201710108499A CN107133017A CN 107133017 A CN107133017 A CN 107133017A CN 201710108499 A CN201710108499 A CN 201710108499A CN 107133017 A CN107133017 A CN 107133017A
- Authority
- CN
- China
- Prior art keywords
- target
- instruction
- microprocessor
- target word
- implemented
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000015654 memory Effects 0.000 claims abstract description 37
- 238000013519 translation Methods 0.000 claims abstract description 27
- 230000006870 function Effects 0.000 claims description 54
- 238000003860 storage Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 8
- 230000003362 replicative effect Effects 0.000 claims description 6
- 229910002056 binary alloy Inorganic materials 0.000 claims description 4
- 230000002123 temporal effect Effects 0.000 abstract description 2
- 238000012937 correction Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及用于运行微处理器(100)的方法,其中通过在微处理器(100)中实施的转换软件(110)执行二进制翻译,在二进制翻译的过程中,源指令被二进制地翻译成目标指令,所述源指令按照第一指令集架构被编码,所述目标指令按照第二指令集架构被编码,其中由转换软件(110)复制所述被翻译成第二指令集架构的目标指令(114),并且其中在所复制的目标指令中,在实施目标指令的过程中应当访问的存储区域由第二存储区域代替(115),并且其中目标指令和所复制的目标指令由微处理器(100)实施。利用本方法通过在一个处理器核心上(时间上)并行地实施目标指令实现时间上的冗余,以及通过在不同的处理器核心上并行地实施目标指令实现本地的或者局部的冗余。
Description
技术领域
本发明涉及用于运行微处理器的方法以及用于执行所述方法的计算机程序和计算单元。
背景技术
微处理器经常单独地或作为微控制器的组成部分被使用,所述微控制器在芯片上除了微处理器之外还具有附加的外围设备、诸如网络接口、ADC、DAC、E/A等等。
如例如在机动车辆的控制设备中(例如在用于控制发动机的发动机控制设备中)所使用的现代微处理器大多是具有多个(至少两个)处理器核心(Core(核心))的多核处理器。处理器核心或者核心包括算术逻辑单元(ALU)以及此外包括本地存储器(lokalenSpeicher),其中所述算术逻辑单元是用于实施任务、程序、计算指令等的实际电子计算器(Rechenwerk)。这样的本地存储器例如可以被构造为由一个或多个寄存器组成的寄存器组或被构造为RAM存储器。此外,微处理器包括全局存储器,所述全局存储器例如可以被构造为闪存、NOR闪存或RAM存储器。
应当由微处理器实施的程序代码大多以微处理器的特殊的(speziell)指令集架构来编码。
指令集架构描述微处理器的指令集、也即指令的集合,所述指令可以由微处理器实施,以及描述指令集的二进制编码。指令集架构同样可以描述数据结构的构造和数据类型、存储器架构以及存储区域的寻址。此外,也可以通过指令集架构描述微处理器的特殊行为方式,例如所述微处理器如何对中断请求作出反应。
发明内容
按照本发明,建议具有独立专利权利要求的特征的用于运行微处理器的方法以及用于执行所述方法的计算机程序和微处理器。有利的扩展方案是从属权利要求以及随后的描述的主题。
在本方法的范围中,转换软件(所谓的动态二进制翻译软件(Dynamic BinaryTranslation Software))在微处理器中被实施,通过所述转换软件执行程序代码的二进制翻译。在所述二进制翻译的过程中,源指令被二进制地翻译成相应的目标指令,其中所述源指令按照第一指令集架构(Instruction Set Architecture(指令集架构),ISA)被编码,所述目标指令按照第二指令集架构被编码。源指令和目标指令因此在内容上尤其是相同的,并且按照不同的指令集架构来撰写(verfasst)。第一或第二指令集架构例如可以分别是x86架构或ARM架构。
由转换软件复制被翻译成第二指令集架构的目标指令。在该所复制的目标指令中,存储区域由第二存储区域代替,其中在实施目标指令的过程中应当访问所述存储区域。所述存储区域尤其可以是目标存储器,其中所实施的目标指令的结果应当被写到所述目标存储器中。这尤其可以涉及处理器的本地存储器、例如由一个或多个寄存器组成的寄存器组或RAM存储器。存储区域尤其可以被代替,其方式是存储区域的地址或相应的存储寄存器在目标指令的源代码中被重命名。目标指令和所复制的目标指令由微处理器实施。
为了能够由微处理器实施指令,所述指令必须以微处理器的特殊的第二指令集架构来编码。不同制造商的处理器在此大多按照不同的、特定于制造商的指令集架构被编码。为了能够在其他制造商的其他微处理器中实施程序代码,程序代码从其特定的最初第一指令集架构(仿真ISA(emulated ISA))被翻译成其他微处理器的第二指令集架构(所谓的本机ISA(native ISA)),其中所述程序代码针对特殊的微处理器按照其特定的指令集架构(所谓的仿真ISA)得以开发。相应的二进制翻译可以通过转换软件来执行。
特别有利地,在本方法的范围中执行动态二进制翻译,其中在所述动态二进制翻译过程中,一旦程序代码的各个部分或各个指令应当被调用并且被实施,这些指令就被翻译。但是也可以执行静态二进制翻译,其中在所述静态二进制翻译过程中,在程序代码的各个指令被实施之前,全部程序代码并且因此程序代码的所有指令被翻译。
可理解的是,在本方法的范围中,可以由转换软件二进制地翻译多个不同的源指令。适宜地,所有相应的所翻译的目标指令可以被复制并且其存储区域可以被代替,或者也仅仅特殊的目标指令可以被复制并且其存储区域可以被代替。为了由微处理器来实施经翻译的和所复制的目标指令,所述两种指令从转换软件尤其被转发给微处理器的相应模块、例如被转发给调度器,所述调度器协调指令的实施。所述两种指令尤其由算术逻辑单元(ALU)、即用于实施任务、程序、计算指令等的电子计算器实施。
转换软件在本方法的范围中不仅被设置用于二进制翻译,而且用于扩展两个附加功能,也即扩展了复制功能(replicate(复制))和重命名功能(rename(重命名))。因此,可以以简单的方式实现指令到微处理器中的冗余实施。通过复制目标指令,所述目标指令被微处理器实施两次,并且双重实施的目标指令的结果被写到分别不同的存储区域中。两个目标指令例如可以并行地或也可以相继地被实施。
视微处理器的应用而定,可能出于安全性原因要求这样的冗余。尤其在机动车辆领域中,通过准则(Norm)、例如通过准则ISO 26262要求冗余地实施特殊的与安全性相关的功能。通过该方法,可以保证按照ISO 26262的安全性标准或者按照其中所定义的ASIL(Automotive Safety Integrity Level(汽车安全完整性等级))来实施微处理器的功能。尤其可以遵守按照ASIL C和ASIL D的安全性方针,所述安全性方针是ISO 26262的最高的和最严格的安全性要求。因此该方法特别有利地适用于微处理器在机动车辆中的使用。特别优选地,通过目标指令实施与安全性相关的机动车辆功能,所述机动车辆功能必须按照预先给定的安全性方针冗余地被保障。
此外,通过本发明提供以下可能性:以简单的方式将新功能实现到微处理器中,而不改变所述微处理器的硬件。例如,不需要例如为了提高微处理器的计算能力而将附加的处理器或者处理器核心或附加的存储器装入到所述微处理器中。所述附加功能可以仅仅通过在转换软件中的改变被添加。
尤其当微处理器已经处于现场中或者处于其正常运行中时,具有附加功能的相应转换软件也可以在其完成(seiner Fertigstellung)之后被引入到所述微处理器中。附加功能或者相应地更新的转换软件例如可以在更新过程中被引入到微处理器中,例如在维护工作过程中借助于所连接的计算机或者也借助于所谓的空中编程(Over-the-Air-Programmierng, OTA)被引入,在所述空中编程(OTA)情况下,新的、修改过的程序代码以无线方式经由无线电连接、诸如WLAN或移动无线电网络(例如LTE、GSM、3G、4G等)例如从微处理器制造商的服务器被传输给微处理器。
微处理器大多针对宽广的市场被开发和制造,并且大多例如不明确地针对在机动车辆中的使用来制造。商业上通用的微处理器因此不强制性地满足在机动车辆领域中适用的要求。针对机动车辆领域明确地制造微处理器,例如使得特殊的机动车辆功能可以基于硬件地被执行或者微处理器的特殊硬件架构是为机动车辆功能的实施设置的,大多与非常高的成本耗费相关联。然而通过本方法使得能够为了在机动车辆领域中使用并且为了实施机动车辆功能以简单的方式改装微处理器。
通常,微处理器的硬件架构在其规划和开发阶段的开始就例如按照功能性被确定,其中所述微处理器大概应当在其后来的正常运行中实施所述功能性。在微处理器的开发和制造阶段的进一步进程中,还改变硬件架构大多并非能够容易地发生,或者是与开发技术上的和成本密集的大耗费相关联的。如果例如应当在开发进程中决定微处理器迄今不应当实施所规划的附加功能,那么大多不再可能使硬件架构匹配于这些功能。然而通过所述方法,这样的功能可以耗费低地和成本低地仅通过使用相应的转换软件被实现到微处理器中。
按照一种有利的实施方式,将所实施的目标指令的结果和所实施的所复制的目标指令的结果相互比较。因此,尤其可以实现所谓的锁步(Lockstep),在所述锁步的过程中,为了识别错误和校正错误,双重实施的相同的指令的结果被相互比较。在机动车辆中,尤其在实施与安全性相关的功能时,例如通过准则ISO 26262要求这样的锁步或者相应的错误识别。
优选地,结果的所述比较通过实施比较指令来执行。所述比较指令有利地由转换软件在复制目标指令的情况下(mit dem Kopieren)被创建,并且适宜地转交给微处理器的调度器。因此除了复制和重命名功能外,转换软件此外优选地被扩展了比较功能。
微处理器优选地具有两个或多个处理器核心。转换软件有利地在所述处理器核心中的至少两个上并行地被实施。微处理器和所翻译的目标指令因此不太容易受单独处理器核心的失效和错误的影响。因此不仅可以通过在一个处理器核心上(时间上)并行地实施目标指令来实现时间上的冗余,而且可以通过在不同的处理器核心上并行地实施目标指令来实现本地或者局部(örtlich)的冗余。此外,因此可以执行更精确的错误识别和错误校正,尤其其方式是将在处理器核心上实施的目标指令和所复制的目标指令的各个结果相互比较。
按照一种特别优选的实施方式,设置微处理器的第二处理器核心,所述第二处理器核心检验第一处理器核心。所述第一处理器核心在此尤其被设置为主核心。第二处理器核心或者检验核心适宜地对于操作系统是不可见的,所述操作系统尤其由第一主核心实施。
在第一处理器核心上实施按照上述描述的转换软件。通过二进制翻译所获得的、经翻译的目标指令被储存在翻译存储器(Translation Cache(翻译缓存))中。不仅主核心而且检验核心可以访问所述翻译存储器,所述翻译存储器例如可以被构造为微处理器的全局存储器。此外在第一处理器核心中,所翻译的目标指令通过转换软件被复制,并且在所复制的目标指令的存储区域通过第二存储区域来代替。目标指令和所复制的目标指令在第一处理器核心中被实施。
在第二处理器核心中,优选地实施第二转换软件。所述第二转换软件适宜地是在第一处理器核心中所实施的软件的轻微改变的版本。第二转换软件适宜地不自己(selbst)实施目标指令的二进制翻译,而是优选地读出储存在翻译存储器中的经翻译的目标指令。因为检验核心对于操作系统是不可见的,所以该检验核心尤其不能执行存储操作,以便可以保证系统中的数据一致性。因此第二处理器核心尤其也不实施复制功能。代替地,第二转换软件优选地改变所读出的经翻译的目标指令,使得在实施所读出的目标指令的过程中应当访问的存储区域由第三存储区域代替。该经改变的目标指令在第二处理器核心中被实施。
优选地,在第一处理器核心中所实施的目标指令和所复制的目标指令以及在第二处理器核心中所实施的经改变的目标指令的结果被相互比较,尤其用于识别错误和校正错误。尤其可以以这种方式识别永久性错误,所述永久性错误例如可能起因于有错误的输入参数或起因于微处理器的硬件缺陷。
按照本方法的一种特别有利的实施方式,微处理器被使用在机动车辆的控制设备中。优选地,通过实施目标指令来实施机动车辆的驾驶员辅助功能和/或与安全性相关的功能。例如,目标指令可以在发动机调节过程中作为与安全性相关的功能被执行,或通过目标指令可以影响转向、制动、加速等。
用于驾驶员辅助功能的示例是间距调节巡航控制(Adaptive Cruise Control(自适应巡航控制),ACC)、转弯辅助、停车辅助、轮辙保持辅助、自主纵向引导(Längsführung)、注意力辅助或者疲劳识别、电子稳定程序(ESP)、发动机拖曳扭矩调节(Motor-Schleppmoment-Regelung)(MSR)、牵引力滑动调节(Antriebsschlupfregelung)(ASR)、防抱死制动系统(Antiblockiersystem)(ABS)以及在自动化行驶过程中的功能。
例如机动车辆的控制设备的按照本发明的微处理器尤其在程序技术上被设立用于执行按照本发明的方法。
以计算机程序的形式实现本方法也是有利的,因为尤其当进行实施的控制设备还被用于其他任务并且因此反正是存在的时,这引起特别小的成本。用于提供计算机程序的适当的数据载体尤其是磁存储器、光学存储器和电存储器、诸如硬盘、闪存存储器、EEPROM、DVD以及其他等等。经由计算机网络(因特网、内联网等)下载程序也是可能的。
从说明书和附图中得到本发明的其他优点和扩展方案。
本发明根据实施例在附图中示意性地示出,并且随后参考附图被描述。
附图说明
图1示意性地示出按照本发明的微处理器的一种优选的扩展方案,所述微处理器被设立用于,执行按照本发明的方法的一种优选的实施方式。
图2示意性地示出按照本发明的微处理器的另一优选的扩展方案,所述微处理器被设立用于,执行按照本发明的方法的一种优选的实施方式。
具体实施方式
在图1中示意性地示出了按照本发明的微处理器的一种优选的扩展方案,并且用100表示。微处理器100优选地是机动车辆的控制设备(例如发动机控制设备)的部分,并且例如被使用用于在发动机控制过程中执行与安全性相关的功能。
为了能够满足在机动车辆领域中的安全性条件,微处理器100尤其在程序技术上(programmtechnisch)被设立用于执行按照本发明的方法的一种优选的实施方式,其中所述安全性条件例如在准则ISO 26262中被描述。
在本方法的过程中,程序代码通过动态二进制翻译(Übersetzung)被翻译成微处理器的指令集架构,所述程序代码例如在x86指令集架构中被编码。此外,执行程序代码的错误监控和冗余实施。为此目的,在微处理器中实施转换软件(Umwandlungssoftware)110、例如所谓的动态二进制翻译软件。
程序代码和相应的源指令例如被储存在微处理器100的存储单元101中、例如储存在闪存存储器(Flash-Speicher)中。源指令由转换软件110从存储单元101中读入。
由转换软件110的解释功能(解释器(Interpreter))111执行源指令的动态二进制翻译。在通过解释功能111将源指令翻译成了目标指令之后,目标指令被缓存在高速缓冲存储器112中,其中所述目标指令以微处理器的指令集架构被编码。
通过优化功能113(优化器(Optimizer)),在高速缓冲存储器112中所缓存的目标指令可以被编译。在此,目标指令的确定属性可以被最小化或最大化或优化,例如为了实施目标指令所需要的时间可以被最小化。
在优化之后,通过复制功能114、重命名功能115和比较功能116处理目标指令。
通过复制功能114复制目标指令,并且通过重命名功能115,总是通过第二存储区域代替以所复制的目标指令命名的存储区域,其方式是相应的存储区域的地址被重命名。
通过比较功能116创建比较指令,以便将目标指令的结果与相应的所复制的目标指令的结果分别相互比较。
目标指令(1)、(2)、(3)的息息相关的系列例如可以看起来如下:
通过上述指令中的第一指令(1),来自寄存器r4的数据例如可以被加载到寄存器r0中。类似地,可以通过上述第二指令(2)将来自寄存器r5的数据加载到寄存器r1中。在寄存器r0和r1中的值通过第三指令(3)相加,并且相应的结果被写到寄存器r3中。
通过应用复制、重命名和比较功能114、115、116,上述目标指令中的第一目标指令(1)例如被改变为由三个指令(1)、(1')(1'')组成的集(Satz):
指令(1')在此是所复制的目标指令(1),其中寄存器r0由寄存器r10代替或者相应地被重命名了。通过指令(1''),寄存器r0和r10的内容被比较。如果所述两个寄存器的内容不同,那么可以推断出在指令(1)的实施中的错误。
类似地,通过复制、重命名和比较功能114、115、116,第二目标指令(2)例如被改变为由指令(2)、(2')、(2'')组成的以下集:
在所复制的目标指令(2')中,寄存器r1由寄存器r11代替了或者被重命名了。寄存器r1和r11的内容通过指令(2'')被比较。两个寄存器的差别表明在指令(2)的实施中的错误。
也可设想的是,改变目标指令(1)和(2),使得恒定的偏移值被添加给所读入的数据。目标指令(1)在此例如可以被改变成以下指令集:
按照该所复制的指令(1*),寄存器r4和r63的内容被相加,并且被加载到寄存器r10中。在寄存器r63中,例如可以储存相应的恒定的偏移值。
类似地,目标指令(2)可以如下被改变,
按照所复制的指令(2*),来自寄存器r63的恒定的偏移值也被添加给寄存器r5的内容。
第三目标指令通过复制、重命名和比较功能114、115、116例如被改变成以下指令集:
在该情况下,在所复制的目标指令(3')中尤其两个存储区域被重命名,也即一方面寄存器r0被重命名为寄存器r10并且另一方面寄存器r1被重命名为寄存器r11。通过指令(3''),寄存器r3和r13的内容被比较。如果两个寄存器内容不同,那么可以推断出指令(3)的有错误的实施。
在应用了复制、重命名和比较功能114、115、116之后,相应的目标指令(1)、(2)、(3)、所复制的目标指令(1')、(2')、(3')或者(1*)、(2*)、(3')和比较指令(1'')、(2'')、(3'')由转换软件110被转发给微处理器100的特殊硬件模块120并且由所述硬件模块120实施。
例如,指令首先被传送给调度器(Scheduler)121,所述调度器121协调时间进程,其中按照所述时间进程实施指令。按照所述时间进程,指令在实施模块122中、例如在算术逻辑单元(ALU)中被实施。写模块113可以将所执行的指令的结果写到相应的存储区域或寄存器中。
在图2中示出了按照本发明的微处理器的另一优选的扩展方案,并且用200表示,所述微处理器具有两个处理器核心201和202。在图1和2中的相同的附图标记表示(结构)相同的功能或元件。
类似于来自图1的微处理器100,来自图2的微处理器200也在机动车辆的、用于控制发动机的控制设备中被使用。
第一处理器核心201被用作主核心(Master-Kern)。在所述主核心中,类似于图1地实施转换软件210。然而与图1不同,在该示例中由转换软件210仅实施复制功能214和重命名功能215,而不实施比较功能。此外,由解释功能111创建的并且通过优化功能113编译的目标指令从转换软件210被储存在翻译存储器203中,其中所述目标指令被缓存在高速缓冲存储器112中,所述翻译存储器203例如被构造为微处理器200的全局闪存存储器。
第二处理器核心202用作用于检验主核心(Master-Kern)201的检验核心。检验核心202尤其对于在主核心201中运行的操作系统是不可见的。
第二转换软件220在检验核心202中被实施。然而,转换软件220既不执行解释功能也不执行优化功能,而是读出储存在翻译存储器203中的目标指令,并且将所述目标指令复制到第二处理器核心202的高速缓冲存储器222中。
因为检验核心202对于操作系统是不可见的,所以该检验核心尤其不能执行存储操作,以便可以保证系统中的数据一致性。因此,第二转换软件220也不实施复制功能,而是仅实施重命名功能225。
目标指令的息息相关的序列例如可以包括结合图1阐述的目标指令(1)、(2)、(3)以及另一目标指令(4):
通过第四指令(4),将来自寄存器r3的结果储存在寄存器r6中。
通过转换软件210的复制功能和重命名功能214、215,指令(4)被复制并且如下被改变:
寄存器r6在所复制的目标指令(4')中由寄存器r16代替。
由第二转换软件220的重命名功能225直接地重命名指令(4)的寄存器。重命名功能225因此将指令(4)改变成以下经改变的目标指令(4*):
转换软件210将目标指令(1)至(4)以及所复制的指令(4')转交给第一处理器核心201的相应的调度器121,所述目标指令在所述第一处理器核心201中被实施。类似地,目标指令(1)至(4)以及(4*)在第二处理器核心202中被实施。
在各个指令被实施并且所述指令的结果被储存在相应的处理器核心的相应的寄存器r16中之后,所述各个结果被相互比较用于识别错误。所述比较可以由微处理器200自身执行,或也可以由外部计算单元执行。在后一种情况下,相应的寄存器的数据例如可以通过存储器直接存取单元(Direct Memory Access Einheit(直接存储器存取单元),DMA单元)读出,并且数据可以由存储器直接存取单元例如经由以太网连接或经由现场总线、诸如SPI被转发给外部计算单元。
Claims (11)
1.用于运行微处理器(100、200)的方法,
其中通过在所述微处理器(100、200)中所实施的转换软件(110、210、220)来执行二进制翻译,在所述二进制翻译的过程中,源指令被二进制地翻译成目标指令,所述源指令按照第一指令集架构被编码,所述目标指令按照第二指令集架构被编码,
其中由所述转换软件(110、210、220)复制所述被翻译成所述第二指令集架构的目标指令(114、214),并且其中在该所复制的目标指令中,在实施所述目标指令的过程中应当访问的存储区域由第二存储区域代替(115、215、225),和
其中所述目标指令和所述所复制的目标指令由所述微处理器(100、200)实施。
2.按照权利要求1所述的方法,其中所述所实施的目标指令的结果和所述所实施的所复制的目标指令的结果被相互比较。
3.按照权利要求2所述的方法,其中由所述转换软件(110、210、220)在复制所述目标指令的情况下创建(116)比较指令,其中在实施所述比较指令的过程中,所述所实施的目标指令的结果和所述所实施的所复制的目标指令的结果被相互比较。
4.按照上述权利要求之一所述的方法,其中所述微处理器(100、200)具有至少两个处理器核心(201、202),并且其中所述转换软件在所述至少两个处理器核心(201、202)中的至少两个上被实施。
5.按照上述权利要求之一所述的方法,
其中所述转换软件(110、210、220)在所述微处理器的第一处理器核心(201)上被实施,并且其中所述经翻译的目标指令被储存在翻译存储器(203)中,
其中所述经翻译的目标指令由第二转换软件(220)从所述翻译存储器(203)中读出,所述第二转换软件(220)在所述微处理器的第二处理器核心(202)中被实施,并且所述经翻译的目标指令被改变(225),使得在实施所述所读出的目标指令的过程中应当访问的存储区域由第三存储区域代替,并且其中所述经改变的目标指令在所述第二处理器核心中被实施。
6.按照权利要求5所述的方法,其中所述目标指令和所述所复制的目标指令在所述第一处理器核心(201)中被实施,并且其中在所述第一处理器核心(201)中所实施的目标指令和所复制的目标指令的结果和在所述第二处理器核心(202)中所实施的经改变的目标指令的结果被相互比较。
7.按照上述权利要求之一所述的方法,其中所述微处理器(100、200)被使用在机动车辆的控制设备中。
8.按照权利要求7所述的方法,其中通过实施所述目标指令来实施所述机动车辆的驾驶员辅助功能和/或与安全性相关的功能。
9.微处理器(100、200),所述微处理器(100、200)被设立用于,执行按照上述权利要求之一所述的方法。
10.计算机程序,所述计算机程序促使计算单元(100、200)用于,当所述计算机程序在所述计算单元(100、200)上被实施时,执行按照权利要求1至8之一所述的方法。
11.机器可读的存储介质,具有其上所存储的按照权利要求10所述的计算机程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016203283.6 | 2016-02-29 | ||
DE102016203283.6A DE102016203283A1 (de) | 2016-02-29 | 2016-02-29 | Verfahren zum Betreiben eines Mikroprozessors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107133017A true CN107133017A (zh) | 2017-09-05 |
CN107133017B CN107133017B (zh) | 2023-08-11 |
Family
ID=59580419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710108499.1A Active CN107133017B (zh) | 2016-02-29 | 2017-02-27 | 用于运行微处理器的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10157062B2 (zh) |
CN (1) | CN107133017B (zh) |
DE (1) | DE102016203283A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913745A (zh) * | 2020-08-28 | 2020-11-10 | 中国人民解放军国防科技大学 | 一种嵌入式多指令集处理器设计方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326524B (zh) * | 2021-06-18 | 2024-05-28 | 鹏城实验室 | 指令处理方法及处理器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930509A (en) * | 1996-01-29 | 1999-07-27 | Digital Equipment Corporation | Method and apparatus for performing binary translation |
US6711667B1 (en) * | 1996-06-28 | 2004-03-23 | Legerity, Inc. | Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions |
US20050149915A1 (en) * | 2003-12-29 | 2005-07-07 | Intel Corporation | Methods and apparatus for optimizing a program undergoing dynamic binary translation using profile information |
US20080141012A1 (en) * | 2006-09-29 | 2008-06-12 | Arm Limited | Translation of SIMD instructions in a data processing system |
US7496494B2 (en) * | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
WO2013048460A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Instruction and logic to control transfer in a partial binary translation system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160381050A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Processors, methods, systems, and instructions to protect shadow stacks |
-
2016
- 2016-02-29 DE DE102016203283.6A patent/DE102016203283A1/de active Pending
-
2017
- 2017-02-27 CN CN201710108499.1A patent/CN107133017B/zh active Active
- 2017-02-28 US US15/444,460 patent/US10157062B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930509A (en) * | 1996-01-29 | 1999-07-27 | Digital Equipment Corporation | Method and apparatus for performing binary translation |
US6711667B1 (en) * | 1996-06-28 | 2004-03-23 | Legerity, Inc. | Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions |
US7496494B2 (en) * | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
US20050149915A1 (en) * | 2003-12-29 | 2005-07-07 | Intel Corporation | Methods and apparatus for optimizing a program undergoing dynamic binary translation using profile information |
US20080141012A1 (en) * | 2006-09-29 | 2008-06-12 | Arm Limited | Translation of SIMD instructions in a data processing system |
WO2013048460A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Instruction and logic to control transfer in a partial binary translation system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913745A (zh) * | 2020-08-28 | 2020-11-10 | 中国人民解放军国防科技大学 | 一种嵌入式多指令集处理器设计方法 |
CN111913745B (zh) * | 2020-08-28 | 2022-06-28 | 中国人民解放军国防科技大学 | 一种嵌入式多指令集处理器设计方法 |
Also Published As
Publication number | Publication date |
---|---|
US10157062B2 (en) | 2018-12-18 |
DE102016203283A1 (de) | 2017-08-31 |
CN107133017B (zh) | 2023-08-11 |
US20170249145A1 (en) | 2017-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102018005181B4 (de) | Prozessor für einen konfigurierbaren, räumlichen beschleuniger mit leistungs-, richtigkeits- und energiereduktionsmerkmalen | |
EP3798928A1 (en) | Deep learning implementations using systolic arrays and fused operations | |
DE102018126650A1 (de) | Einrichtung, verfahren und systeme für datenspeicherkonsistenz in einem konfigurierbaren räumlichen beschleuniger | |
DE102018005216A1 (de) | Prozessoren, Verfahren und Systeme für einen konfigurierbaren, räumlichen Beschleuniger mit Transaktions- und Wiederholungsmerkmalen | |
JP4766540B2 (ja) | プログラムコード変換の検証を実行するための方法および装置 | |
DE102018006889A1 (de) | Prozessoren und Verfahren für bevorzugte Auslegung in einem räumlichen Array | |
DE102018126150A1 (de) | Einrichtung, verfahren und systeme für multicast in einem konfigurierbaren räumlichen beschleuniger | |
DE112013005188B4 (de) | Prozessor und vefrahren zur vektorisierung von zusammengeführten, mehrfach geschachtelten schleifen | |
DE112012007119T5 (de) | Threadmigration-Unterstützung für Kerne unterschiedlicher Architektur | |
DE112011105664T5 (de) | Instruktion und Logik zum Bereitstellen einer Vektorstreuungs-Op- und -Hol-Op-Funktionalität | |
DE112017001716T5 (de) | Speicherkopierbefehle, prozessoren, verfahren und systeme | |
US20110302394A1 (en) | System and method for processing regular expressions using simd and parallel streams | |
DE102018002525A1 (de) | Hybridatomaritätsunterstützung für einen binärübersetzungsbasierten mikroprozessor | |
DE102015007422A1 (de) | Befehlssatz zum Eliminieren fehlausgerichteter Speicherzugriffe während der Verarbeitung eines Arrays mit fehlausgerichteten Datenzeilen | |
DE102021104561A1 (de) | Asynchrone datenbewegungspipeline | |
DE102018126036A1 (de) | Systeme und verfahren zum setzen eines kachelregisterpaars auf null | |
DE102018124944A1 (de) | Vorrichtung und Verfahren zum Umsetzen eines Gleitkommawertes von halber Genauigkeit in einfache Genauigkeit | |
JPS5975347A (ja) | 論理回路のシミユレ−シヨン装置 | |
DE112012006946T5 (de) | Verfahren und Vorrichtung zur Planung von Speicherinstruktionen quer über atomare Bereiche bei der binären Übersetzung | |
DE112023000223T5 (de) | Verarbeiten von daten mit variabler länge | |
CN109947500A (zh) | 一种程序加载方法、装置、系统、芯片和存储介质 | |
DE102014003659A1 (de) | Systeme, vorrichtungen und verfahren zum bestimmen eines folgenden niedrigstwertigen maskierungsbits eines schreibmaskenregisters | |
CN107133017A (zh) | 用于运行微处理器的方法 | |
DE102018125971A1 (de) | Systeme und verfahren zum berechnen von skalaprodukten von halbbytes in operanden aus zwei kacheln | |
DE112017003338T5 (de) | System, Vorrichtung und Verfahren zum Inspizieren dauerhafter Daten in einem Speicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |