CN104081344B - 用于运行处理器的方法 - Google Patents

用于运行处理器的方法 Download PDF

Info

Publication number
CN104081344B
CN104081344B CN201280068191.4A CN201280068191A CN104081344B CN 104081344 B CN104081344 B CN 104081344B CN 201280068191 A CN201280068191 A CN 201280068191A CN 104081344 B CN104081344 B CN 104081344B
Authority
CN
China
Prior art keywords
program
processor
time
critical
section
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.)
Expired - Fee Related
Application number
CN201280068191.4A
Other languages
English (en)
Other versions
CN104081344A (zh
Inventor
勒内·格拉夫
沃尔夫冈·哈特曼
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of CN104081344A publication Critical patent/CN104081344A/zh
Application granted granted Critical
Publication of CN104081344B publication Critical patent/CN104081344B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • 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

Abstract

本发明涉及一种用于运行处理器的方法,通过以下步骤:提供具有第一指令序列(32)的第一程序(10);提供至少一个具有第二指令序列(24)的第二程序(12),其中,第一程序(10)包括具有时间关键的指令(20)的时间关键的区段(52);在处理器流水线(18)中处理来自第一和第二程序(10,12)的指令(20,24,32);识别第一程序(10)中的时间关键的区段(52)的起始时间点;以及一旦识别了第一程序(10)中的时间关键的区段(52)的起始时间点,将预先确定的中断程序(26)插入到至少一个第二程序(12)中。

Description

用于运行处理器的方法
技术领域
本发明涉及一种用于运行处理器的方法。此外,本发明还涉及一种处理器。最后,本发明还涉及一种具有处理器的自动化设备。
背景技术
现代的处理器如今具有不止一个计算内核,并且因为它们能够真正并行地执行多个程序,而被称为多核处理器(MultiCore-Prozessoren MC)。在此过程中,每个程序在一个单独的处理器内核(Core)上运行,并且只要这个程序还在运行,它就不必与其他的程序分享这个处理器内核连同其所有的像浮点运算单元(Floating point unit,FPU)这样的子单元。
在第一个多核处理器出现之前已经存在雏形,它们虽然能够建立一定的并行性,但是没有立即并行地设置在已经存在的计算内核之外的附加的完整的计算内核。这项技术公知为超线程技术(Hyper-Threading HT)。此时,一个处理器内核由处理不同任务的单元构成。例如对此有在处理器寄存器和存储器之间交换数据的加载-存储-单元(Load-Storage-Unit LSU),或者负责整数计算的算术-逻辑-单元(Arithmetic-Logical-UnitALU)。
只要存在数据,这些单元甚至已经可以在具有一个处理器内核的处理器中部分地并行地工作。因此,ALU可以利用在特定的寄存器中的值工作,而LSU加载其他的寄存器或者将其传输给存储器。处理器在内部具有所谓的流水线,其中依次运行各个指令,其中,流水线的各个阶段构成了处理器中不同的单元。然而在大部分情况下,这些单元必须相互等待,因此只能部分地填充该流水线,并且没有充分利用理论上可能的计算效率。尽管HT-处理器在内部仅可以多重支配部分附加的处理器,通过它向操作系统扮演两个或者多个处理器,HT-处理器尽可能地消除了这一局限性。
因此,例如可以在具有一个处理器内核(Single-Core-Prozessor单核处理器)的处理器上近乎并行地运行两个程序。在此,每个程序包括一个指令的列表(指令队列Instruction-Queue),这些指令必须依次运行。在单核处理器中,顺序是明确的,并且在任意多次的执行之后指令链的运行时间也总是一样的。在这种情况下,这些程序的运行是确定性地。但是在HT-处理器中,处理器在其内部混合来自两个可使用的指令列表的指令,以便尽可能最佳地填充流水线,并且实现理论上可能的总计算效率。
在许多程序中确实很好地实现了这一点,其中基于以下事实,即不是所有的单元都存在多个,所以不能实现双倍的或者n倍的效率。最重要的是像FPU这样的复杂单元在HT处理器中通常只能进行一次。如果两个进行浮点-算法的程序并行运行,那么HT处理器不比普通的单核处理器更快。但是因为这种情况通常很少见,所以HT处理器基本上能够提升计算效率。
但是,此时的缺点是,程序的运行时间不再是能预见的,因为它在很大程度上依赖于第二个程序的指令。因此,在多次运行时产生了多个不同的运行时间。在标准操作系统(通用操作系统General-Purpose-Operating-Systems,GPOS)中,因为此时程序不需要在确定的时间内完成它们的任务,判定性是没有意义的。但是,在其中也使用实时操作系统(实时操作系统,Real-Time-Operating-System,RTOS)的实时-系统的范围内,能预见的运行时间是应用程序的关键组成部分。
上述情况妨碍了在实时-系统中使用HT处理器。在许多配置中,除了实时-应用还运行非实时-应用程序,例如操作界面。相对于真正的多核处理器,HT处理器可以提供一种低成本的替代方案,以便至少非-实时-应用程序获得更高的计算效率,但是由于其对实时-应用的运行时间有很大的时间上的影响,所以不能被使用。
即使是真正的多核计算机也具有一定的局限性,一旦除了使用所有单元以多重形式存在于其中的处理器之外,还使用其他例如存储器或者外围设备的仅在整个系统中存在一次的组件,这些组件就会因此导致单个程序的彼此阻碍。
发明内容
因此,本发明的目的在于,指出一种途径,即如何可以提升处理器的效率和可靠性。
根据本发明,通过一种用于运行处理器的方法实现该目的。以相同的方式,该目的通过一种处理器并且通过自动化设备来实现。根据本发明的用于运行处理器的方法包括提供包含第一指令序列的第一程序;提供至少一个包含第二指令序列的第二程序,其中,第一程序包含具有时间关键的指令的时间关键的区段;在处理器流水线中处理来自第一和第二程序的指令;识别第一程序中的时间关键的区段的起始时间点;并且一旦识别了第一程序中的时间关键的区段的起始时间点,就将预先确定的中断程序插入到至少一个第二程序中。
指令的概念特别地理解成处理器的机器指令。这些指令可以分配给处理器的相应单元。区段的概念特别的描述了多个彼此相关的指令。作为程序特别地理解为由处理器运行的指令的列表,以便实现确定的功能。此时,指令可以分配给相应的区段。
现在,在处理器上提供了至少两个程序,它们包含相应的指令序列。这些程序也被称为指令队列(Instruction-Queues)。处理器包括至少两个逻辑内核,其中,为每个逻辑内核分配一个程序。因此,处理器构造成如同超线程处理器(HT处理器)。现在,处理器上的第一程序可以包括时间关键的区段或者时间关键的指令或指令序列。如此,第一程序可以包含非时间关键的区段和时间关键的区段。
此外,处理器或者在处理器的存储器装置上运行的操作系统设计用于,识别第一程序中的时间关键的进程的起始时间点。一旦得知第一程序中的时间关键的进程的起始时间点,就将预先确定的中断程序插入到至少一个第二程序中。换句话说,通过相应的中断程序中断或停止当前在至少第二程序上的提供的或被处理的区段。这个中断程序可以包含预知的或预先确定的指令的序列。因此,能够准确地预言该中断程序。在中断程序中优选地准确地认识到,执行哪些指令以及在此过程中访问处理器的哪些部分。因此,可以使得其上处理了时间关键的指令或区段的处理器也对系统的非时间关键的部分开放,而不会在这个过程中对时间关键的进程有不利的影响。常用的HT处理器中的区段或指令的混合会导致指令列表的不确定地运行的原因,重要的方面就是不能预见性,其中指令相应的位于其他程序中。根据本发明,如此实现该目的,即定义其他的程序的指令或区段,该程序在实例中也允许处理时间关键的进程序列。
优选地,随着第一程序中时间关键的区段的开始,为了插入中断程序将中断信号发送到第二程序。一般来说,因为时间关键的处理器必须对事件作出反应,可以通过中断(Interrupt)开始时间关键的区段或时间关键的序列。这种事件可以或者例如由计时器控制的循环地出现。同样地,这种事件也可以偶尔因为警报而出现。现在,第一程序中的时间关键的区段或时间关键的序列的开始将中断信号或Interrupt传输到处理器的至少第二程序,其中,从操作系统的角度将第二程序视为独立的并且完整的内核。现在,插入第二程序中的也可以被称为中断服务程序(Interrupt-Service-Routine,ISR)的中断程序使第二处理器内核进入所定义的状态。因此,在具有至少两个逻辑内核的处理器中,当第一逻辑内核被识别为时间关键的区段时,至少使第二逻辑内核进入特定的状态。
在优选的实施方式中,在处理器流水线中以能预见的顺序一起处理时间关键的区段连同中断程序。当在第一程序中识别了时间关键的区段时,那么在至少第二程序中插入预先限定的或预先确定的中断程序。因为这种也可称为空闲-任务(Idle-Task)的中断程序由已知的指令构成,尽管与时间关键的区段的未知指令相混合,但该混合物在处理器流水线中仍是明确的。这导致了,特别是在多次运行时间关键的程序时得到一直相同的运行时间。
借助中断程序的第二或者更多逻辑内核以及程序的停止状态使得为时间关键的区段保留必要的确定性成为可能。此外,因为当目前没有处理时间关键的区段时,非时间关键的程序可以使用大于一个的处理器逻辑内核,相对于单-处理器-解决方案,利用所描述的方法在处理非时间关键的程序时能够实现更高的流通量。当时间关键的区段不活动时,非时间关键的程序可以使用至少两个HT-处理器的逻辑内核。因为根据由于并行地处理而被提升的数据流通量来评估非时间关键的程序,非确定性的混合在此是不相关的。因此,可以提升整个处理器或设备的效率,而不会在此过程中影响了可靠性。
优选地,利用时间关键的区段也终止了中断程序。因此,通过中断程序只会在这种时间期限内打断或者停止非时间关键的程序,即为处理时间关键的区段所需要的时间期限。紧接着又可以在这两个处理器逻辑内核上分别处理非时间关键的程序。因此,在处理器上可以加速处理非时间关键的程序或指令。
在一种设计方案中,中断程序包括从存储器中读取一个值、将读取的值与预先确定的值相比较、并且如果读取的值和规定的值不同,重新启动中断程序。在中断程序或空闲任务中,首先从预先确定的存储器单元中读取一个值或日期。紧接着比较这个值是否与预先确定的值一致。如果不一致,那么在存储器中重新读取这个值,并且因此再次启动例行程序。利用这些指令也定义了使用哪些处理器的单元。其中,特别是使用这种单元,其在处理器中存在多个或者是第二程序或第二逻辑内核单独享有的单元。这种单元例如可以是加载-存储-单元(Load-Storage-Unit),它能够从存储器中加载相应的值。此外可以使用所谓的比较-单元(Compare-Unit),它能够比较相应的值。特别是可以使用处理器的内存单元作为从中读取值的存储单元。因此可以防止在中断程序期间访问物理的主存储器。因此识别了由中断程序所使用的处理器的单元。其他的单元不受限制地供用于处理时间关键的区段的程序或逻辑内核使用。由此不会对时间关键的区段或指令列表的运行时间造成不利的影响。
在一种设计方案中,由此终止中断程序,即,将与预先确定的值相等的值写入到存储器中。在中断程序期间,可以从处理器的内存中读取一个值,并且与预先确定的值进行比较。只要时间关键的区段还没有停止或完成,就不将预先确定的值写入到存储器中。在完成时间关键的区段以后首先将预先确定的值写入到存储器中。因此也停止了中断程序的例行程序。在此有利的是,选择位于处理器内的、并且不在物理主存储器内的存储单元,从而中断程序或空闲任务不能占据像存储器连接部或者甚至总线系统这样的唯一的资源。因此能够以简单的方式终止中断程序,并且能够相应地在至少两个程序或逻辑内核上处理非时间关键的指令。
根据本发明的处理器包括用于提供包含第一指令序列的第一程序的第一处理器单元;至少一个用于提供至少一个包含第二指令序列的第二程序的第二处理器单元,其中,第一程序包含时间关键的区段;用于处理来自第一和第二程序的指令的处理器流水线和具有操作系统的存储器装置,其中,处理器还设计用于运行操作系统,并且其中,处理器或操作系统还设计用于识别第一程序中的时间关键的区段的起始时间点,并且一旦识别了第一程序中的时间关键的区段的起始时间点,将预先确定的中断程序插入到至少一个第二程序中。
优选地,处理器包含数据交换单元和比较单元,其中,数据交换单元还构造成,在中断程序期间从存储器中读取一个值,并且其中,比较单元还构造成,在中断程序期间将读取的值与预先确定的值相比较。因此可以确保,在中断程序期间只使用确定的处理器的单元。优选地使用这种供相应的处理器逻辑内核或程序单独使用的单元。同样,优选的也可以使用处理器的内存。
在其他的设计方案中,处理器至少包括两个处理器内核。除了HT-处理器之外,前述用于运行处理器的方法也可以用于真正的多核-处理器,其中,所有的内核都具有所有必需的单元。在常用的多核处理器中,即使严格地划分了分配给相应的处理器内核的时间关键的和非时间关键的程序,因为两个分应用程序都访问了例如存储器的其他系统组件或者外围设备,也可能导致非-确定性的状态。最重要的是,因为多内核的处理器与多个外围设备的连接是通过单个的总线系统(大部分是PCI或PCIe)构建的,即使不同的应用程序使用不同的外围设备,外围设备也会导致许多问题。由此导致的可能的相互阻碍能够通过所述方法排除。
其他的优点是,通过该方法同样实现了确定性的缓存-表现。不仅在许多的多核-处理器中,而且在超线程-处理器中,多个内核都分享缓存。如果内核中的程序或指令中的一个不能访问缓存,而是必须访问主存储器,那么整体运行时间明显减慢。当在运行时间关键的区段时在至少一个其他的程序或内核上运行定义了的中断程序时,实时-应用程序可以不被它的缓存-表现所影响。
根据本发明的自动化设备包括前述的处理器。自动化设备通常具备两个重要的功能,即,真正地控制物理进程和与外界通信。通信可以或者通过操作界面或者通过到外部操作设备的网络连接来进行。控制物理进程通常需要遵守特定的时间条件,而在通信时,由于使用者反应迟缓就必须设计相应的等待时间。控制功能通常意味着时间关键的区段,它大多数时只需要一小部分处理器的计算效率。但是,控制任务必须随时都能够执行。为了使状态可视化或者为了与其他的设备交换数据,通信程序通常需要明显更大份额的计算效率。通过使用根据本发明的处理器能够为通信程序提供明显更多的计算效率。此外通过这种处理器还可以节省成本。
前面结合根据本发明的方法所提到的优点和改进方案同样能够转移到根据本发明的处理器和根据本发明的自动化设备上。
附图说明
现在借助附图详细阐述本发明。其中示出:
图1是在超线程-处理器中程序运行的示意图;
图2是两个程序的指令布置的示意图,其中,第一程序包含时间关键的区段;
图3是两个程序的和处理器流水线的指令布置的示意图;
图4是测试布置的示意图;和
图5是其他的测试布置的示意图。
具体实施方式
下面详细描述的实施例是本发明的优选实施方式。
图1在示意图中示出根据现有技术在处理器上对程序的处理。这种处理器被称为超线程-处理器。处理器包括一个处理器内核,在其上面例如设计了两个处理器单元。此时,每个处理器单元分配给一个程序。现在,在处理器上运行着第一程序10和第二程序12。第一程序10包括第一指令序列14,并且第二程序12包括第二指令序列16。
第一程序10中的指令14的顺序和第二程序12中的指令16的顺序是明确对应的。在第一程序10中并且在第二程序12中可以处理时间关键的和非时间关键的区段。在处理器流水线18中处理来自第一程序10的指令14和来自第二程序12的指令16。在处理器流水线18中,对指令14和16进行相应的分类和处理。此时,在处理器流水线中得到第一指令14和第二指令16的不确定的并且杂乱的顺序。
第一程序10和第二程序12可以理解为处理器逻辑内核,其中,处理器只包括一个处理器内核。此时,根据处理器的生产商,处理器的不同单元可能存在一个或者多个。执行简单的计算任务的单元通常存在多个,其中,复杂的单元仅存在一个。
图2示出两个程序10和12的示意图,其中,第一程序10包括一个时间关键的区段52。因为它必须对事件做出反应,通常由Interrupt启动这种时间关键的区段52。这种事件例如可以循环地出现或者仅偶尔出现。通过箭头22标示了时间关键的区段52的起始时间点。第二程序12包括一个非时间关键的区段52。
此外,该处理器或者在处理器的存储器装置上运行的操作系统还构造成,用于识别第一程序中的时间关键的区段52的开始或起始时间点。一旦得知第一程序10中的时间关键的区段52的起始时间点,将预先确定的中断程序26插入到第二程序12中。
随着时间关键的区段52的开始,将相应的中断信号或Interrupt发送到第二程序12。这导致了,第二程序12上执行的非时间关键的区段54被打断,或者在非时间关键的区段54中插入了中断程序26。从第一程序10传输到第二程序12中的Interrupt在图2中用箭头28标示。
中断程序也可以被称为空闲任务,它可以包括以下步骤:
-从存储器中读取一个值,
-将读取的值与预先确定的值相比较,并且
-如果读取的值与规定的值不同,重新启动中断程序。
利用这个指令顺序同样定义了使用处理器的哪些单元。在这里仅使用加载-存储-单元和比较-单元。此外,优选地访问处理器的内存。
随着时间关键的区段52的结束,中断程序26也结束了。当时间关键的区段52已结束,通过写入指令将预先确定的值写入到被中断程序26持续读取的存储器单元中。这在图2中示例性地用箭头30表示。
图3示出了在第一程序10中的、第二程序12中的和处理器流水线18中处理指令的示意图。第一程序10不仅包括非时间关键的区段56或指令32,而且还包括时间关键的区段52或指令20。如果在第一程序10中识别出时间关键的区段20的起始时间点,则在第二程序12中插入预先确定的中断程序26。此时,目前在第二程序上运行的非时间关键的区段24被中断或停止。
在处理器流水线18中处理来自程序10和12的区段和指令20,24,26,32。
在识别出时间关键的区段52之前,以不能预见的顺序完成第一程序10的和第二程序12的指令24,32,并且在处理器流水线18的范围38中示出了这个指令顺序。一旦识别出时间关键的区段52的起始点,中断程序26插入到第二程序中。中断程序26包含预先确定的步骤。通过一起处理来自第一程序的时间关键的区段52和来自第二程序12的中断程序26,获得指令20,26的确定的并且能预见的顺序。这在处理器流水线的范围36中示出。在时间关键的区段52结束以后,中断程序26也结束了。紧接着处理来自第一程序10和第二程序12的非时间关键的区段54,56。这由处理器流水线18中的范围34表示。
图4示出了用于对根据本发明的方法进行定量评估的测试布置的示意图。其中,第一程序包括时间关键的区段52。第二程序12包括非时间关键的或非时间关键的区段54。在第一种测试条件下,分别将一个超线程处理过程的逻辑内核分配到第一程序10中和第二程序12中。在其他测试条件下,可以为第一程序10和第二程序12分别分配一个多核处理器(Multicore-Prozessors)的处理器内核。
在这种测试场景下,使用浮点单元(Floating Point Unit,FPU)用于计算。在具有两个逻辑内核的HT-处理器中仅存在一个这种浮点单元。随后实现以下测试场景:非时间关键的区段54执行FPU所需要的持续性计算。相应地触发了时间关键的区段52,并且其也执行FPU上的计算。此时,时间关键的区段52测量用于在FPU上进行计算的运行时间。
在此,区段52,54有目的地分布在HT-处理器或MC-处理器的两个逻辑内核上,使得它们并行地填充程序10,12。下面的表格示出了在不同的测试情况下的对时间关键的区段52运行时间的测量值,其中,在操作系统中没有采取任何措施。每次测试都进行了60000次运行。
第2行中的时间非常清楚地示出了HT-处理器中的效果,即,当另一个内核上同样运行FPU-应用程序时,其上运行了时间关键的区段52的处理器的逻辑内核上的执行时间明显增加。在最差的情况下,也就是当HT处理器的两个逻辑内核并行地需要FPU时,甚至需要双倍的时间。然而在真正的多核处理器上,这两个区段52,54对两个逻辑内核毫无影响,这也正是所期待的。
在下面的表格中实施了根据本发明的方法,其中,通过Interrupt将中断程序或空闲任务发送到第二内核或逻辑内核,从而不会发生冲突。
如这些测量值明确显示的,时间在这种情况下保持非常稳定。相对于上面的值,时间略微有所增加,这是由于附加的机制造成的,其中附加地处理了中断程序26。对此在第一行中,因为防止了通过程序对另一个逻辑内核造成任何影响,甚至最差的时间也优于在上面示出的表格中的。
总之可以确定,根据本发明的方法是有效的并且明显有助于改善时间关键的区段的确定性。在时间关键的区段52不运行的时间,为其他的内核提供先前的效率。
除了HT-处理器的逻辑内核的相互影响之外,因为在总线-系统上的冲突同样可能导致不可预计的延迟,另一个重要的方面还是对外围设备的访问,因为它们可能灵敏地干扰时间关键的区段或应用程序。在另一种测试场景下,在计算机内设计了PCI-卡,它以一毫秒的间隔循环地生成Interrupt。相应的中断-服务-程序(ISR)实施不同的时间测量,并且将信号发送到应用程序,使其继续运行。此时,ISR进行一个到PC-卡的写入指令。
图5中示意性地示出了该测试场景。此时,多核处理器包括四个内核40,42,44和46,时间关键的程序10连同ISR在多核-处理器的第一内核40中运行,而在另外三个内核42,44,46上,分别有一个相应的应用程序通过PCI-总线48持久地读取性地访问PCI卡50。
下面的表格示出了当系统按照所说明的运行时出现的测量值。为了获得统计学的证据,总共运行了60000个周期。
通过使用根据本发明的方法得到以下表格中的测量值。这里也同样运行了60000个周期。
ISR等待时间平均改善了30%,原因在于总线负载下降了。PCI-读取-访问明显更稳定,并且由于根据本发明的方法几乎不再受波动,而同时之前最差时间比最优的大约多100%。因为此时总是只在缓冲内写入,PCT-写入-访问符合预期的完全没有延长。但是,这个值到达PCI-卡的寄存器所需要的时间同样应该明显缩短或者更加稳定,但是这一点没有得到证明。ISR的运行时间同样总体平均缩短了30%以上。
附图标记列表
10 程序
12 程序
14 指令
16 指令
18 处理器流水线
20 指令
22 箭头
24 区段
26 中断进程
28 箭头
30 箭头
32 区段
34 范围
36 范围
38 范围
40 处理器内核
42 处理器内核
44 处理器内核
46 处理器内核
48 PCI-总线
50 PCI-卡
52 区段
54 区段
56 区段。

Claims (11)

1.一种用于运行处理器的方法,通过
-提供具有第一指令序列(32)的第一程序(10),
-提供至少一个具有第二指令序列(24)的第二程序(12),其中
-所述第一程序(10)包括具有时间关键的指令(20)的时间关键的区段(52),以及
-在处理器流水线(18)中处理来自所述第一程序(10)和所述第二程序(12)的所述指令,
其特征在于
-识别所述第一程序(10)中的所述时间关键的区段(52)的起始时间点,以及
-一旦识别了所述第一程序(10)中的所述时间关键的区段(52)的所述起始时间点,就将预先确定的中断程序(26)插入到所述至少一个第二程序(12)中,
其中,所述中断程序(26)包括以下步骤:
-从存储器中读取值,
-将所述读取的值与预先确定的值进行比较,以及
-如果所述读取的值与所述确定的值不同,则重新启动所述中断程序(26)。
2.根据权利要求1所述的方法,其特征在于,随着所述第一程序中所述时间关键的区段(52)的开始,为了插入所述中断程序(26)将中断信号发送到所述第二程序(12)。
3.根据权利要求1或2所述的方法,其特征在于,在所述处理器流水线(18)中以能预见的顺序一起处理所述时间关键的区段(52)和所述中断程序(26)。
4.根据权利要求1或2所述的方法,其特征在于,所述中断程序(26)同样随着所述时间关键的区段(52)终止。
5.根据权利要求3所述的方法,其特征在于,所述中断程序(26)同样随着所述时间关键的区段(52)终止。
6.根据权利要求4所述的方法,其中,通过将等于所述预先确定的值的值写入到存储器中来终止所述中断程序(26)。
7.根据权利要求5所述的方法,其中,通过将等于所述预先确定的值的值写入到存储器中来终止所述中断程序(26)。
8.一种处理器,具有
-用于提供具有第一指令序列(32)的第一程序(10)的第一处理器单元,
-至少一个用于提供至少一个具有第二指令序列(24)的第二程序(12)的第二处理器单元,其中
-所述第一程序包括具有时间关键的指令(20)的时间关键的区段(52),
-用于处理来自所述第一程序(10)和所述第二程序(12)的所述指令的处理器流水线(18),以及
-具有操作系统的存储器装置,其中,所述处理器设计用于实施所述操作系统,
其特征在于
-所述处理器或所述操作系统设计用于识别所述第一程序(10)中的所述时间关键的区段(52)的起始时间点,并且一旦识别了所述第一程序(10)中的所述时间关键的区段(52)的所述起始时间点,预先确定的中断程序(26)就插入到所述至少一个第二程序(12)中,
其中,所述中断程序(26)包括以下步骤:
-从存储器中读取值,
-将所述读取的值与预先确定的值进行比较,以及
-如果所述读取的值与所述确定的值不同,则重新启动所述中断程序(26)。
9.根据权利要求8所述的处理器,其特征在于,所述处理器包括数据交换单元和比较单元,其中,所述数据交换单元设计用于在所述中断程序(26)期间读取来自存储器中的值,并且其中,所述比较单元设计用于在所述中断程序(26)期间比较所述读取的值与预先确定的值。
10.根据权利要求8或9所述的处理器,其特征在于,所述处理器包括至少两个处理器内核。
11.一种具有根据权利要求8-10中任一项所述的处理器的自动化设备。
CN201280068191.4A 2012-01-31 2012-01-31 用于运行处理器的方法 Expired - Fee Related CN104081344B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2012/051483 WO2013113366A1 (de) 2012-01-31 2012-01-31 Verfahren zum betreiben eines prozessors

Publications (2)

Publication Number Publication Date
CN104081344A CN104081344A (zh) 2014-10-01
CN104081344B true CN104081344B (zh) 2017-10-31

Family

ID=45563007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280068191.4A Expired - Fee Related CN104081344B (zh) 2012-01-31 2012-01-31 用于运行处理器的方法

Country Status (4)

Country Link
US (1) US20140325185A1 (zh)
EP (1) EP2761436A1 (zh)
CN (1) CN104081344B (zh)
WO (1) WO2013113366A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101324852A (zh) * 2008-07-22 2008-12-17 北京航空航天大学 实时操作系统及其实时化方法
CN101582049A (zh) * 2008-05-13 2009-11-18 帝斯贝思数字信号处理和控制工程有限公司 用于执行实时计算待仿真信号的任务的方法
CN101887378A (zh) * 2010-06-18 2010-11-17 阳坚 一种半实物实时仿真机和半实物实时仿真系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477562B2 (en) * 1998-12-16 2002-11-05 Clearwater Networks, Inc. Prioritized instruction scheduling for multi-streaming processors
US7308686B1 (en) * 1999-12-22 2007-12-11 Ubicom Inc. Software input/output using hard real time threads
US6785887B2 (en) * 2000-12-27 2004-08-31 International Business Machines Corporation Technique for using shared resources on a multi-threaded processor
WO2005022381A2 (en) * 2003-08-28 2005-03-10 Mips Technologies, Inc. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7516313B2 (en) * 2004-12-29 2009-04-07 Intel Corporation Predicting contention in a processor
EP1814001B1 (de) * 2006-01-11 2015-09-16 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungsgerätes und Automatisierungsgerät
US7769955B2 (en) * 2007-04-27 2010-08-03 Arm Limited Multiple thread instruction fetch from different cache levels
US20090300629A1 (en) * 2008-06-02 2009-12-03 Mois Navon Scheduling of Multiple Tasks in a System Including Multiple Computing Elements
US7979642B2 (en) * 2008-09-11 2011-07-12 Arm Limited Managing the storage of high-priority storage items in storage units in multi-core and multi-threaded systems using history storage and control circuitry
US8695002B2 (en) * 2009-10-20 2014-04-08 Lantiq Deutschland Gmbh Multi-threaded processors and multi-processor systems comprising shared resources
JP5673666B2 (ja) * 2010-02-23 2015-02-18 富士通株式会社 マルチコアプロセッサシステム、割込プログラム、および割込方法
US9286137B2 (en) * 2012-09-14 2016-03-15 Intel Corporation Achieving deterministic execution of time critical code sections in multi-core systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582049A (zh) * 2008-05-13 2009-11-18 帝斯贝思数字信号处理和控制工程有限公司 用于执行实时计算待仿真信号的任务的方法
CN101324852A (zh) * 2008-07-22 2008-12-17 北京航空航天大学 实时操作系统及其实时化方法
CN101887378A (zh) * 2010-06-18 2010-11-17 阳坚 一种半实物实时仿真机和半实物实时仿真系统

Also Published As

Publication number Publication date
EP2761436A1 (de) 2014-08-06
US20140325185A1 (en) 2014-10-30
CN104081344A (zh) 2014-10-01
WO2013113366A1 (de) 2013-08-08

Similar Documents

Publication Publication Date Title
CN103761145B (zh) 用于各个处理器的辅助中断虚拟化的访客中断控制器
US8082420B2 (en) Method and apparatus for executing instructions
CN104011681B (zh) 向逻辑分区提供反映处理器核的独占使用的硬件线程特定信息
CN100461110C (zh) 预测处理器中的竞争
US10360038B2 (en) Method and apparatus for scheduling the issue of instructions in a multithreaded processor
US7689809B2 (en) Transparent return to parallel mode by rampoline instruction subsequent to interrupt processing to accommodate slave processor not supported by operating system
CN108463826A (zh) 用于在环转变期间保护栈的处理器扩展
US8645963B2 (en) Clustering threads based on contention patterns
CN105765541B (zh) 用于机动车的控制器
US9575816B2 (en) Deadlock/livelock resolution using service processor
US20130086581A1 (en) Privilege level aware processor hardware resource management facility
KR20120036301A (ko) 프로그램가능 예외 처리 지연
US9454424B2 (en) Methods and apparatus for detecting software inteference
US9715407B2 (en) Computer product, multicore processor system, and scheduling method
JP6273034B2 (ja) 仮想化コンピューティング装置及び方法
CN104750459A (zh) 带有事务功能以及报告事务操作的日志记录电路的处理器
US8108862B2 (en) Out-of-order thread scheduling based on processor idle time thresholds
WO2022237585A1 (zh) 处理方法及装置、处理器、电子设备及存储介质
US20070283138A1 (en) Method and apparatus for EFI BIOS time-slicing at OS runtime
US7779230B2 (en) Data flow execution of methods in sequential programs
US8214574B2 (en) Event handling for architectural events at high privilege levels
CN104081344B (zh) 用于运行处理器的方法
WO2022142595A1 (zh) 程序检测方法及装置
US11074200B2 (en) Use-after-free exploit prevention architecture
US20220300347A1 (en) Method of contentions mitigation for an operational application and associated system of contentions mitigation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171031

Termination date: 20200131