用于转换带有多个执行单元的系统的方法

文档序号:6456129阅读:162来源:国知局
专利名称:用于转换带有多个执行单元的系统的方法
用于转换带有多个执行单元的系统的方法
技术领域
本发明涉及一种带有多个执行单元的系统和一种用于转换该系统 的方法,其中该带有多个执行单元的系统具有至少两个执行单元,这
些执4于单元可在,性負巨工作模式(Performanz — Betr iebsmodus )与比较
工作模式之间转换,执行单元在性能工作模式执行不同的程序,执行 单元在比较工作模式执行相同的程序。
在嵌入式系统(Embedded System)中,尤其是在汽车技术或者自 动化技术中,存在其中处理器的硬件或微控制器硬件的故障可具有后 果严重的后果的应用或应用程序。为减小这种危险,采用监控措施, 以便检测故障。在有些应用或应用程序中,这样的监控几乎是永久必 需的,而在其它应用中,监控功能有规律地(例如周期性地)监控或 者根据一定请求(例如由于中断)来监控处理器系统或者其它部件是 否也还正确工作。
DE 103 32 700描述了一种用于在处理器单元的至少两种工作模式 之间进行转换的方法。在那描述的处理器单元具有两个执行单元。这 样的计算机体系架构也被称为双核计算机体系架构。在DE 103 32 700 中描述的处理器系统可在性能工作模式与比较工作模式之间转换。在 性能工作模式,执行单元同时执行不同的程序,以便提高性能效率或 计算机性能。不同于性能工作模式PM,在比较工作模式VM,执行单元 执行相同的程序,并且结果或由执行单元发出的信号被相互比较。如 果比较表明信号之间的偏差,则这接着触发故障信号。比较工作模式 VM尤其是在对安全要求严格的程序中被采用,以便提高安全性。原则 上,为了提高计算机性能,合理的是使尽可能多的应用或程序能在效 率尽可能高的模式运行,即在性能工作模式PM运行。另一方面,在对 安全要求严格的应用中,几乎所有任务或程序必须以高的故障识别来 计算,即在比较工作模式VM来计算。
操作系统BS承担性能工作模式PM与比较工作模式VM之间的转换。 该操作系统BS根据程序特定的标志来决定应该在哪种工作模式执行程 序代码。这种标志既可以静态地又可以动态地被分配。也存在将程序 固定地分配给一定的工作模式的可能性。在带有多个执行单元的系统中,多个程序可同时被执行。所谓的
调度部件决定实际上执行哪些程序,该调度部件构成操作系统BS的部 分。在带有多个执行单元的系统中,调度部件在每个执行单元上单独 地被执行。因此,存在多个调度部件或操作系统实体 (Betriebssysteminstanz)。在此,这些实体绝大部分地基于同 一数 据来工作。运行的程序除了被调度部件中断以外,或许也由所谓的中 断月艮务伊M亍程序(Interrupt — Service — Routine ) ISR来中断。在此, 每个中断服务例行程序ISR被分配给一定的事件。如果发生该事件, 则中断正在运行的程序,并执行所属的中断服务例行程序ISR。每个中 断服务例行程序ISR都具有确定中断服务程序要在其中执行的所属的 工作模式的标志。
在带有多个执行单元的系统中,该系统可在性能工作模式PM与比 较工作模式VM之间转换,必需可靠地识别和初始化必要的工作模式更 换。这个过程本身同样耗费计算时间或计算能力,并且不可在任何时 刻都被中止。如果操作系统实体确定需要将模式更换为比较工作模式 VM,则不可立即进行转换。只有针对在其它执行单元或核上执行具有 较低优先级的程序的情况,才不再容许执行单元执行相应的程序,用 于转换到比较工作模式VM。在此,确定其余执行单元上的程序的优先 级变得困难,因为在带有多个执行单元的系统中,所有有效的程序或 中断服务例行程序以及操作系统的程序本身都实际上同时被执行。与 此相反,在常规的单处理器系统中,程序相继通过唯一的执行单元来 执行。
在带有多个执行单元的系统中存在以下危险操作系统实体(例 如调度部件的实体)促使或进行工作模式更换,而在其它执行单元上 运行的操作系统实体则在以前的工作模式保持不变。由于对于系统中 的工作模式更换尤其是在更换到比较工作模式VM的工作模式更换来 说,必需至少两个执行单元,所以相关的执行单元可被闭塞一定的时 间。
筒单的例子应解释这种情况。在这种情况下,程序的总体例如包 含具有相对应的优先级的四个任务T1、 T2、 T3、 T4,也就是说Tl具有 最高优先级"Prio 3" , T2具有第二最高优先级"Prio 2" , T3具有 第三最高优先级"Prio 1",并且最后的任务T4具有最低优先级"Prio
50",而且任务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上 被执行的任务Tl之后立即中断仍在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中所说明的特征的方法以及
6通过具有权利要求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的简单例子中,其中 Tl具有最高优先级(Prio 3) , T2具有第二最高优先级(Prio 2), T3具有第三最高优先级(Priol),而T4具有最低优先级(PrioO), 其中T1、 T2要在性能工作模式PM执行,而T3、 TM要在比较工作模式 VM执行,执行单元2A在完成任务T1之后调用操作系统调度部件,该 操作系统调度部件促使执行单元2B中断正在运行的程序或正在运行的 任务T2,并从他那方面调用操作系统调度部件。如图1中示出的那样, 执行单元2A会通过线路IOA将转换期望信号(Umschaltwunschsignal ) 传输给转换单元3。第二执行单元2B可以以相同的方式通过线路10B 向转换单元3用信号通知转换期望。切换单元3在需要时通过控制线 IIA、 IIB将转换信号施加到执行单元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,则不进行模式更换。
在可能的实施形式中,中断例行程序比应用程序的执行有优先地
10位。如果中断服务例行程序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确定了具有最高优先级的下一任务 L并且所确定的程序或所确定的任务Tx要求在比较工作模式VM执行, 则首先不改变调度数据结构。而是由调度实体SCH-A来确定处理器2B 上的程序或任务Ty的优先级。如果任务Ty具有比下一任务L低的优先 级,则通过中断用信号通知执行单元2B:存在转换期望。如果该任务 Ty具有比任务Tx高的优先级,则调度部件SCH-A激活所谓的IDLE(空 闲)任务,该IDLE (空闲)任务构成空载工作状态。在用信号通知之 后,调度实体SCH-A等待调度实体SCH-B完成(屏障(Barrier))。 如果中断服务例行程序ISR在执行单元2A上被执行,则只有当处理器 2A上的所有中断都被执行时才开始处理转换期望询问。如果执行单元
ii2A由于调度部件实体SCH-A的转换期望而激活操作系统BS,则也由 执行单元2A来调用调度部件实体SCH-B。如果在执行单元2B上运行 的调度部件实体SCH-B也得出任务Tx必须被执行的结果,则调度实体 SCH - B将在执行单元2A上运行的调度实体SCH - A从闭锁或屏障解除。
如果调度实体SCH - B得出不是任务Tx而是任务Tz必须在性能工作 模式PM执行的结果,即任务Tz的优先级高于任务T,的优先级,则调度 实体SCH-A同样从屏障被解除。然后,调度实体SCH-B促使执行任 务Tz,并且调度实体SCH - A重新确定具有最高优先级的任务或程序(重 新调度(Reschedule ))。
如果调度实体SCH-B得出不是任务Tx而是任务L必须在比较工作 模式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上运行的那个程序的优先级进行比较。 在所给的例子中,这是具有优先级Prio2的任务T2。如果运行在其它 执行单元上、即运行在执行单元^上的程序具有较高的优先级,则该 程序可以不被中断。在这种情况下,执行单元2A在步骤S5A转变到空 载工作模式(IDLE)。在所给的例子中,在运行的任务T2的优先级(Prio 2)高于任务T3的优先级(Priol),以致执行步骤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,系统l被切换到比较工 作模式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也继续
14工作。必要时,在步骤S3B清除中断控制器4中的中断。在步骤S化, 如在图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,则在根据 本发明的方法中进行两次调度,因为由上次被调用的调度实体所确定 的任务具有当前最高的优先级并因此被执行。在此,两个调度实体基 于包含在流程中的屏障互相被同步。
权利要求
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)之后来执行。
全文摘要
本发明提供了一种带有多个执行单元(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)之后来执行。
文档编号G06F9/48GK101523351SQ200780037777
公开日2009年9月2日 申请日期2007年9月19日 优先权日2006年10月10日
发明者M·弗克, Y·科拉尼 申请人:罗伯特·博世有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1