CN101523351A - 用于转换带有多个执行单元的系统的方法 - Google Patents
用于转换带有多个执行单元的系统的方法 Download PDFInfo
- Publication number
- CN101523351A CN101523351A CN200780037777.3A CN200780037777A CN101523351A CN 101523351 A CN101523351 A CN 101523351A CN 200780037777 A CN200780037777 A CN 200780037777A CN 101523351 A CN101523351 A CN 101523351A
- Authority
- CN
- China
- Prior art keywords
- program
- mode
- scheduler
- performance
- performance element
- 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
Links
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供了一种带有多个执行单元(2)的系统(1)和一种用于转换该系统的方法。根据本发明的带有多个执行单元(2)的系统(1)具有至少两个执行单元(2),并可在性能工作模式(PM)与比较工作模式(VM)之间转换,执行单元(2)在性能工作模式(PM)执行不同的程序,执行单元(2)在比较工作模式(VM)执行相同的程序。该系统(1)具有调度部件(SCH),该调度部件(SCH)由执行单元(2)调用来确定下一要执行的程序。在此,如果通过首先被调用的调度部件(SCH)所确定的程序要在比较工作模式(VM)执行,则其余的执行单元(2)被促使同样调用调度部件(SCH)。如果由上次被调用的调度部件(SCH)所确定的要执行的程序要在比较工作模式(VM)执行,则转换单元(3)将带有多个执行单元(2)的系统(1)从性能工作模式PM转换到比较工作模式(VM),其中被确定的要执行的程序作为具有最高优先级的程序由所有执行单元(2)在将系统(1)转换到比较工作模式(VM)之后来执行。
Description
本发明涉及一种带有多个执行单元的系统和一种用于转换该系统的方法,其中该带有多个执行单元的系统具有至少两个执行单元,这些执行单元可在性能工作模式(Performanz-Betriebsmodus)与比较工作模式之间转换,执行单元在性能工作模式执行不同的程序,执行单元在比较工作模式执行相同的程序。
在嵌入式系统(Embedded System)中,尤其是在汽车技术或者自动化技术中,存在其中处理器的硬件或微控制器硬件的故障可具有后果严重的后果的应用或应用程序。为减小这种危险,采用监控措施,以便检测故障。在有些应用或应用程序中,这样的监控几乎是永久必需的,而在其它应用中,监控功能有规律地(例如周期性地)监控或者根据一定请求(例如由于中断)来监控处理器系统或者其它部件是否也还正确工作。
DE 103 32 700描述了一种用于在处理器单元的至少两种工作模式之间进行转换的方法。在那描述的处理器单元具有两个执行单元。这样的计算机体系架构也被称为双核计算机体系架构。在DE 103 32 700中描述的处理器系统可在性能工作模式与比较工作模式之间转换。在性能工作模式,执行单元同时执行不同的程序,以便提高性能效率或计算机性能。不同于性能工作模式PM,在比较工作模式VM,执行单元执行相同的程序,并且结果或由执行单元发出的信号被相互比较。如果比较表明信号之间的偏差,则这接着触发故障信号。比较工作模式VM尤其是在对安全要求严格的程序中被采用,以便提高安全性。原则上,为了提高计算机性能,合理的是使尽可能多的应用或程序能在效率尽可能高的模式运行,即在性能工作模式PM运行。另一方面,在对安全要求严格的应用中,几乎所有任务或程序必须以高的故障识别来计算,即在比较工作模式VM来计算。
操作系统BS承担性能工作模式PM与比较工作模式VM之间的转换。该操作系统BS根据程序特定的标志来决定应该在哪种工作模式执行程序代码。这种标志既可以静态地又可以动态地被分配。也存在将程序固定地分配给一定的工作模式的可能性。
在带有多个执行单元的系统中,多个程序可同时被执行。所谓的调度部件决定实际上执行哪些程序,该调度部件构成操作系统BS的部分。在带有多个执行单元的系统中,调度部件在每个执行单元上单独地被执行。因此,存在多个调度部件或操作系统实体(Betriebssysteminstanz)。在此,这些实体绝大部分地基于同一数据来工作。运行的程序除了被调度部件中断以外,或许也由所谓的中断服务例行程序(Interrupt-Service-Routine)ISR来中断。在此,每个中断服务例行程序ISR被分配给一定的事件。如果发生该事件,则中断正在运行的程序,并执行所属的中断服务例行程序ISR。每个中断服务例行程序ISR都具有确定中断服务程序要在其中执行的所属的工作模式的标志。
在带有多个执行单元的系统中,该系统可在性能工作模式PM与比较工作模式VM之间转换,必需可靠地识别和初始化必要的工作模式更换。这个过程本身同样耗费计算时间或计算能力,并且不可在任何时刻都被中止。如果操作系统实体确定需要将模式更换为比较工作模式VM,则不可立即进行转换。只有针对在其它执行单元或核上执行具有较低优先级的程序的情况,才不再容许执行单元执行相应的程序,用于转换到比较工作模式VM。在此,确定其余执行单元上的程序的优先级变得困难,因为在带有多个执行单元的系统中,所有有效的程序或中断服务例行程序以及操作系统的程序本身都实际上同时被执行。与此相反,在常规的单处理器系统中,程序相继通过唯一的执行单元来执行。
在带有多个执行单元的系统中存在以下危险:操作系统实体(例如调度部件的实体)促使或进行工作模式更换,而在其它执行单元上运行的操作系统实体则在以前的工作模式保持不变。由于对于系统中的工作模式更换尤其是在更换到比较工作模式VM的工作模式更换来说,必需至少两个执行单元,所以相关的执行单元可被闭塞一定的时间。
简单的例子应解释这种情况。在这种情况下,程序的总体例如包含具有相对应的优先级的四个任务T1、T2、T3、T4,也就是说T1具有最高优先级“Prio 3”,T2具有第二最高优先级“Prio 2”,T3具有第三最高优先级“Prio 1”,并且最后的任务T4具有最低优先级“Prio0”,而且任务T1至T4被表征来使得任务T1、T2要在性能工作模式PM执行,而任务T3、T4要在比较工作模式VM执行。带有多个执行单元的系统例如具有两个执行单元或CPU。如果第一执行单元CPU1在性能工作模式PM首先执行优先级最高的任务T1,则另一执行单元或CPU执行具有第二最高优先级的任务T2。这样,任务T1一旦被完成,操作系统BS就由第一执行单元CPU1来调用,并且调度部件决定哪个任务T应作为下一任务来执行。在所给的例子中,调度部件选择任务T3,因为该任务T3具有下一较高的优先级“Prio 1”。可是,该任务T3具有说明任务T3应该在比较工作模式VM执行的属性或特征。因此,具有多个执行单元的系统要被转换到比较工作模式VM。在第二执行单元CPU2上还运行任务T2。因而,调度部件等待,直到CPU2上的任务T2被完成。一旦CPU2上的任务T2被完成,调度部件或操作系统BS就将两个执行单元都切换到比较工作模式VM,并开始任务T3。在这种情况下,不会形成冲突。但是,如果在另一例子中,任务T2具有比任务T3低的优先级,例如当任务T2具有“Prio 1”,而任务T3具有“优先级2”时,则在给出的场景中,操作系统BS必须在完成已在CPU1上被执行的任务T1之后立即中断仍在CPU2上运行的任务T2,并在两个执行单元上运行任务T3。但是,操作系统BS本身必须在一个执行单元上被执行。在给出的例子中,操作系统BS在被释放的第一执行单元CPU1上被执行并想要开始任务T3。对此,操作系统必须确定:正在执行单元CPU2上运行的任务T2具有哪个优先级。但是,比较第一执行单元CPU1上的任务T2和T3的优先级必需一定时间。可是,在优先级比较所需的时间间隔或持续时间期间可出现以下情况:第二执行单元CPU2完成任务T2并从他那方面调用操作系统或调度部件。在给出的例子中,第二执行单元会调用剩余的任务T4,该任务T4要在比较工作模式VM执行,并且会导致任务T3和T4之间的冲突,任务T3和T4都必需第一和第二执行单元CPU1、CPU2。如果被调用的任务T必须在比较工作模式VM运行,则已出现的冲突可一直出现。
因而,本发明的任务是提供一种带有多个执行单元的系统以及用于对该系统进行转换的方法,其中避免在转换到比较工作模式时的冲突。
根据本发明,通过具有在权利要求1中所说明的特征的方法以及通过具有权利要求11中所说明的特征的带有多个执行单元的系统来解决该任务。
本发明提供一种用于将带有多个执行单元的系统从性能工作模式PM转换到比较工作模式VM的方法,该系统具有至少两个执行单元,执行单元在性能工作模式PM执行不同的程序,执行单元在比较工作模式VM执行相同的程序,该方法具有以下步骤,即:
-由执行单元调用调度部件,其中,被调用的调度部件确定下一要执行的程序;
-如果下一要执行的程序要在比较工作模式VM执行,则促使其余的执行单元同样调用该调度部件;以及
-如果由上次被调用的调度部件所确定的要执行的程序要在比较工作模式VM执行,则将带有多个执行单元的系统从性能工作模式PM转换到比较工作模式VM,其中该由上次被调用的调度部件所确定的要执行的程序作为具有最高优先级的程序由所有执行单元在带有多个执行单元的系统的比较工作模式VM来执行。
在根据本发明的方法的优选实施形式中,首先调用调度部件以确定下一要执行的程序的那个执行单元等待,直到所有其余执行单元已经通过调用调度部件同样确定了下一要执行的程序,并且接着才检查,由上次被调用的调度部件所确定的构成具有最高优先级的程序的程序是否要在比较工作模式VM执行。
在根据本发明的方法的实施形式中,如果由上次被调用的调度部件所确定的程序将不在比较工作模式VM执行,则已首先调用了调度部件的那个执行单元重新调用该调度部件。
在根据本发明的方法的实施形式中,如果被调用的调度部件确定一程序作为下一要执行的程序,该程序将不在比较工作模式VM执行而是要在性能工作模式PM执行,则该要执行的程序无需转换而直接被执行。
在根据本发明的方法的实施形式中,如果所确定的程序要在比较工作模式VM执行,则调用调度部件以确定下一要执行的程序的执行单元将所确定的程序的优先级与所有正在其它执行单元上被执行的程序的优先级进行比较。
在根据本发明的方法的实施形式中,如果正在其它执行单元上被执行的程序的优先级比通过首先被调用的调度部件所确定的作为下一要执行的程序的优先级高,则首先调用了调度部件的那个执行单元转变到空载工作模式(IDLE(空闲))并等待,直到其余的执行单元已分别完成其程序。
在根据本发明的方法的实施形式中,如果下一要执行的程序要在比较工作模式VM执行,则调用调度部件以确定下一要执行的程序的那个执行单元通过给其它执行单元发送请求信号来促使其它执行单元同样调用该调度部件。
在根据本发明的方法的实施形式中,通过中断信号来构成该请求信号。
在根据本发明的方法的实施形式中,分别通过处理器、协处理器、浮点计算单元、算术逻辑单元或者通过数字信号处理器来构成执行单元。
在根据本发明的方法的可能的实施形式中,执行单元在完成被执行的程序之后调用调度部件。
此外,本发明提供一种带有至少两个执行单元的系统,该系统可在性能工作模式PM与比较工作模式VM之间转换,执行单元在性能工作模式PM执行不同的程序,执行单元在比较工作模式VM执行相同的程序,该系统具有:
-调度部件,该调度部件由执行单元调用来确定下一要执行的程序,
其中,如果通过首先被调用的调度部件所确定的程序要在比较工作模式VM执行,则其余的执行单元被促使来同样调用该调度部件;以及具有
-转换单元,如果由上次被调用的调度部件所确定的要执行的程序要在比较工作模式VM执行,则该转换单元将带有多个执行单元的系统从性能工作模式PM转换到比较工作模式VM,
其中,该被确定要执行的程序作为具有最高优先级的程序由所有执行单元在将带有多个执行单元的系统转换到比较工作模式VM之后被执行。
然后,参考用于阐明本发明的实质特征的附图来描述根据本发明的带有多个执行单元的系统的优选实施形式以及根据本发明的用于转换该系统的方法的优选实施形式。
其中:
图1示出根据本发明的带有多个执行单元的系统的可能的实施形式;
图2A示出用于阐明根据本发明的转换方法的流程图;
图2B示出用于阐明根据本发明的转换方法的另一流程图。
如可从图1认出的那样,图1中所示的系统1是带有两个执行单元2A、2B的双核系统。执行单元2A、2B可以是任意的计算单元,例如是完整的微处理器、协处理器、数字信号处理器DSP、浮点计算单元FPU或者是算术逻辑单元ALU。带有多个执行单元的系统1的两个执行单元2A、2B被连接到转换单元3。此外,该带有多个执行单元的系统具有中断控制器4,该中断控制器4通过总线接口5被连接到系统总线6。系统总线6从它那方面通过地址线和数据线7A、7B被连接到两个执行单元2A、2B。地址线和数据线7A、7B构成了执行单元2A、2B与系统总线6的总线接口。系统1除了包含转换单元3以外还包含比较单元8,该比较单元8将由执行单元2A、2B通过数据线7A、7B所发出的信号相互进行比较。图1中所示的带有两个执行单元2A、2B的系统1可在性能工作模式PM与比较工作模式VM之间转换,执行单元2A、2B在性能工作模式PM执行不同的程序,执行单元2A、2B在比较工作模式VM执行相同的程序。在比较工作模式VM,比较单元8对执行单元2A、2B的逻辑输出信号进行比较。一旦出现信号偏差,比较单元8就生成故障信号,比较单元8将该故障信号通过控制线9发出。执行单元2A、2B除了执行应用程序之外还执行操作系统BS的程序。操作系统BS的部分通过选出下一要执行的程序的调度部件来构成并为了执行而被分配给两个核或执行单元2A、2B之一。该调度部件例如可以在完成程序之后由执行单元调用来确定下一要执行的程序,其中在根据本发明的系统1中,只要通过首先被调用的调度部件所确定的程序要在比较工作模式VM执行,就同样促使其余的执行单元调用该调度部件。如果由上次被调用的调度部件所确定的要执行的程序要在比较工作模式VM执行,则转换单元3将执行单元2A、2B从性能工作模式PM转换到比较工作模式VM。在此,该被确定的要执行的程序作为具有最高优先级的程序通过所有执行单元2A、2B在将系统1转换到比较工作模式VM之后被执行。如果第一执行单元2A在调用调度部件之后接下来必须执行要在比较工作模式VM执行的任务,则运行在执行单元2A之上的操作系统调度部件或操作系统调度部件实体给所有执行单元用信号通知:该操作系统调度部件想要开始在比较工作模式VM的任务或程序。这促使其余的执行单元从它们那方面调用操作系统调度部件,该操作系统调度部件是某种算法,其中首先调用了调度部件的那个执行单元等待。
在上面描述的带有四个任务T1、T2、T3、T4的简单例子中,其中T1具有最高优先级(Prio 3),T2具有第二最高优先级(Prio 2),T3具有第三最高优先级(Prio 1),而T4具有最低优先级(Prio 0),其中T1、T2要在性能工作模式PM执行,而T3、T4要在比较工作模式VM执行,执行单元2A在完成任务T1之后调用操作系统调度部件,该操作系统调度部件促使执行单元2B中断正在运行的程序或正在运行的任务T2,并从他那方面调用操作系统调度部件。如图1中示出的那样,执行单元2A会通过线路10A将转换期望信号(Umschaltwunschsignal)传输给转换单元3。第二执行单元2B可以以相同的方式通过线路10B向转换单元3用信号通知转换期望。切换单元3在需要时通过控制线11A、11B将转换信号施加到执行单元2A、2B。
在图1中所示的根据本发明的带有多个执行单元的系统1的实施形式中,系统1包含中断控制器4。在可替换的实施形式中,可设置多个中断控制器4。该中断控制器4例如被编程来使得中断控制器4可触发通过软件控制的中断,即内部中断。中断控制器4通过线路12A、12B单独地向执行单元2A、2B或同时向两个执行单元2A、2B发出中断请求。在可能的实施形式中,中断控制器4所管理的中断被划分优先等级。然而这并不是强制性必需的。在一种可能的实施形式中,可使用具有最低优先级的中断来用信号通知模式更换到比较工作模式VM。中断服务例行程序ISR被分配给每个出现的硬件中断。在此,中断服务例行程序ISR具有说明该中断服务例行程序ISR是否必须在比较工作模式VM执行的标志。如果中断服务例行程序ISR不必在比较工作模式VM执行,并且如果其中要执行该中断服务例行程序的执行单元目前处于比较工作模式VM,则不进行模式更换。
在可能的实施形式中,中断例行程序比应用程序的执行有优先地位。如果中断服务例行程序ISR在比较工作模式VM执行,则中断控制器4被编程来使得中断控制器4通过线路5从系统总线6得到的中断请求通过线路12A、12B被发送给两个执行单元2A、2B。在执行操作系统BS的程序代码的执行单元或处理器核中,在该执行单元或处理器上不可处理中断询问或中断请求。在出现硬件中断时执行以下步骤:首先,包括工作模式在内的当前处理器状态被保护或被存储。紧接着,在其中要执行所属的中断服务例行程序ISR的工作模式被确定,并在需要时进行到比较工作模式VM的转换。接着,所有具有较高优先级的中断被释放。紧接着,中断服务例行程序ISR被执行,并且被保护的或被存储的处理器状态被重新产生。在需要时紧接着再次转换到性能工作模式PM。
在根据图1的根据本发明的带有多个执行单元的系统1中,如下进行对任务或对程序的调度:如果带有多个执行单元的系统1处于比较工作模式VM,则所有执行单元2A、2B同时执行相同的程序或相同的任务T。如果调度部件SCH出于某一个原因针对任务更换被调用,例如如果执行单元表明该执行单元的程序已完成,则构成操作系统BS的部分的调度部件SCH确定出具有最高优先级的那个程序或那个任务T,并根据程序标志将系统1切换到性能工作模式PM或者切换到比较工作模式VM。
如果系统1处于性能工作模式PM,则存在多个调度部件实体,即在第一执行单元2A上存在调度部件实体SCH-A,而调度部件实体SCH-B位于第二执行单元2B上。
如果例如调度部件实体SCH-B确定了具有最高优先级的下一任务Tx并且所确定的程序或所确定的任务Tx要求在比较工作模式VM执行,则首先不改变调度数据结构。而是由调度实体SCH-A来确定处理器2B上的程序或任务Ty的优先级。如果任务Ty具有比下一任务Tx低的优先级,则通过中断用信号通知执行单元2B:存在转换期望。如果该任务Ty具有比任务Tx高的优先级,则调度部件SCH-A激活所谓的IDLE(空闲)任务,该IDLE(空闲)任务构成空载工作状态。在用信号通知之后,调度实体SCH-A等待调度实体SCH-B完成(屏障(Barrier))。如果中断服务例行程序ISR在执行单元2A上被执行,则只有当处理器2A上的所有中断都被执行时才开始处理转换期望询问。如果执行单元2A由于调度部件实体SCH-A的转换期望而激活操作系统BS,则也由执行单元2A来调用调度部件实体SCH-B。如果在执行单元2B上运行的调度部件实体SCH-B也得出任务Tx必须被执行的结果,则调度实体SCH-B将在执行单元2A上运行的调度实体SCH-A从闭锁或屏障解除。
如果调度实体SCH-B得出不是任务Tx而是任务Tz必须在性能工作模式PM执行的结果,即任务Tz的优先级高于任务Tx的优先级,则调度实体SCH-A同样从屏障被解除。然后,调度实体SCH-B促使执行任务Tz,并且调度实体SCH-A重新确定具有最高优先级的任务或程序(重新调度(Reschedule))。
如果调度实体SCH-B得出不是任务Tx而是任务Tz必须在比较工作模式VM执行的结果,即任务Tz的优先级高于任务Tx的优先级,则调度实体SCH同样从屏障被解除。然后,调度实体SCH-A、SCH-B促使任务Tz在两个执行单元上的执行。
在可能的实施形式中,也可以通过调度实体SCH-A来设置运行内部(betriebsintern)的标记(Flag)。然后,该标记将切换期望用信号通知。如果执行单元2B同时执行操作系统BS的程序,则调度实体SCH-A必须等待,直到第二执行单元2B离开操作系统BS并通过中断得到转换期望。第二执行单元2B可在适当位置询问该标记,并在需要时调用调度部件SCH-B或执行重新调度,而不必离开操作系统BS。
在根据本发明的用于转换到比较工作模式VM的方法中,调度部件因此不仅通过一个执行单元被调用,而且还被其余的执行单元调用。只有当由上次被调用的调度部件SCH所确定的要执行的程序要在比较工作模式VM执行时,才实现转换过程。然后,该由上次被调用的调度部件所确定的要执行的程序作为具有最高优先级的程序由所有执行单元2在系统1的比较工作模式VM来执行。首先调用调度部件SCH以确定下一要执行的程序的那个执行单元2等待,直到所有其余的执行单元2已经通过调用调度部件同样确定了下一要执行的程序。接着才检查,由上次被调用的调度部件SCH所确定的构成具有最高优先级的程序是否要在比较工作模式VM执行。
如果出现以下情况:由上次被调用的调度部件SCH所确定的程序将不在比较工作模式VM执行,则首先调用了调度部件SCH的那个执行单元2重新调用该调度部件。如果在通过第一执行单元2调用调度部件SCH与通过最后的执行单元2调用调度部件SCH之间的时间间隔中已出现了使对任务T另外划分优先等级必要的事件,则这种情况也可出现。
对于被调用的调度部件SCH确定了作为下一要执行的程序的程序的情况,该程序将不在比较工作模式VM执行,而是要在性能工作模式PM执行,要执行的程序或任务T无需转换而直接被执行。
在根据本发明的方法的实施形式中,如果正由另外的执行单元2执行的程序的优先级比由首先被调用的调度部件所确定的下一要执行的程序的优先级高,则首先调用了调度部件SCH的那个执行单元2转变到空载工作模式(IDLE),直到其余的执行单元2完成了它们的程序。
在根据本发明的方法的实施形式中,如果下一要执行的程序要在比较工作模式VM执行,则首先调用调度部件以确定下一要执行的程序的那个执行单元2通过给其它执行单元发送请求信号来促使其它执行单元2同样调用该调度部件。该请求信号优选地通过中断信号来构成。
图2A示出了用于阐述根据本发明的方法的流程图。图2A中所示的流程图例如示出了第一执行单元2A之内的流程。如果例如通过执行单元2A规定程序或任务T(例如任务T1)的期限,则调用调度部件。在步骤S1A调用了调度部件SCH之后,在步骤S2A确定:下一程序或下一任务T应在比较工作模式VM执行还是应在性能工作模式PM执行。如果任务T2在所给的例子中的第二执行单元2B上运行,并且如果具有优先级1的任务T3根据优先级通过调度部件SCH被选为下一要执行的任务,该任务T3必须在比较工作模式VM执行,则该流程分岔到步骤S3A。如果下一要执行的程序相反地要在性能工作模式PM执行,则该程序可直接在步骤S4A开始。在步骤S3A,下一要执行的任务T3的优先级与正在另一执行单元2B上运行的那个程序的优先级进行比较。在所给的例子中,这是具有优先级Prio 2的任务T2。如果运行在其它执行单元上、即运行在执行单元2B上的程序具有较高的优先级,则该程序可以不被中断。在这种情况下,执行单元2A在步骤S5A转变到空载工作模式(IDLE)。在所给的例子中,在运行的任务T2的优先级(Prio2)高于任务T3的优先级(Prio 1),以致执行步骤S5A。如果另外的执行单元2B上的程序的优先级相反地低于下一任务的优先级,则在步骤S6A,转换期望通过中断由执行单元2A被用信号通知给执行单元2B。在此,中断服务例行程序ISR被触发。在用信号通知之后,第一执行单元2A在步骤S7A进入所谓的屏障,在该屏障中,执行单元2A等待执行单元2B的信号。该屏障为软件同步数据结构,其中执行单元或CPU等待,直到另外的执行单元到达相同的程序执行点。在触发中断服务例行程序ISR之后,第二执行单元2B在它那方面调用操作系统调度部件SCH,其中图2B中所示的流程被执行。如果执行单元2B也到达屏障,则两个执行单元2A、2B类似并行地(但是不在比较工作模式VM)被检查:两个执行单元2A、2B是否都已得出相同结果,即两个执行单元2A、2B接下来是否要执行同一程序或同一任务。执行单元2A到达屏障在图2被示为步骤S7A。必要时,在步骤S8A紧接着清除中断服务例行程序ISR。在步骤S9A示出以下检查:两个执行单元2A、2B是否都已得出相同的结果,即两个执行单元2A、2B是否要执行同一程序或同一任务T。如果两个执行单元2A、2B在相应调用调度部件SCH之后确定了同一程序或同一任务T,则在步骤S10A,系统1被切换到比较工作模式VM并紧接着在步骤S4A在两个执行单元2A、2B中执行或开始该程序或任务。如果例如结果比较S9A得出:第二执行单元2B在调用调度部件之后也想要执行要在比较工作模式VM执行的任务T3,则在步骤S10A转换到比较工作模式VM之后,在步骤S4A开始该任务T3。如果相反地确定:另一执行单元2B提供了其它结果,则在步骤S11A检查:由执行单元2B所选出的程序或所选出的任务T是否同样应在比较工作模式VM被执行。如果是这种情况,则在步骤S10A,系统1被切换到比较工作模式VM,并在步骤S4A开始由上次被调用的调度部件SCH确定的那个任务,即由执行单元2B所确定的任务。如果在步骤S11A确定:由执行单元2B所确定的任务T不应在比较工作模式VM执行,而是应在性能工作模式PM执行,则执行单元2A在步骤S1A重新调用调度部件SCH。
图2B示出了另一执行单元2B中的补充流程。在根据图2A的步骤S6A通过执行单元2A触发了中断服务例行程序ISR之后,执行单元2B在根据图2B的步骤S1B从它那方面调用调度部件SCH。执行单元2B进入相对应的中断服务例行程序ISR。执行单元2B在步骤S1B第一个启动调度部件SCH并紧接着在步骤S2B进入屏障,以致处理器2A也继续工作。必要时,在步骤S3B清除中断控制器4中的中断。在步骤S4B,如在图2B中所示的那样,确定是否不仅执行单元2A而且执行单元2B都已确定了同一任务T或同一程序。如果两个执行单元2A、2B确定了同一任务T,则在步骤S5B转换到比较工作模式VM,并紧接着在步骤S6B执行任务T。如果第二执行单元2B确定了不同于执行单元2A执行的任务,则该过程分岔到步骤S7B。如果由第二执行单元2B要执行的任务同样要在比较工作模式VM执行,则在步骤S5B再次转换到比较工作模式VM,并且上次确定的任务、即由执行单元2所B确定的任务在步骤S6B被执行。如果在步骤S7B确定:由第二执行单元2B所确定的任务T不应在比较工作模式VM执行,而是例如在性能工作模式PM执行,则不转换到比较工作模式VM,并且该任务在步骤S6B被执行。
图2A、2B中所示的程序流程是互补的。如果例如第二执行单元2A与通过执行单元2A用信号通知转换期望无关地进入操作系统BS,则在这种情况下,第二执行单元2B执行图2A中所示的流程,而执行单元2A执行图2B中所示的流程。
根据本发明的方法在任何情况下都阻止了在转换到比较工作模式VM时对执行单元2的闭塞。根据本发明的方法尤其适用于带有两个或更多执行单元的系统。如果系统1例如具有两个执行单元2,则在根据本发明的方法中进行两次调度,因为由上次被调用的调度实体所确定的任务具有当前最高的优先级并因此被执行。在此,两个调度实体基于包含在流程中的屏障互相被同步。
Claims (11)
1.一种用于将带有多个执行单元的系统(1)从性能工作模式(PM)转换到比较工作模式(VM)的方法,所述带有多个执行单元的系统(1)具有至少两个执行单元(2),执行单元(2)在性能工作模式(PM)执行不同的程序,执行单元(2)在比较工作模式(VM)执行相同的程序,该方法具有以下步骤:
(a)通过执行单元(2)调用(S1A)调度部件,其中被调用的调度部件(SCH)确定下一要执行的程序;
(b)如果下一要执行的程序要在比较工作模式(VM)执行,则促使(S6A)其余的执行单元(2)同样调用该调度部件(SCH);以及
(c)如果由上次被调用的调度部件(SCH)所确定的要执行的程序要在比较工作模式(VM)执行,则将带有多个执行单元的系统(1)从性能工作模式(PM)转换(S10A)到比较工作模式(VM),其中该由上次被调用的调度部件(SCH)所确定的要执行的程序作为具有最高优先级的程序由所有执行单元(2)在带有多个执行单元的系统(1)的比较工作模式(VM)来执行。
2.根据权利要求1所述的方法,其中,首先调用调度部件(SCH)以确定下一要执行的程序的那个执行单元(2)等待(S7A),直到所有其余的执行单元(2)通过调用调度部件(SCH)同样确定了下一要执行的程序,并且接着才检查(S9A),由上次被调用的调度部件(SCH)所确定的构成具有最高优先级的程序的程序是否要在比较工作模式(VM)执行。
3.根据权利要求2所述的方法,其中,如果确定(S11A):由上次被调用的调度部件(SCH)所确定的程序将不在比较工作模式(VM)执行,则首先调用了调度部件(SCH)的那个执行单元(2)重新调用(S1A)调度部件(SCH)。
4.根据权利要求3所述的方法,其中,如果被调用的调度部件(SCH)确定(S2A)作为下一要执行的程序的将不在比较工作模式(VM)执行而是要在性能工作模式(PM)执行的程序,则要执行的程序无需转换而直接被执行(S4A)。
5.根据权利要求1所述的方法,其中,如果所确定的程序要在比较工作模式(VM)执行,则调用(S1A)调度部件(SCH)以确定下一要执行的程序的执行单元(2)将所确定的程序的优先级与所有正在其它执行单元(2)上被执行的程序的优先级进行比较(S3A)。
6.根据权利要求5所述的方法,其中,如果正在其它执行单元(2)上被执行的程序的优先级比通过首先被调用的调度部件(SCH)所确定的下一要执行的程序的优先级高,则首先调用了调度部件(SCH)的那个执行单元(2)转变(S5A)到空载工作模式(IDLE)并等待,直到其余的执行单元(2)分别完成了其余的执行单元(2)的程序。
7.根据权利要求6所述的方法,其中,如果下一要执行的程序要在比较工作模式(VM)执行,则首先调用调度部件(SCH)以确定下一要执行的程序的那个执行单元(2)通过给其它执行单元发送(S6A)请求信号来促使其它执行单元(2)同样调用所述调度部件。
8.根据权利要求7所述的方法,其中,请求信号通过中断信号来构成。
9.根据权利要求1所述的方法,其中,分别通过处理器、协处理器、浮点计算单元(FPU)、算术逻辑单元(ALU)或者通过数字信号处理器(DSP)来构成执行单元(2)。
10.根据权利要求1所述的方法,其中,执行单元(2)在完成所执行的程序之后调用所述调度部件(SCH)。
11.一种带有至少两个执行单元(2)的系统(1),所述系统(1)能在性能工作模式(PM)与比较工作模式(VM)之间被转换,执行单元(2)在性能工作模式(PM)执行不同的程序,执行单元(2)在比较工作模式(VM)执行相同的程序,所述系统(1)具有调度部件(SCH),该调度部件(SCH)由执行单元(2)调用来确定下一要执行的程序,其中,如果通过首先被调用的调度部件(SCH)所确定的程序要在比较工作模式(VM)执行,则其余的执行单元(2)被促使同样调用该调度部件(SCH),并且所述系统(1)具有转换单元(3),如果由上次被调用的调度部件(SCH)所确定的要执行的程序要在比较工作模式(VM)执行,则该转换单元(3)将所述系统(1)从性能工作模式(PM)转换到比较工作模式(VM),其中被确定的要执行的程序作为具有最高优先级的程序由所有执行单元(2)在将所述系统(1)转换到比较工作模式(VM)之后来执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102006048173A DE102006048173A1 (de) | 2006-10-10 | 2006-10-10 | Verfahren zum Umschalten eines Systems mit mehreren Ausführungseinheiten |
DE102006048173.9 | 2006-10-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101523351A true CN101523351A (zh) | 2009-09-02 |
Family
ID=38925487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780037777.3A Pending CN101523351A (zh) | 2006-10-10 | 2007-09-19 | 用于转换带有多个执行单元的系统的方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20100281485A1 (zh) |
EP (1) | EP2084606B1 (zh) |
JP (1) | JP4908587B2 (zh) |
CN (1) | CN101523351A (zh) |
DE (1) | DE102006048173A1 (zh) |
WO (1) | WO2008043649A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103052924A (zh) * | 2011-01-31 | 2013-04-17 | 丰田自动车株式会社 | 安全控制装置及安全控制方法 |
CN105511941A (zh) * | 2015-03-16 | 2016-04-20 | 卡巴斯基实验室股份公司 | 辅助计算机系统中多个管理程序的联合操作的系统和方法 |
CN112416609A (zh) * | 2021-01-22 | 2021-02-26 | 南京芯驰半导体科技有限公司 | 双核模式的模式配置方法及装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101282139B1 (ko) * | 2006-09-11 | 2013-07-04 | 삼성전자주식회사 | 별도 버튼을 이용하여 성능모드 변경이 가능한컴퓨터시스템 및 그 제어방법 |
FR2955949A1 (fr) * | 2010-01-29 | 2011-08-05 | Peugeot Citroen Automobiles Sa | Calculateur electronique de controle embarque dans un vehicule |
US9734006B2 (en) * | 2015-09-18 | 2017-08-15 | Nxp Usa, Inc. | System and method for error detection in a critical system |
DE102017206626A1 (de) | 2016-12-19 | 2018-07-05 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Steuern von Prozessen |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54139446A (en) * | 1978-04-21 | 1979-10-29 | Toshiba Corp | Process mode control unit |
JPH0973436A (ja) * | 1995-09-05 | 1997-03-18 | Mitsubishi Electric Corp | 多重化計算機における動作モード切替方式 |
US5790397A (en) * | 1996-09-17 | 1998-08-04 | Marathon Technologies Corporation | Fault resilient/fault tolerant computing |
US6640313B1 (en) * | 1999-12-21 | 2003-10-28 | Intel Corporation | Microprocessor with high-reliability operating mode |
JP2004240555A (ja) * | 2003-02-04 | 2004-08-26 | Fujitsu Ltd | バッテリ運用制御装置、バッテリ運用制御方法およびバッテリ運用制御プログラム |
WO2005003962A2 (de) * | 2003-06-24 | 2005-01-13 | Robert Bosch Gmbh | Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit |
DE10332700A1 (de) | 2003-06-24 | 2005-01-13 | Robert Bosch Gmbh | Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit |
-
2006
- 2006-10-10 DE DE102006048173A patent/DE102006048173A1/de not_active Withdrawn
-
2007
- 2007-09-19 US US12/308,476 patent/US20100281485A1/en not_active Abandoned
- 2007-09-19 WO PCT/EP2007/059900 patent/WO2008043649A1/de active Application Filing
- 2007-09-19 CN CN200780037777.3A patent/CN101523351A/zh active Pending
- 2007-09-19 JP JP2009517291A patent/JP4908587B2/ja not_active Expired - Fee Related
- 2007-09-19 EP EP07820344A patent/EP2084606B1/de not_active Not-in-force
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103052924A (zh) * | 2011-01-31 | 2013-04-17 | 丰田自动车株式会社 | 安全控制装置及安全控制方法 |
CN103052924B (zh) * | 2011-01-31 | 2014-09-24 | 丰田自动车株式会社 | 安全控制装置及安全控制方法 |
CN105511941A (zh) * | 2015-03-16 | 2016-04-20 | 卡巴斯基实验室股份公司 | 辅助计算机系统中多个管理程序的联合操作的系统和方法 |
CN105511941B (zh) * | 2015-03-16 | 2019-04-19 | 卡巴斯基实验室股份公司 | 辅助计算机系统中多个管理程序的联合操作的系统和方法 |
CN112416609A (zh) * | 2021-01-22 | 2021-02-26 | 南京芯驰半导体科技有限公司 | 双核模式的模式配置方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4908587B2 (ja) | 2012-04-04 |
WO2008043649A1 (de) | 2008-04-17 |
DE102006048173A1 (de) | 2008-04-17 |
EP2084606A1 (de) | 2009-08-05 |
EP2084606B1 (de) | 2012-11-14 |
JP2009541887A (ja) | 2009-11-26 |
US20100281485A1 (en) | 2010-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101523351A (zh) | 用于转换带有多个执行单元的系统的方法 | |
US8205201B2 (en) | Process for maintaining execution synchronization between several asynchronous processors working in parallel and in a redundant manner | |
CN102455940B (zh) | 一种定时器和异步事件的处理方法及系统 | |
CN101499041B (zh) | 一种避免主机在访问共享设备造成异常死锁的方法 | |
US20120260257A1 (en) | Scheduling threads in multiprocessor computer | |
WO2006058242A3 (en) | Hardware multithreading systems and methods | |
US8219796B2 (en) | Method and device for controlling a computer system | |
US6820263B1 (en) | Methods and system for time management in a shared memory parallel processor computing environment | |
Schliecker et al. | Response time analysis on multicore ECUs with shared resources | |
CN103026309A (zh) | 安全控制装置以及安全控制方法 | |
US10430205B2 (en) | Locking/unlocking CPUs to operate in safety mode or performance mode without rebooting | |
CN105373425A (zh) | 一种嵌入式Linux系统性能优化的方法及装置 | |
CN103348294A (zh) | 安全控制装置以及安全控制方法 | |
CN113986500A (zh) | 多任务系统中的任务确定性调度方法和任务诊断方法 | |
JP4614239B2 (ja) | マルチタスクスケジューリング機能搭載装置及びプログラム | |
EP1770517A2 (en) | Improvements relating to reduced-overhead context-saving in static priority scheduled operating systems | |
CN103154919B (zh) | 多处理器系统中的异常控制 | |
US8423681B2 (en) | Control apparatus for process input-output device | |
US8561079B2 (en) | Inter-thread load arbitration control detecting information registered in commit stack entry units and controlling instruction input control unit | |
CN105474174A (zh) | 控制时间密集的指令 | |
JP2013152636A (ja) | 情報処理装置、タスクスケジューリング方法 | |
Persya et al. | Model based design of super schedulers managing catastrophic scenario in hard real time systems | |
US6941175B2 (en) | Method of operating an industrial controller | |
Belagali et al. | Implementation and validation of dynamic scheduler based on LST on FreeRTOS | |
US20230409403A1 (en) | Control device and control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20090902 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |